@flighthq/render-gl 0.5.1-next.597.ab004dd → 0.5.1-next.638.d4dbd4e
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.
- package/README.md +2 -2
- package/dist/glFullscreenPass.d.ts.map +1 -1
- package/dist/glFullscreenPass.js +44 -0
- package/dist/glFullscreenPass.js.map +1 -1
- package/dist/glRenderStateBracket.js +8 -2
- package/dist/glRenderStateBracket.js.map +1 -1
- package/package.json +11 -11
- package/src/glFullscreenPass.test.ts +129 -0
- package/src/glRenderStateBracket.test.ts +26 -0
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/render-gl`. The `@fl
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/render-gl@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/render-gl@0.5.1-next.638.d4dbd4e](https://github.com/flighthq/flight/tree/d4dbd4e347dc8be10b180c85a766ab50333dcb51/packages/render-gl)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/d4dbd4e347dc8be10b180c85a766ab50333dcb51/LICENSE.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glFullscreenPass.d.ts","sourceRoot":"","sources":["../src/glFullscreenPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAoB9G,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAatF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,mBAAmB,CAkBrG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EACtC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,EACrC,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAC3E,IAAI,
|
|
1
|
+
{"version":3,"file":"glFullscreenPass.d.ts","sourceRoot":"","sources":["../src/glFullscreenPass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAoB9G,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAatF;AAED,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,GAAG,mBAAmB,CAkBrG;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EACtC,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,EACnC,IAAI,EAAE,QAAQ,CAAC,cAAc,CAAC,GAAG,IAAI,EACrC,WAAW,EAAE,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,KAAK,IAAI,GAC3E,IAAI,CAkFN"}
|
package/dist/glFullscreenPass.js
CHANGED
|
@@ -76,12 +76,56 @@ export function drawGlFullscreenPass(state, program, inputs, dest, setUniforms)
|
|
|
76
76
|
}
|
|
77
77
|
gl.activeTexture(gl.TEXTURE0);
|
|
78
78
|
runtime.context.currentTextureRealization = null;
|
|
79
|
+
// The fixed-function state this quad's result depends on, owned rather than inherited. Everything
|
|
80
|
+
// below was previously whatever the last draw happened to leave, and each one has a way to silently
|
|
81
|
+
// void the pass rather than error:
|
|
82
|
+
//
|
|
83
|
+
// BLEND — `applyGlBlendMode` sets the equation and factors but never the enable bit, so the pass took
|
|
84
|
+
// it from the single `gl.enable(gl.BLEND)` in `createGlRenderState`. `drawGlScene3D` ends its
|
|
85
|
+
// blended-subset pass with `gl.disable(gl.BLEND)` and never re-enables it, so a present or effect pass
|
|
86
|
+
// after a 3D scene composited unblended while its factors said otherwise.
|
|
87
|
+
//
|
|
88
|
+
// DEPTH — a 3D scene leaves GL_DEPTH_TEST on with GL_LESS and depth writes on, and the DEFAULT
|
|
89
|
+
// framebuffer is the one surface nothing clears between frames. The present quad passed on frame one,
|
|
90
|
+
// wrote its own depth, and was rejected at that same depth forever after: the canvas froze on frame
|
|
91
|
+
// one while the scene kept drawing correctly behind it.
|
|
92
|
+
//
|
|
93
|
+
// CULL_FACE — the quad is wound CCW and survived an inherited cull only because `glMeshProgram`
|
|
94
|
+
// restores FRONT_FACE to CCW after every mesh draw. Its comment records what happens otherwise: a CW
|
|
95
|
+
// winding left behind a mirrored mesh culls this pass and the frame comes back blank. Disabling the
|
|
96
|
+
// capability here retires that cross-package invariant instead of depending on it.
|
|
97
|
+
//
|
|
98
|
+
// All three are restored afterwards, because the pass runs mid-frame: an effect chain puts several of
|
|
99
|
+
// these between scene draws, and a 3D draw resuming with depth or culling silently off renders wrong.
|
|
100
|
+
const blendEnabled = gl.isEnabled(gl.BLEND);
|
|
101
|
+
const cullFaceEnabled = gl.isEnabled(gl.CULL_FACE);
|
|
102
|
+
const depthTestEnabled = gl.isEnabled(gl.DEPTH_TEST);
|
|
103
|
+
const depthWriteEnabled = gl.getParameter(gl.DEPTH_WRITEMASK) !== false;
|
|
104
|
+
if (!blendEnabled)
|
|
105
|
+
gl.enable(gl.BLEND);
|
|
106
|
+
if (cullFaceEnabled)
|
|
107
|
+
gl.disable(gl.CULL_FACE);
|
|
108
|
+
if (depthTestEnabled)
|
|
109
|
+
gl.disable(gl.DEPTH_TEST);
|
|
110
|
+
if (depthWriteEnabled)
|
|
111
|
+
gl.depthMask(false);
|
|
79
112
|
runtime.context.currentBlendSignature = null;
|
|
80
113
|
applyGlBlendMode(state, null);
|
|
81
114
|
setUniforms(gl, program);
|
|
82
115
|
drawGlFullscreenQuad(state, program);
|
|
83
116
|
runtime.context.currentBlendSignature = null;
|
|
84
117
|
applyGlBlendMode(state, null);
|
|
118
|
+
// Restored after the trailing blend-mode apply so the caller gets back the enable bit it had. The
|
|
119
|
+
// blend FACTORS are deliberately left at NORMAL — that is this function's pre-existing contract,
|
|
120
|
+
// tracked through `currentBlendSignature`; the host bracket is what restores factors at the boundary.
|
|
121
|
+
if (depthWriteEnabled)
|
|
122
|
+
gl.depthMask(true);
|
|
123
|
+
if (depthTestEnabled)
|
|
124
|
+
gl.enable(gl.DEPTH_TEST);
|
|
125
|
+
if (cullFaceEnabled)
|
|
126
|
+
gl.enable(gl.CULL_FACE);
|
|
127
|
+
if (!blendEnabled)
|
|
128
|
+
gl.disable(gl.BLEND);
|
|
85
129
|
// Unbind the sampled inputs. A fullscreen pass frequently reads a render target's own texture and
|
|
86
130
|
// presents it; leaving that texture bound lets the NEXT draw that renders back into that target form
|
|
87
131
|
// a framebuffer/active-texture feedback loop (e.g. a 3D scene re-rendered into a reused present
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glFullscreenPass.js","sourceRoot":"","sources":["../src/glFullscreenPass.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"glFullscreenPass.js","sourceRoot":"","sources":["../src/glFullscreenPass.ts"],"names":[],"mappings":"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"}
|
|
@@ -170,6 +170,12 @@ function restoreGlCapability(gl, capability, enabled) {
|
|
|
170
170
|
// The fixed-function state stack is keyed by render state, matching the render-pass bracket: two
|
|
171
171
|
// render states sharing a GL context still have independent ownership/nesting scopes.
|
|
172
172
|
const _renderStateStack = new WeakMap();
|
|
173
|
-
//
|
|
174
|
-
|
|
173
|
+
// Every texture unit any Flight GL path binds, because this list IS the promise that a host gets its
|
|
174
|
+
// context back as it left it — a unit bound during a draw but missing here is handed back pointing at
|
|
175
|
+
// Flight's texture, silently. 3 was correct when only the 2D pipelines existed (primary image plus two
|
|
176
|
+
// auxiliary effect inputs) and went stale when the 3D path arrived: `glPbrStandardBlock` binds through
|
|
177
|
+
// unit 6, `glLitProgram` the shadow map and IBL set at 8-11, and `glMeshProgram` the skin palettes at
|
|
178
|
+
// 12-13, the highest. It cannot be derived here — those constants live in `scene3d-gl`, which depends
|
|
179
|
+
// on this package and not the other way round — so adding a unit above 13 anywhere means raising this.
|
|
180
|
+
const GL_RENDER_STATE_TEXTURE_UNIT_COUNT = 14;
|
|
175
181
|
//# sourceMappingURL=glRenderStateBracket.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glRenderStateBracket.js","sourceRoot":"","sources":["../src/glRenderStateBracket.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"glRenderStateBracket.js","sourceRoot":"","sources":["../src/glRenderStateBracket.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/render-gl",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.638.d4dbd4e",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/color": "0.5.1-next.
|
|
42
|
-
"@flighthq/entity": "0.5.1-next.
|
|
43
|
-
"@flighthq/log": "0.5.1-next.
|
|
44
|
-
"@flighthq/scene2d": "0.5.1-next.
|
|
45
|
-
"@flighthq/geometry": "0.5.1-next.
|
|
46
|
-
"@flighthq/render": "0.5.1-next.
|
|
47
|
-
"@flighthq/registry": "0.5.1-next.
|
|
48
|
-
"@flighthq/signals": "0.5.1-next.
|
|
49
|
-
"@flighthq/texture": "0.5.1-next.
|
|
50
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/color": "0.5.1-next.638.d4dbd4e",
|
|
42
|
+
"@flighthq/entity": "0.5.1-next.638.d4dbd4e",
|
|
43
|
+
"@flighthq/log": "0.5.1-next.638.d4dbd4e",
|
|
44
|
+
"@flighthq/scene2d": "0.5.1-next.638.d4dbd4e",
|
|
45
|
+
"@flighthq/geometry": "0.5.1-next.638.d4dbd4e",
|
|
46
|
+
"@flighthq/render": "0.5.1-next.638.d4dbd4e",
|
|
47
|
+
"@flighthq/registry": "0.5.1-next.638.d4dbd4e",
|
|
48
|
+
"@flighthq/signals": "0.5.1-next.638.d4dbd4e",
|
|
49
|
+
"@flighthq/texture": "0.5.1-next.638.d4dbd4e",
|
|
50
|
+
"@flighthq/types": "0.5.1-next.638.d4dbd4e"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"typescript": "^5.3.0"
|
|
@@ -133,6 +133,135 @@ describe('compileGlFullscreenProgram', () => {
|
|
|
133
133
|
});
|
|
134
134
|
|
|
135
135
|
describe('drawGlFullscreenPass', () => {
|
|
136
|
+
// The freeze this guards against: a fullscreen pass covers its whole destination, so the
|
|
137
|
+
// destination's depth buffer is not its business — but nothing was turning depth off. Presenting a
|
|
138
|
+
// 3D frame leaves GL_DEPTH_TEST enabled with GL_LESS and depth writes on, and the DEFAULT framebuffer
|
|
139
|
+
// is the one surface nobody clears between frames. So frame one's quad passed, wrote its own depth,
|
|
140
|
+
// and every frame after it was rejected at the same depth: the canvas kept frame one forever while
|
|
141
|
+
// the scene behind it went on drawing correctly. Reading the state AT the draw is the whole point —
|
|
142
|
+
// asserting it around the call would pass against the broken version.
|
|
143
|
+
it('draws with the depth test and depth writes off', () => {
|
|
144
|
+
const { state, gl } = createGlState();
|
|
145
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
146
|
+
gl.enable(gl.DEPTH_TEST);
|
|
147
|
+
gl.depthMask(true);
|
|
148
|
+
let depthTestAtDraw: boolean | null = null;
|
|
149
|
+
let depthWriteAtDraw: unknown = null;
|
|
150
|
+
vi.spyOn(gl, 'drawElements').mockImplementation(() => {
|
|
151
|
+
depthTestAtDraw = gl.isEnabled(gl.DEPTH_TEST);
|
|
152
|
+
depthWriteAtDraw = gl.getParameter(gl.DEPTH_WRITEMASK);
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
156
|
+
|
|
157
|
+
expect(depthTestAtDraw).toBe(false);
|
|
158
|
+
expect(depthWriteAtDraw).toBe(false);
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
// Restoring matters because the pass is public and runs mid-frame: an effect chain chains several of
|
|
162
|
+
// these between scene draws, and a 3D draw that resumed with depth silently off would z-fight itself.
|
|
163
|
+
it('restores the caller depth state it turned off', () => {
|
|
164
|
+
const { state, gl } = createGlState();
|
|
165
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
166
|
+
gl.enable(gl.DEPTH_TEST);
|
|
167
|
+
gl.depthMask(true);
|
|
168
|
+
|
|
169
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
170
|
+
|
|
171
|
+
expect(gl.isEnabled(gl.DEPTH_TEST)).toBe(true);
|
|
172
|
+
expect(gl.getParameter(gl.DEPTH_WRITEMASK)).toBe(true);
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
it('leaves depth state alone when the caller already had it off', () => {
|
|
176
|
+
const { state, gl } = createGlState();
|
|
177
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
178
|
+
gl.disable(gl.DEPTH_TEST);
|
|
179
|
+
gl.depthMask(false);
|
|
180
|
+
|
|
181
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
182
|
+
|
|
183
|
+
expect(gl.isEnabled(gl.DEPTH_TEST)).toBe(false);
|
|
184
|
+
expect(gl.getParameter(gl.DEPTH_WRITEMASK)).toBe(false);
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
// The depth defect's surviving twin. `applyGlBlendMode` sets the equation and factors but never the
|
|
188
|
+
// BLEND enable bit, which the pass inherited from whatever ran before — in practice from the single
|
|
189
|
+
// `gl.enable(gl.BLEND)` in `createGlRenderState`. That is not a safe thing to inherit: `drawGlScene3D`
|
|
190
|
+
// ends a blended subset pass with `gl.disable(gl.BLEND)` and never re-enables it, so a present or
|
|
191
|
+
// effect pass following a 3D scene composited with blending silently off.
|
|
192
|
+
it('draws with blending enabled even when the caller left it disabled', () => {
|
|
193
|
+
const { state, gl } = createGlState();
|
|
194
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
195
|
+
gl.disable(gl.BLEND);
|
|
196
|
+
let blendAtDraw: boolean | null = null;
|
|
197
|
+
vi.spyOn(gl, 'drawElements').mockImplementation(() => {
|
|
198
|
+
blendAtDraw = gl.isEnabled(gl.BLEND);
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
202
|
+
|
|
203
|
+
expect(blendAtDraw).toBe(true);
|
|
204
|
+
});
|
|
205
|
+
|
|
206
|
+
it('restores a caller that had blending disabled', () => {
|
|
207
|
+
const { state, gl } = createGlState();
|
|
208
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
209
|
+
gl.disable(gl.BLEND);
|
|
210
|
+
|
|
211
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
212
|
+
|
|
213
|
+
expect(gl.isEnabled(gl.BLEND)).toBe(false);
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
it('leaves blending enabled for a caller that already had it on', () => {
|
|
217
|
+
const { state, gl } = createGlState();
|
|
218
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
219
|
+
gl.enable(gl.BLEND);
|
|
220
|
+
|
|
221
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
222
|
+
|
|
223
|
+
expect(gl.isEnabled(gl.BLEND)).toBe(true);
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
// The quad currently survives an inherited CULL_FACE only because it happens to be wound CCW and the
|
|
227
|
+
// mesh path happens to restore FRONT_FACE to CCW after every draw. `glMeshProgram` says so in its own
|
|
228
|
+
// comment — leaving CW set behind a mirrored mesh "culls that pass and the whole frame comes back
|
|
229
|
+
// blank", which is a defect this repo has already had once. Owning the bit here retires that
|
|
230
|
+
// cross-package invariant: no winding convention or inherited cull state can drop a fullscreen quad.
|
|
231
|
+
it('draws with face culling off, whatever the caller left enabled', () => {
|
|
232
|
+
const { state, gl } = createGlState();
|
|
233
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
234
|
+
gl.enable(gl.CULL_FACE);
|
|
235
|
+
let cullAtDraw: boolean | null = null;
|
|
236
|
+
vi.spyOn(gl, 'drawElements').mockImplementation(() => {
|
|
237
|
+
cullAtDraw = gl.isEnabled(gl.CULL_FACE);
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
241
|
+
|
|
242
|
+
expect(cullAtDraw).toBe(false);
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
it('restores a caller that had face culling enabled', () => {
|
|
246
|
+
const { state, gl } = createGlState();
|
|
247
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
248
|
+
gl.enable(gl.CULL_FACE);
|
|
249
|
+
|
|
250
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
251
|
+
|
|
252
|
+
expect(gl.isEnabled(gl.CULL_FACE)).toBe(true);
|
|
253
|
+
});
|
|
254
|
+
|
|
255
|
+
it('leaves face culling off for a caller that already had it off', () => {
|
|
256
|
+
const { state, gl } = createGlState();
|
|
257
|
+
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
258
|
+
gl.disable(gl.CULL_FACE);
|
|
259
|
+
|
|
260
|
+
drawGlFullscreenPass(state, program, [], null, () => {});
|
|
261
|
+
|
|
262
|
+
expect(gl.isEnabled(gl.CULL_FACE)).toBe(false);
|
|
263
|
+
});
|
|
264
|
+
|
|
136
265
|
it('binds the destination framebuffer and sets its viewport', () => {
|
|
137
266
|
const { state, gl } = createGlState();
|
|
138
267
|
const program = compileGlFullscreenProgram(gl, FRAG_SRC);
|
|
@@ -214,6 +214,31 @@ describe('popGlRenderState', () => {
|
|
|
214
214
|
expect(fixture.parameters.get(fixture.gl.ACTIVE_TEXTURE)).toBe(savedActiveTexture);
|
|
215
215
|
});
|
|
216
216
|
|
|
217
|
+
// The bracket's saved-field list is the inventory of what Flight promises to hand back, so a unit the
|
|
218
|
+
// draw path binds but the bracket skips is a silent hole. The count was written for the 2D pipeline's
|
|
219
|
+
// units 0-2 and never revisited when the 3D path arrived: `glPbrStandardBlock` binds through unit 6,
|
|
220
|
+
// `glLitProgram` the shadow map and IBL set at 8-11, and `glMeshProgram` the skin palettes at 12-13.
|
|
221
|
+
// A host that had its own texture on any of those got it back pointing at Flight's.
|
|
222
|
+
it('restores a texture unit above the 2D range, which the 3D draw path binds', () => {
|
|
223
|
+
const fixture = createStatefulGl();
|
|
224
|
+
applyTestGlState(fixture, OUTER_STATE);
|
|
225
|
+
const savedActiveTexture = fixture.parameters.get(fixture.gl.ACTIVE_TEXTURE);
|
|
226
|
+
const hostTexture = { name: 'host-skin-palette-texture' } as unknown as WebGLTexture;
|
|
227
|
+
// 13 is the highest unit any Flight GL path binds (SKIN_NORMAL_PALETTE_TEXTURE_UNIT).
|
|
228
|
+
const textureUnit = fixture.gl.TEXTURE0 + 13;
|
|
229
|
+
fixture.gl.activeTexture(textureUnit);
|
|
230
|
+
fixture.gl.bindTexture(fixture.gl.TEXTURE_2D, hostTexture);
|
|
231
|
+
fixture.gl.activeTexture(savedActiveTexture as number);
|
|
232
|
+
pushGlRenderState(fixture.state);
|
|
233
|
+
|
|
234
|
+
fixture.gl.activeTexture(textureUnit);
|
|
235
|
+
fixture.gl.bindTexture(fixture.gl.TEXTURE_2D, { name: 'flight-texture' } as unknown as WebGLTexture);
|
|
236
|
+
popGlRenderState(fixture.state);
|
|
237
|
+
|
|
238
|
+
expect(fixture.textureBindings.get(textureUnit)).toBe(hostTexture);
|
|
239
|
+
expect(fixture.parameters.get(fixture.gl.ACTIVE_TEXTURE)).toBe(savedActiveTexture);
|
|
240
|
+
});
|
|
241
|
+
|
|
217
242
|
it('restores nested pushes in last-in-first-out order', () => {
|
|
218
243
|
const fixture = createStatefulGl();
|
|
219
244
|
applyTestGlState(fixture, OUTER_STATE);
|
|
@@ -295,6 +320,7 @@ function createStatefulGl(): StatefulGl & ReturnType<typeof createGlState> {
|
|
|
295
320
|
const { gl, state } = fixture;
|
|
296
321
|
Object.assign(gl, {
|
|
297
322
|
ACTIVE_TEXTURE: 0x84e0,
|
|
323
|
+
TEXTURE0: 0x84c0,
|
|
298
324
|
BLEND_DST_ALPHA: 0x80ca,
|
|
299
325
|
BLEND_DST_RGB: 0x80c8,
|
|
300
326
|
BLEND_EQUATION_ALPHA: 0x883d,
|