@flighthq/scene3d-gl 0.3.1-next.780.12e6944 → 0.3.1-next.794.0bfc53e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"glEnvironmentSkybox.d.ts","sourceRoot":"","sources":["../src/glEnvironmentSkybox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAUrF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC1B,MAAM,EAAE,MAAM,GACb,IAAI,CA2BN"}
1
+ {"version":3,"file":"glEnvironmentSkybox.d.ts","sourceRoot":"","sources":["../src/glEnvironmentSkybox.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAUrF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,EAClC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAC1B,MAAM,EAAE,MAAM,GACb,IAAI,CAiCN"}
@@ -15,7 +15,12 @@ export function drawGlEnvironmentSkybox(state, environment, camera, aspect) {
15
15
  const sky = ensureGlSkybox(state);
16
16
  if (!updateCamera3DInverseViewProjection(camera, aspect))
17
17
  return;
18
- const prevDepthTest = gl.getParameter(gl.DEPTH_TEST);
18
+ // Every one of these is saved, not just the depth test: the pass runs between a caller's own draws,
19
+ // and depthMask was previously restored to a hardcoded `true` rather than to what the caller had,
20
+ // which is the same leak as not restoring it at all for a caller that had depth writes masked off.
21
+ const prevDepthTest = gl.isEnabled(gl.DEPTH_TEST);
22
+ const prevDepthMask = gl.getParameter(gl.DEPTH_WRITEMASK);
23
+ const prevBlend = gl.isEnabled(gl.BLEND);
19
24
  gl.depthMask(false);
20
25
  gl.disable(gl.DEPTH_TEST);
21
26
  gl.disable(gl.BLEND);
@@ -28,9 +33,11 @@ export function drawGlEnvironmentSkybox(state, environment, camera, aspect) {
28
33
  gl.bindVertexArray(sky.vao);
29
34
  gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4);
30
35
  gl.bindVertexArray(null);
31
- gl.depthMask(true);
36
+ gl.depthMask(prevDepthMask);
32
37
  if (prevDepthTest)
33
38
  gl.enable(gl.DEPTH_TEST);
39
+ if (prevBlend)
40
+ gl.enable(gl.BLEND);
34
41
  }
35
42
  function ensureGlSkybox(state) {
36
43
  const gl = state.gl;
@@ -1 +1 @@
1
- {"version":3,"file":"glEnvironmentSkybox.js","sourceRoot":"","sources":["../src/glEnvironmentSkybox.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mCAAmC,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,qBAAqB,CAAC;AAEpE,kGAAkG;AAClG,sGAAsG;AACtG,uGAAuG;AACvG,qGAAqG;AACrG,qGAAqG;AACrG,gGAAgG;AAChG,MAAM,UAAU,uBAAuB,CACrC,KAAoB,EACpB,WAAkC,EAClC,MAA0B,EAC1B,MAAc;IAEd,MAAM,IAAI,GAAG,6BAA6B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAC/D,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO;IAE1B,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElC,IAAI,CAAC,mCAAmC,CAAC,MAAM,EAAE,MAAM,CAAC;QAAE,OAAO;IAEjE,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,UAAU,CAAY,CAAC;IAChE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACpB,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IAC1B,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAErB,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC3B,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,wBAAwB,EAAE,KAAK,EAAE,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;IACzF,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9B,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC;IAC1C,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAEhC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEzB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACnB,IAAI,aAAa;QAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAUD,SAAS,cAAc,CAAC,KAAoB;IAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,IAAI,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC;IAElC,MAAM,OAAO,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,EAAG,CAAC;IACpC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,EAAG,CAAC;IAClC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC;IACtD,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAC9B,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACpD,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEzB,GAAG,GAAG;QACJ,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW,CAAC;QACvD,wBAAwB,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,CAAC;QACnF,YAAY,EAAE,EAAE,CAAC,kBAAkB,CAAC,OAAO,EAAE,aAAa,CAAC;QAC3D,OAAO;QACP,GAAG;KACJ,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,EAA0B;IACrD,OAAO,eAAe,CAAC,EAAE,EAAE,aAAa,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;AACvE,CAAC;AAED,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,SAAS,GAAG,IAAI,OAAO,EAA2B,CAAC;AAEzD,MAAM,aAAa,GAAG;;;;;;;;CAQrB,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;CAgBvB,CAAC"}
1
+ {"version":3,"file":"glEnvironmentSkybox.js","sourceRoot":"","sources":["../src/glEnvironmentSkybox.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/scene3d-gl",
3
- "version": "0.3.1-next.780.12e6944",
3
+ "version": "0.3.1-next.794.0bfc53e",
4
4
  "author": "Joshua Granick and other contributors",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -38,22 +38,22 @@
38
38
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
39
39
  },
40
40
  "dependencies": {
41
- "@flighthq/camera": "0.3.1-next.780.12e6944",
42
- "@flighthq/color": "0.3.1-next.780.12e6944",
43
- "@flighthq/geometry": "0.3.1-next.780.12e6944",
44
- "@flighthq/image": "0.3.1-next.780.12e6944",
45
- "@flighthq/lighting": "0.3.1-next.780.12e6944",
46
- "@flighthq/log": "0.3.1-next.780.12e6944",
47
- "@flighthq/materials": "0.3.1-next.780.12e6944",
48
- "@flighthq/mesh": "0.3.1-next.780.12e6944",
49
- "@flighthq/node": "0.3.1-next.780.12e6944",
50
- "@flighthq/registry": "0.3.1-next.780.12e6944",
51
- "@flighthq/render": "0.3.1-next.780.12e6944",
52
- "@flighthq/render-gl": "0.3.1-next.780.12e6944",
53
- "@flighthq/scene3d": "0.3.1-next.780.12e6944",
54
- "@flighthq/shading": "0.3.1-next.780.12e6944",
55
- "@flighthq/texture": "0.3.1-next.780.12e6944",
56
- "@flighthq/types": "0.3.1-next.780.12e6944"
41
+ "@flighthq/camera": "0.3.1-next.794.0bfc53e",
42
+ "@flighthq/color": "0.3.1-next.794.0bfc53e",
43
+ "@flighthq/geometry": "0.3.1-next.794.0bfc53e",
44
+ "@flighthq/image": "0.3.1-next.794.0bfc53e",
45
+ "@flighthq/lighting": "0.3.1-next.794.0bfc53e",
46
+ "@flighthq/log": "0.3.1-next.794.0bfc53e",
47
+ "@flighthq/materials": "0.3.1-next.794.0bfc53e",
48
+ "@flighthq/mesh": "0.3.1-next.794.0bfc53e",
49
+ "@flighthq/node": "0.3.1-next.794.0bfc53e",
50
+ "@flighthq/registry": "0.3.1-next.794.0bfc53e",
51
+ "@flighthq/render": "0.3.1-next.794.0bfc53e",
52
+ "@flighthq/render-gl": "0.3.1-next.794.0bfc53e",
53
+ "@flighthq/scene3d": "0.3.1-next.794.0bfc53e",
54
+ "@flighthq/shading": "0.3.1-next.794.0bfc53e",
55
+ "@flighthq/texture": "0.3.1-next.794.0bfc53e",
56
+ "@flighthq/types": "0.3.1-next.794.0bfc53e"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@flighthq/particleemitter": "*",
@@ -23,6 +23,40 @@ describe('drawGlEnvironmentSkybox', () => {
23
23
  expect(gl.calls.length).toBe(before);
24
24
  });
25
25
 
26
+ it('restores the depth test and blend bits the caller had', () => {
27
+ const { state, gl } = makeGlScene3DState();
28
+ const face = {
29
+ data: new Uint8ClampedArray(4 * 4 * 4),
30
+ height: 4,
31
+ kind: BitmapTextureSourceKind,
32
+ width: 4,
33
+ } as Bitmap;
34
+ const environment = {
35
+ environment: {
36
+ colorSpace: 'srgb',
37
+ dimension: 'cube',
38
+ sampler: {},
39
+ sources: [face, face, face, face, face, face],
40
+ } as unknown as Texture,
41
+ intensity: 1,
42
+ } as Environment;
43
+ const camera = createCamera3D({
44
+ far: 100,
45
+ near: 0.1,
46
+ projection: createPerspectiveProjection({ aspect: 1, fovY: 1 }),
47
+ });
48
+ // Both ON going in, which is what a caller mid-frame actually has. The pass turns both off for its
49
+ // own draw; blend was previously never turned back on, and the 2D path enables blend once per state,
50
+ // so that leak outlived the frame it happened in.
51
+ gl.enable(gl.DEPTH_TEST);
52
+ gl.enable(gl.BLEND);
53
+
54
+ drawGlEnvironmentSkybox(state, environment, camera, 1);
55
+
56
+ expect(gl.isEnabled(gl.DEPTH_TEST)).toBe(true);
57
+ expect(gl.isEnabled(gl.BLEND)).toBe(true);
58
+ });
59
+
26
60
  it('refreshes and uploads Camera3D.inverseViewProjection', () => {
27
61
  const { state, gl } = makeGlScene3DState();
28
62
  const face = {