@flighthq/render-gl 0.3.0-next.1032.e2b99fc → 0.3.0-next.1220.6982c21
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/dist/contract.d.ts +4 -0
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +4 -0
- package/dist/contract.js.map +1 -1
- package/dist/enableGlRenderStateGuards.d.ts +4 -0
- package/dist/enableGlRenderStateGuards.d.ts.map +1 -0
- package/dist/enableGlRenderStateGuards.js +30 -0
- package/dist/enableGlRenderStateGuards.js.map +1 -0
- package/dist/enableGlTextureResolverGuards.d.ts +4 -0
- package/dist/enableGlTextureResolverGuards.d.ts.map +1 -0
- package/dist/enableGlTextureResolverGuards.js +8 -0
- package/dist/enableGlTextureResolverGuards.js.map +1 -0
- package/dist/explainGlTextureResolution.d.ts +3 -0
- package/dist/explainGlTextureResolution.d.ts.map +1 -0
- package/dist/explainGlTextureResolution.js +12 -0
- package/dist/explainGlTextureResolution.js.map +1 -0
- package/dist/glCompressedTexture.js +1 -1
- package/dist/glCompressedTexture.js.map +1 -1
- package/dist/glDraw.d.ts +2 -2
- package/dist/glDraw.d.ts.map +1 -1
- package/dist/glDraw.js +17 -14
- package/dist/glDraw.js.map +1 -1
- package/dist/glExternalTexture.d.ts.map +1 -1
- package/dist/glExternalTexture.js +23 -18
- package/dist/glExternalTexture.js.map +1 -1
- package/dist/glFullscreenPass.js +3 -4
- package/dist/glFullscreenPass.js.map +1 -1
- package/dist/glLinearToSrgbPass.js +3 -3
- package/dist/glLinearToSrgbPass.js.map +1 -1
- package/dist/glPresentRenderTarget.js +3 -3
- package/dist/glPresentRenderTarget.js.map +1 -1
- package/dist/glRenderPass.d.ts.map +1 -1
- package/dist/glRenderPass.js +82 -36
- package/dist/glRenderPass.js.map +1 -1
- package/dist/glRenderState.d.ts +11 -1
- package/dist/glRenderState.d.ts.map +1 -1
- package/dist/glRenderState.js +180 -5
- package/dist/glRenderState.js.map +1 -1
- package/dist/glRenderStateBracket.d.ts.map +1 -1
- package/dist/glRenderStateBracket.js +16 -4
- package/dist/glRenderStateBracket.js.map +1 -1
- package/dist/glRenderTarget.d.ts +10 -1
- package/dist/glRenderTarget.d.ts.map +1 -1
- package/dist/glRenderTarget.js +129 -60
- package/dist/glRenderTarget.js.map +1 -1
- package/dist/glRenderTargetPool.d.ts +4 -1
- package/dist/glRenderTargetPool.d.ts.map +1 -1
- package/dist/glRenderTargetPool.js +32 -23
- package/dist/glRenderTargetPool.js.map +1 -1
- package/dist/glRenderTexture.d.ts +4 -1
- package/dist/glRenderTexture.d.ts.map +1 -1
- package/dist/glRenderTexture.js +75 -17
- package/dist/glRenderTexture.js.map +1 -1
- package/dist/glRenderTexturePool.d.ts +7 -0
- package/dist/glRenderTexturePool.d.ts.map +1 -0
- package/dist/glRenderTexturePool.js +87 -0
- package/dist/glRenderTexturePool.js.map +1 -0
- package/dist/glTestHelper.js +2 -2
- package/dist/glTestHelper.js.map +1 -1
- package/dist/glTextureResolver.d.ts +3 -3
- package/dist/glTextureResolver.d.ts.map +1 -1
- package/dist/glTextureResolver.js +32 -31
- package/dist/glTextureResolver.js.map +1 -1
- package/dist/glTextureUpload.d.ts +2 -2
- package/dist/glTextureUpload.d.ts.map +1 -1
- package/dist/glTextureUpload.js +1 -1
- package/dist/glTextureUpload.js.map +1 -1
- package/dist/glTextureVideoUpload.d.ts +2 -2
- package/dist/glTextureVideoUpload.d.ts.map +1 -1
- package/dist/glTextureVideoUpload.js +3 -3
- package/dist/glTextureVideoUpload.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +9 -7
- package/src/enableGlRenderStateGuards.test.ts +27 -0
- package/src/enableGlTextureResolverGuards.test.ts +58 -0
- package/src/explainGlTextureResolution.test.ts +32 -0
- package/src/glCompressedTexture.test.ts +2 -2
- package/src/glDraw.test.ts +17 -18
- package/src/glExternalTexture.test.ts +3 -3
- package/src/glFullscreenPass.test.ts +13 -0
- package/src/glLinearToSrgbPass.test.ts +13 -0
- package/src/glPresentRenderTarget.test.ts +15 -1
- package/src/glReadback.test.ts +13 -0
- package/src/glRenderPass.test.ts +63 -0
- package/src/glRenderState.test.ts +135 -0
- package/src/glRenderStateBracket.test.ts +31 -1
- package/src/glRenderTarget.test.ts +186 -3
- package/src/glRenderTargetPool.test.ts +110 -5
- package/src/glRenderTexture.test.ts +71 -11
- package/src/glRenderTexturePool.test.ts +112 -0
- package/src/glTextureResolver.test.ts +73 -51
- package/src/glTextureUpload.test.ts +2 -2
- package/src/glTextureVideoUpload.test.ts +5 -5
package/dist/glRenderPass.js
CHANGED
|
@@ -33,31 +33,33 @@ import { resolveGlRenderTarget } from './glRenderTarget';
|
|
|
33
33
|
// drawGlScene3D(state, scene, camera, lights)
|
|
34
34
|
// endGlRenderPass(state)
|
|
35
35
|
export function beginGlRenderPass(state, target, preserve, viewport) {
|
|
36
|
-
const runtime = getGlRenderStateRuntime(state);
|
|
37
36
|
const gl = state.gl;
|
|
38
|
-
|
|
39
|
-
|
|
37
|
+
let stack = _passStack.get(gl);
|
|
38
|
+
// One WebGL context has one live framebuffer/stencil/scissor state even when several higher-level
|
|
39
|
+
// GlRenderStates share it (the render-cache path). The top context-owned pass is therefore the
|
|
40
|
+
// physical enclosing state; the incoming state's dormant runtime is only its local restore point.
|
|
41
|
+
const previousOwner = stack?.at(-1)?.owner ?? state;
|
|
42
|
+
const previousRuntime = getGlRenderStateRuntime(previousOwner);
|
|
43
|
+
const previousState = captureGlPassState(previousOwner);
|
|
44
|
+
const currentMaskDepth = previousState.currentMaskDepth;
|
|
45
|
+
if (currentMaskDepth > 0 && previousState.framebuffer === target.framebuffer) {
|
|
40
46
|
throw new Error('beginGlRenderPass: cannot nest the active framebuffer while a contour clip is live');
|
|
41
47
|
}
|
|
42
|
-
let stack = _passStack.get(state);
|
|
43
48
|
if (stack === undefined) {
|
|
44
49
|
stack = [];
|
|
45
|
-
_passStack.set(
|
|
50
|
+
_passStack.set(gl, stack);
|
|
46
51
|
}
|
|
47
52
|
stack.push({
|
|
48
|
-
clipForms: [...(runtime.clipForms ?? [])],
|
|
49
|
-
currentMaskDepth,
|
|
50
53
|
depthMask: gl.getParameter(gl.DEPTH_WRITEMASK) !== false,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
scissorRect: runtime.currentScissorRect ?? null,
|
|
56
|
-
scissorStack: [...(runtime.scissorStack ?? [])],
|
|
54
|
+
owner: state,
|
|
55
|
+
ownerState: previousOwner === state ? previousState : captureGlPassState(state),
|
|
56
|
+
previousOwner,
|
|
57
|
+
previousState,
|
|
57
58
|
stencil: currentMaskDepth > 0 ? captureGlStencil(gl) : null,
|
|
58
59
|
});
|
|
60
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
59
61
|
const activeViewport = resolveGlPassViewport(target, viewport);
|
|
60
|
-
const enclosingScissor =
|
|
62
|
+
const enclosingScissor = previousState.scissorRect;
|
|
61
63
|
const activeScissor = enclosingScissor === null
|
|
62
64
|
? viewport === undefined
|
|
63
65
|
? null
|
|
@@ -81,8 +83,9 @@ export function beginGlRenderPass(state, target, preserve, viewport) {
|
|
|
81
83
|
if (currentMaskDepth > 0)
|
|
82
84
|
gl.disable(gl.STENCIL_TEST);
|
|
83
85
|
// Force rebind on next draw — the framebuffer switch invalidates GL state assumptions.
|
|
84
|
-
runtime
|
|
85
|
-
|
|
86
|
+
invalidateGlPassBindingCache(runtime);
|
|
87
|
+
if (previousOwner !== state)
|
|
88
|
+
invalidateGlPassBindingCache(previousRuntime);
|
|
86
89
|
clearGlRenderPass(state, target, preserve);
|
|
87
90
|
}
|
|
88
91
|
// Ends the pass opened by beginGlRenderPass: restores the framebuffer binding, exact viewport/scissor,
|
|
@@ -92,30 +95,33 @@ export function beginGlRenderPass(state, target, preserve, viewport) {
|
|
|
92
95
|
// an unbalanced pass is a programmer error, and silently accepting it hides a leaked prior pass. The
|
|
93
96
|
// target is read from runtime rather than passed, so end mirrors the other backend brackets.
|
|
94
97
|
export function endGlRenderPass(state) {
|
|
95
|
-
const runtime = getGlRenderStateRuntime(state);
|
|
96
98
|
const gl = state.gl;
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
-
if (saved === undefined)
|
|
99
|
+
const stack = _passStack.get(gl);
|
|
100
|
+
if (stack === undefined) {
|
|
100
101
|
throw new Error('endGlRenderPass called without a matching beginGlRenderPass');
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
runtime
|
|
110
|
-
runtime.
|
|
111
|
-
|
|
102
|
+
}
|
|
103
|
+
const saved = stack.at(-1);
|
|
104
|
+
if (saved === undefined || saved.owner !== state) {
|
|
105
|
+
throw new Error('endGlRenderPass called without a matching beginGlRenderPass');
|
|
106
|
+
}
|
|
107
|
+
stack.pop();
|
|
108
|
+
if (stack.length === 0)
|
|
109
|
+
_passStack.delete(gl);
|
|
110
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
111
|
+
const ended = runtime.currentRenderTarget ?? null;
|
|
112
|
+
restoreGlPassState(state, saved.ownerState);
|
|
113
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, saved.previousState.framebuffer);
|
|
114
|
+
const viewport = saved.previousState.renderTargetViewport;
|
|
115
|
+
gl.viewport(viewport?.x ?? 0, viewport?.y ?? 0, viewport?.width ?? saved.previousOwner.canvas.width, viewport?.height ?? saved.previousOwner.canvas.height);
|
|
116
|
+
applyGlScissor(gl, saved.previousState.scissorRect);
|
|
112
117
|
restoreGlStencil(gl, saved.stencil);
|
|
113
118
|
gl.depthMask(saved.depthMask);
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
invalidateGlPassBindingCache(runtime);
|
|
120
|
+
if (saved.previousOwner !== state) {
|
|
121
|
+
invalidateGlPassBindingCache(getGlRenderStateRuntime(saved.previousOwner));
|
|
122
|
+
}
|
|
117
123
|
if (ended !== null)
|
|
118
|
-
resolveGlRenderTarget(
|
|
124
|
+
resolveGlRenderTarget(saved.previousOwner, ended);
|
|
119
125
|
}
|
|
120
126
|
// Sets the 2D root device transform the display-object update pass (prepareScene2DRender) reads to
|
|
121
127
|
// place nodes with no scene parent. Call after beginGlRenderPass when a 2D pass renders into a target
|
|
@@ -126,6 +132,15 @@ export function setGlRenderTransform2D(state, transform) {
|
|
|
126
132
|
const next = createMatrix();
|
|
127
133
|
copyMatrix(next, transform);
|
|
128
134
|
state.renderTransform2D = next;
|
|
135
|
+
// The root device transform is an input to every prepared proxy transform, but it is state policy,
|
|
136
|
+
// not a node revision. Mark the state-local proxies stale so a repeated offscreen capture with new
|
|
137
|
+
// bounds/padding cannot reuse transforms prepared for the previous target dimensions.
|
|
138
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
139
|
+
for (const source of runtime.renderProxySources) {
|
|
140
|
+
const proxy = runtime.renderProxyMap.get(source);
|
|
141
|
+
if (proxy !== undefined)
|
|
142
|
+
proxy.lastLocalTransformId = -1;
|
|
143
|
+
}
|
|
129
144
|
}
|
|
130
145
|
// Clears the bound target's aspects that `preserve` does not spare. Uses per-attachment clearBufferfv so
|
|
131
146
|
// each color attachment can carry its own clear value (the G-buffer case) and preserved attachments are
|
|
@@ -170,6 +185,36 @@ function resolveGlClearColor(state, target, index, out) {
|
|
|
170
185
|
out[2] = bg[2] ?? 0;
|
|
171
186
|
out[3] = bg.length >= 4 ? bg[3] : 0;
|
|
172
187
|
}
|
|
188
|
+
function captureGlPassState(state) {
|
|
189
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
190
|
+
return {
|
|
191
|
+
clipForms: [...(runtime.clipForms ?? [])],
|
|
192
|
+
currentMaskDepth: runtime.currentMaskDepth ?? 0,
|
|
193
|
+
framebuffer: runtime.currentFramebuffer,
|
|
194
|
+
renderTarget: runtime.currentRenderTarget ?? null,
|
|
195
|
+
renderTargetViewport: runtime.renderTargetViewport,
|
|
196
|
+
renderTransform2D: state.renderTransform2D,
|
|
197
|
+
scissorRect: runtime.currentScissorRect ?? null,
|
|
198
|
+
scissorStack: [...(runtime.scissorStack ?? [])],
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
function invalidateGlPassBindingCache(runtime) {
|
|
202
|
+
runtime.currentBlendMode = null;
|
|
203
|
+
runtime.currentProgram = null;
|
|
204
|
+
runtime.currentTexture = null;
|
|
205
|
+
runtime.currentTextureStraightAlpha = false;
|
|
206
|
+
}
|
|
207
|
+
function restoreGlPassState(state, saved) {
|
|
208
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
209
|
+
runtime.currentFramebuffer = saved.framebuffer;
|
|
210
|
+
runtime.currentRenderTarget = saved.renderTarget;
|
|
211
|
+
runtime.renderTargetViewport = saved.renderTargetViewport;
|
|
212
|
+
runtime.currentScissorRect = saved.scissorRect;
|
|
213
|
+
runtime.scissorStack = saved.scissorStack;
|
|
214
|
+
runtime.clipForms = saved.clipForms;
|
|
215
|
+
runtime.currentMaskDepth = saved.currentMaskDepth;
|
|
216
|
+
state.renderTransform2D = saved.renderTransform2D;
|
|
217
|
+
}
|
|
173
218
|
function applyGlScissor(gl, rect) {
|
|
174
219
|
if (rect === null) {
|
|
175
220
|
gl.disable(gl.SCISSOR_TEST);
|
|
@@ -238,7 +283,8 @@ function resolveGlPassViewport(target, viewport) {
|
|
|
238
283
|
function clampGlPassEdge(value, extent) {
|
|
239
284
|
return Math.min(extent, Math.max(0, value));
|
|
240
285
|
}
|
|
241
|
-
//
|
|
286
|
+
// A WebGL context has exactly one framebuffer binding and one live stencil gate. Keying the pass
|
|
287
|
+
// bracket by that physical owner keeps cache GlRenderStates sharing a context in the same LIFO scope.
|
|
242
288
|
const _passStack = new WeakMap();
|
|
243
289
|
const _clearRgba = new Float32Array(4);
|
|
244
290
|
//# sourceMappingURL=glRenderPass.js.map
|
package/dist/glRenderPass.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glRenderPass.js","sourceRoot":"","sources":["../src/glRenderPass.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"glRenderPass.js","sourceRoot":"","sources":["../src/glRenderPass.ts"],"names":[],"mappings":"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"}
|
package/dist/glRenderState.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import type { GlRenderOptions, GlRenderState, GlRenderStateRuntime } from '@flighthq/types/contract';
|
|
2
|
+
export declare function copyGlRenderStateRegistrations(target: GlRenderState, source: GlRenderState): void;
|
|
3
|
+
/**
|
|
4
|
+
* Creates a second render pipeline over `screenState`'s WebGL context.
|
|
5
|
+
*
|
|
6
|
+
* GPU objects and upload caches are aliases of one context tier. Pipeline policy is a creation-time
|
|
7
|
+
* snapshot: renderer/clip/material/effect/texture registrations start equal, then either state may
|
|
8
|
+
* override or omit them independently. Per-node proxies, adapters, frame counters, batch writers,
|
|
9
|
+
* render transforms, and renderer data are always fresh.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createGlOffscreenRenderState(screenState: GlRenderState): GlRenderState;
|
|
2
12
|
export declare function createGlRenderState(canvas: HTMLCanvasElement, options?: GlRenderOptions): GlRenderState;
|
|
3
|
-
export declare function createGlRenderStateRuntime(): GlRenderStateRuntime;
|
|
13
|
+
export declare function createGlRenderStateRuntime(sharedRuntime?: GlRenderStateRuntime): GlRenderStateRuntime;
|
|
4
14
|
export declare function destroyGlRenderState(state: GlRenderState): void;
|
|
5
15
|
export declare function getGlRenderStateRuntime(state: GlRenderState): GlRenderStateRuntime;
|
|
6
16
|
export declare function invalidateGlRenderStateCache(state: GlRenderState): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glRenderState.d.ts","sourceRoot":"","sources":["../src/glRenderState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"glRenderState.d.ts","sourceRoot":"","sources":["../src/glRenderState.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAOrG,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CAoBjG;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,WAAW,EAAE,aAAa,GAAG,aAAa,CAwBtF;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAE,eAAoB,GAAG,aAAa,CAmF3G;AAMD,wBAAgB,0BAA0B,CAAC,aAAa,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,CAkBrG;AAeD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAgC/D;AAID,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,oBAAoB,CAElF;AAcD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAUvE"}
|
package/dist/glRenderState.js
CHANGED
|
@@ -1,7 +1,62 @@
|
|
|
1
1
|
import { createMatrix } from '@flighthq/geometry/contract';
|
|
2
|
-
import { createRenderState as _createRenderState, createRenderStateRuntime, setRenderStateBackgroundColor, } from '@flighthq/render/contract';
|
|
2
|
+
import { copyAllRenderersFromRenderState, copyRenderStateRegistrations, createRenderState as _createRenderState, createRenderStateRuntime, destroyRenderState, setRenderStateBackgroundColor, } from '@flighthq/render/contract';
|
|
3
3
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
4
4
|
import { compileDefaultGlProgram, createDefaultGlBitmapShader } from './glShader';
|
|
5
|
+
// Explicit snapshot re-copy. This never aliases registration maps: last-write-wins divergence is the
|
|
6
|
+
// point of a second render state, and a cache/effect state may intentionally omit screen policy.
|
|
7
|
+
export function copyGlRenderStateRegistrations(target, source) {
|
|
8
|
+
const targetRuntime = getGlRenderStateRuntime(target);
|
|
9
|
+
const sourceRuntime = getGlRenderStateRuntime(source);
|
|
10
|
+
target.applyBlendMode = source.applyBlendMode;
|
|
11
|
+
targetRuntime.defaultBitmapShader = sourceRuntime.defaultBitmapShader;
|
|
12
|
+
targetRuntime.glBlendModeRegistry = copyMap(sourceRuntime.glBlendModeRegistry);
|
|
13
|
+
targetRuntime.glColorAdjustmentMaterialFeature = sourceRuntime.glColorAdjustmentMaterialFeature;
|
|
14
|
+
targetRuntime.glColorAdjustmentMaterialFeatureGuard = sourceRuntime.glColorAdjustmentMaterialFeatureGuard;
|
|
15
|
+
targetRuntime.materialRendererMap =
|
|
16
|
+
sourceRuntime.materialRendererMap === undefined ? undefined : new Map(sourceRuntime.materialRendererMap);
|
|
17
|
+
targetRuntime.materialBitmapShaderMap =
|
|
18
|
+
sourceRuntime.materialBitmapShaderMap === undefined ? undefined : new Map(sourceRuntime.materialBitmapShaderMap);
|
|
19
|
+
targetRuntime.sceneMeshMaterialRegistry = copyMap(sourceRuntime.sceneMeshMaterialRegistry);
|
|
20
|
+
targetRuntime.webglShaderBindingResolver = sourceRuntime.webglShaderBindingResolver;
|
|
21
|
+
targetRuntime.glTextureResolverRegistry = copyRegistryMap(sourceRuntime.glTextureResolverRegistry);
|
|
22
|
+
targetRuntime.glRenderTextureGuard = sourceRuntime.glRenderTextureGuard;
|
|
23
|
+
targetRuntime.compressedTextureDecoder = sourceRuntime.compressedTextureDecoder;
|
|
24
|
+
targetRuntime.compressedTextureUpload = sourceRuntime.compressedTextureUpload;
|
|
25
|
+
targetRuntime.glRenderEffectRegistry = copyMap(sourceRuntime.glRenderEffectRegistry);
|
|
26
|
+
copyRenderStateRegistrations(target, source);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Creates a second render pipeline over `screenState`'s WebGL context.
|
|
30
|
+
*
|
|
31
|
+
* GPU objects and upload caches are aliases of one context tier. Pipeline policy is a creation-time
|
|
32
|
+
* snapshot: renderer/clip/material/effect/texture registrations start equal, then either state may
|
|
33
|
+
* override or omit them independently. Per-node proxies, adapters, frame counters, batch writers,
|
|
34
|
+
* render transforms, and renderer data are always fresh.
|
|
35
|
+
*/
|
|
36
|
+
export function createGlOffscreenRenderState(screenState) {
|
|
37
|
+
const state = _createRenderState({
|
|
38
|
+
allowSmoothing: screenState.allowSmoothing,
|
|
39
|
+
backgroundColor: screenState.backgroundColor,
|
|
40
|
+
backgroundColorRgba: [...screenState.backgroundColorRgba],
|
|
41
|
+
backgroundColorString: screenState.backgroundColorString,
|
|
42
|
+
pixelRatio: screenState.pixelRatio,
|
|
43
|
+
renderAlpha: screenState.renderAlpha,
|
|
44
|
+
renderBlendMode: screenState.renderBlendMode,
|
|
45
|
+
renderTransform2D: createMatrix(),
|
|
46
|
+
roundPixels: screenState.roundPixels,
|
|
47
|
+
sceneGraphSyncPolicy: screenState.sceneGraphSyncPolicy,
|
|
48
|
+
});
|
|
49
|
+
state.applyBlendMode = screenState.applyBlendMode;
|
|
50
|
+
state.canvas = screenState.canvas;
|
|
51
|
+
state.gl = screenState.gl;
|
|
52
|
+
const screenRuntime = getGlRenderStateRuntime(screenState);
|
|
53
|
+
const runtime = createGlRenderStateRuntime(screenRuntime);
|
|
54
|
+
state[EntityRuntimeKey] = runtime;
|
|
55
|
+
initializeOffscreenGlRuntime(runtime, screenRuntime);
|
|
56
|
+
copyAllRenderersFromRenderState(state, screenState);
|
|
57
|
+
copyGlRenderStateRegistrations(state, screenState);
|
|
58
|
+
return state;
|
|
59
|
+
}
|
|
5
60
|
export function createGlRenderState(canvas, options = {}) {
|
|
6
61
|
const contextAttribs = {
|
|
7
62
|
alpha: true,
|
|
@@ -65,8 +120,8 @@ export function createGlRenderState(canvas, options = {}) {
|
|
|
65
120
|
// Color-adjustment fold state (mode/data/buffer + the compiled programs) is not allocated here: it
|
|
66
121
|
// is owned by the opt-in registerGlColorAdjustmentMaterialFeature, so a state that never tints carries none of it.
|
|
67
122
|
runtime.textureCache = new WeakMap();
|
|
68
|
-
runtime.
|
|
69
|
-
runtime.
|
|
123
|
+
runtime.textureSourcePremultipliedTextureCache = new WeakMap();
|
|
124
|
+
runtime.textureSourceStraightTextureCache = new WeakMap();
|
|
70
125
|
runtime.quadVertexBuffer = quadVertexBuffer;
|
|
71
126
|
runtime.quadIndexBuffer = quadIndexBuffer;
|
|
72
127
|
runtime.quadVertexData = new Float32Array(16);
|
|
@@ -82,8 +137,23 @@ export function createGlRenderState(canvas, options = {}) {
|
|
|
82
137
|
// one to each state under EntityRuntimeKey and populates its fields; getGlRenderStateRuntime reads
|
|
83
138
|
// it back. The render path writes the returned object every frame, so the return is intentionally
|
|
84
139
|
// mutable (not Readonly).
|
|
85
|
-
export function createGlRenderStateRuntime() {
|
|
86
|
-
|
|
140
|
+
export function createGlRenderStateRuntime(sharedRuntime) {
|
|
141
|
+
const runtime = createRenderStateRuntime();
|
|
142
|
+
const contextRuntime = sharedRuntime === undefined ? { fields: {}, references: 0 } : getGlContextRuntime(sharedRuntime);
|
|
143
|
+
contextRuntime.references++;
|
|
144
|
+
_contextRuntimeByStateRuntime.set(runtime, contextRuntime);
|
|
145
|
+
for (const key of GL_CONTEXT_RUNTIME_KEYS) {
|
|
146
|
+
Object.defineProperty(runtime, key, {
|
|
147
|
+
configurable: true,
|
|
148
|
+
enumerable: true,
|
|
149
|
+
get: () => contextRuntime.fields[key],
|
|
150
|
+
set: (value) => {
|
|
151
|
+
contextRuntime.fields[key] = value;
|
|
152
|
+
},
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
runtime.currentRenderTarget = null;
|
|
156
|
+
return runtime;
|
|
87
157
|
}
|
|
88
158
|
// Frees the GPU resources createGlRenderState and the lazy ensure* helpers allocated on the
|
|
89
159
|
// state's runtime: the compiled shader programs and the vertex/index/instance buffers. Call when the
|
|
@@ -99,7 +169,15 @@ export function createGlRenderStateRuntime() {
|
|
|
99
169
|
// Deleting an already-deleted Gl program or buffer is a silent no-op, so destroying a screen
|
|
100
170
|
// state whose resources a cache state still aliases is safe.
|
|
101
171
|
export function destroyGlRenderState(state) {
|
|
172
|
+
if (_destroyedStates.has(state))
|
|
173
|
+
return;
|
|
174
|
+
_destroyedStates.add(state);
|
|
102
175
|
const runtime = getGlRenderStateRuntime(state);
|
|
176
|
+
destroyRenderState(state);
|
|
177
|
+
const contextRuntime = getGlContextRuntime(runtime);
|
|
178
|
+
contextRuntime.references--;
|
|
179
|
+
if (contextRuntime.references !== 0)
|
|
180
|
+
return;
|
|
103
181
|
const gl = state.gl;
|
|
104
182
|
// Dedupe: several shader wrappers (e.g. defaultBitmapShader) share shaderLoc.program.
|
|
105
183
|
const programs = new Set();
|
|
@@ -113,8 +191,16 @@ export function destroyGlRenderState(state) {
|
|
|
113
191
|
programs.add(runtime.quadBatchShader.program);
|
|
114
192
|
if (runtime.colorScaleBiasInstancedShader)
|
|
115
193
|
programs.add(runtime.colorScaleBiasInstancedShader.program);
|
|
194
|
+
if (runtime.colorMatrixInstancedShader)
|
|
195
|
+
programs.add(runtime.colorMatrixInstancedShader.program);
|
|
196
|
+
if (runtime.colorTintInstancedShader)
|
|
197
|
+
programs.add(runtime.colorTintInstancedShader.program);
|
|
116
198
|
if (runtime.uniformColorScaleBiasShader)
|
|
117
199
|
programs.add(runtime.uniformColorScaleBiasShader.program);
|
|
200
|
+
if (runtime.shapeMeshColorScaleBiasShader)
|
|
201
|
+
programs.add(runtime.shapeMeshColorScaleBiasShader.program);
|
|
202
|
+
if (runtime.shapeMeshColorMatrixShader)
|
|
203
|
+
programs.add(runtime.shapeMeshColorMatrixShader.program);
|
|
118
204
|
for (const program of programs)
|
|
119
205
|
gl.deleteProgram(program);
|
|
120
206
|
gl.deleteBuffer(runtime.quadVertexBuffer);
|
|
@@ -160,4 +246,93 @@ export function invalidateGlRenderStateCache(state) {
|
|
|
160
246
|
runtime.currentTextureStraightAlpha = false;
|
|
161
247
|
runtime.renderTargetViewport = null;
|
|
162
248
|
}
|
|
249
|
+
function initializeOffscreenGlRuntime(runtime, screenRuntime) {
|
|
250
|
+
runtime.currentFramebuffer = null;
|
|
251
|
+
runtime.currentMaskDepth = 0;
|
|
252
|
+
runtime.currentScissorRect = null;
|
|
253
|
+
runtime.currentRenderTarget = null;
|
|
254
|
+
runtime.flushPendingDraws = null;
|
|
255
|
+
runtime.renderTargetViewport = null;
|
|
256
|
+
runtime.defaultBitmapShader = screenRuntime.defaultBitmapShader;
|
|
257
|
+
runtime.quadBatchWriterBlendMode = null;
|
|
258
|
+
runtime.quadBatchWriterMaterial = null;
|
|
259
|
+
runtime.quadBatchWriterMaterialRenderer = null;
|
|
260
|
+
runtime.quadBatchWriterMaterialFloats = 0;
|
|
261
|
+
runtime.quadBatchWriterMaterialData = new Float32Array(8 * 256);
|
|
262
|
+
runtime.quadBatchWriterCount = 0;
|
|
263
|
+
runtime.quadBatchWriterInstanceData = new Float32Array(13 * 256);
|
|
264
|
+
runtime.quadBatchWriterTexture = null;
|
|
265
|
+
runtime.quadBatchWriterSampler = null;
|
|
266
|
+
runtime.quadBatchWriterStraightAlpha = false;
|
|
267
|
+
runtime.quadBatchWriterSmoothing = null;
|
|
268
|
+
runtime.particleInstanceData = new Float32Array(0);
|
|
269
|
+
runtime.quadVertexData = new Float32Array(16);
|
|
270
|
+
runtime.matrixArray = new Float32Array(9);
|
|
271
|
+
runtime.scissorStack = [];
|
|
272
|
+
runtime.clipForms = [];
|
|
273
|
+
}
|
|
274
|
+
function copyMap(source) {
|
|
275
|
+
if (source === undefined)
|
|
276
|
+
return undefined;
|
|
277
|
+
if (source === null)
|
|
278
|
+
return null;
|
|
279
|
+
return new Map(source);
|
|
280
|
+
}
|
|
281
|
+
// Guard-enabled registries are Map subclasses. Constructing through the source registry preserves
|
|
282
|
+
// that diagnostic behavior while still producing an independent registration snapshot.
|
|
283
|
+
function copyRegistryMap(source) {
|
|
284
|
+
if (source === undefined)
|
|
285
|
+
return undefined;
|
|
286
|
+
if (source === null)
|
|
287
|
+
return null;
|
|
288
|
+
const Registry = source.constructor;
|
|
289
|
+
const result = new Registry();
|
|
290
|
+
source.forEach((value, key) => result.set(key, value));
|
|
291
|
+
return result;
|
|
292
|
+
}
|
|
293
|
+
function getGlContextRuntime(runtime) {
|
|
294
|
+
const contextRuntime = _contextRuntimeByStateRuntime.get(runtime);
|
|
295
|
+
if (contextRuntime === undefined)
|
|
296
|
+
throw new Error('GlRenderState runtime has no context tier');
|
|
297
|
+
return contextRuntime;
|
|
298
|
+
}
|
|
299
|
+
// Storage in these slots is a pure function of (WebGL context, source data). Accessors on each state
|
|
300
|
+
// preserve the established runtime surface while routing the actual value to one shared context tier.
|
|
301
|
+
// Pass-local framebuffer/viewport/clip fields stay state-local because glRenderPass owns their exact
|
|
302
|
+
// dormant restore points on its per-context stack.
|
|
303
|
+
const GL_CONTEXT_RUNTIME_KEYS = [
|
|
304
|
+
'currentBlendMode',
|
|
305
|
+
'currentProgram',
|
|
306
|
+
'currentTexture',
|
|
307
|
+
'currentTextureStraightAlpha',
|
|
308
|
+
'particleShader',
|
|
309
|
+
'particleCornerBuffer',
|
|
310
|
+
'particleInstanceBuffer',
|
|
311
|
+
'quadBatchShader',
|
|
312
|
+
'quadBatchCornerBuffer',
|
|
313
|
+
'colorScaleBiasInstancedShader',
|
|
314
|
+
'colorMatrixInstancedShader',
|
|
315
|
+
'colorTintInstancedShader',
|
|
316
|
+
'uniformColorScaleBiasShader',
|
|
317
|
+
'shapeMeshColorScaleBiasShader',
|
|
318
|
+
'shapeMeshColorMatrixShader',
|
|
319
|
+
'sceneMeshUploadCache',
|
|
320
|
+
'shaderLoc',
|
|
321
|
+
'textureCache',
|
|
322
|
+
'textureSourcePremultipliedTextureCache',
|
|
323
|
+
'textureSourceStraightTextureCache',
|
|
324
|
+
'glExternalTextureCache',
|
|
325
|
+
'glRenderTextureCache',
|
|
326
|
+
'videoTextureCache',
|
|
327
|
+
'mipmappedTextures',
|
|
328
|
+
'anisotropyExt',
|
|
329
|
+
'maxAnisotropy',
|
|
330
|
+
'quadVertexBuffer',
|
|
331
|
+
'quadIndexBuffer',
|
|
332
|
+
'quadBatchWriterInstanceBuffer',
|
|
333
|
+
'quadBatchWriterMaterialBuffer',
|
|
334
|
+
'quadBatchWriterColorScaleBiasBuffer',
|
|
335
|
+
];
|
|
336
|
+
const _contextRuntimeByStateRuntime = new WeakMap();
|
|
337
|
+
const _destroyedStates = new WeakSet();
|
|
163
338
|
//# sourceMappingURL=glRenderState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glRenderState.js","sourceRoot":"","sources":["../src/glRenderState.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"glRenderState.js","sourceRoot":"","sources":["../src/glRenderState.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glRenderStateBracket.d.ts","sourceRoot":"","sources":["../src/glRenderStateBracket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"glRenderStateBracket.d.ts","sourceRoot":"","sources":["../src/glRenderStateBracket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,0BAA0B,CAAC;AAyCpF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAsC3D;AAKD,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAgD5D;AAKD,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAO/E"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getGlRenderStateRuntime } from './glRenderState';
|
|
2
|
-
// Restores the fixed-function and render-gl tracked state saved by pushGlRenderState.
|
|
3
|
-
//
|
|
4
|
-
//
|
|
5
|
-
//
|
|
2
|
+
// Restores the fixed-function, framebuffer, and render-gl tracked state saved by pushGlRenderState.
|
|
3
|
+
// The 2D root transform remains owned by the render-pass bracket: wrap a foreign offscreen draw with
|
|
4
|
+
// push -> beginGlRenderPass -> draw -> endGlRenderPass -> pop so the two brackets compose. Calling pop
|
|
5
|
+
// with no matching push is a no-op.
|
|
6
6
|
export function popGlRenderState(state) {
|
|
7
7
|
const saved = _renderStateStack.get(state)?.pop();
|
|
8
8
|
if (saved === undefined)
|
|
@@ -18,6 +18,7 @@ export function popGlRenderState(state) {
|
|
|
18
18
|
gl.blendEquationSeparate(saved.blendEquationRgb, saved.blendEquationAlpha);
|
|
19
19
|
gl.bindVertexArray(saved.vertexArray);
|
|
20
20
|
gl.useProgram(saved.program);
|
|
21
|
+
gl.bindFramebuffer(gl.FRAMEBUFFER, saved.framebuffer);
|
|
21
22
|
for (let i = 0; i < saved.texture2DByUnit.length; i++) {
|
|
22
23
|
gl.activeTexture(gl.TEXTURE0 + i);
|
|
23
24
|
gl.bindTexture(gl.TEXTURE_2D, saved.texture2DByUnit[i]);
|
|
@@ -27,11 +28,14 @@ export function popGlRenderState(state) {
|
|
|
27
28
|
gl.scissor(saved.scissorBox[0], saved.scissorBox[1], saved.scissorBox[2], saved.scissorBox[3]);
|
|
28
29
|
gl.viewport(saved.viewport[0], saved.viewport[1], saved.viewport[2], saved.viewport[3]);
|
|
29
30
|
const runtime = getGlRenderStateRuntime(state);
|
|
31
|
+
runtime.currentFramebuffer = saved.currentFramebuffer;
|
|
30
32
|
runtime.currentProgram = saved.currentProgram;
|
|
33
|
+
runtime.currentRenderTarget = saved.currentRenderTarget;
|
|
31
34
|
runtime.currentTexture = saved.currentTexture;
|
|
32
35
|
runtime.currentBlendMode = saved.currentBlendMode;
|
|
33
36
|
runtime.currentScissorRect = saved.currentScissorRect;
|
|
34
37
|
runtime.currentTextureStraightAlpha = saved.currentTextureStraightAlpha;
|
|
38
|
+
runtime.renderTargetViewport = saved.renderTargetViewport;
|
|
35
39
|
}
|
|
36
40
|
// Flushes queued owner draws, then saves the fixed-function bindings a foreign inline renderer may
|
|
37
41
|
// disturb. The stack is per render state, so nested foreign draws restore in last-in-first-out order.
|
|
@@ -63,7 +67,9 @@ export function pushGlRenderState(state) {
|
|
|
63
67
|
blendSrcRgb: gl.getParameter(gl.BLEND_SRC_RGB),
|
|
64
68
|
cullFace: gl.isEnabled(gl.CULL_FACE),
|
|
65
69
|
cullFaceMode: gl.getParameter(gl.CULL_FACE_MODE),
|
|
70
|
+
currentFramebuffer: runtime.currentFramebuffer,
|
|
66
71
|
currentBlendMode: runtime.currentBlendMode,
|
|
72
|
+
currentRenderTarget: runtime.currentRenderTarget,
|
|
67
73
|
currentProgram: runtime.currentProgram,
|
|
68
74
|
currentScissorRect: runtime.currentScissorRect,
|
|
69
75
|
currentTexture: runtime.currentTexture,
|
|
@@ -71,7 +77,9 @@ export function pushGlRenderState(state) {
|
|
|
71
77
|
depthFunc: gl.getParameter(gl.DEPTH_FUNC),
|
|
72
78
|
depthMask: gl.getParameter(gl.DEPTH_WRITEMASK),
|
|
73
79
|
depthTest: gl.isEnabled(gl.DEPTH_TEST),
|
|
80
|
+
framebuffer: gl.getParameter(gl.FRAMEBUFFER_BINDING),
|
|
74
81
|
program: gl.getParameter(gl.CURRENT_PROGRAM),
|
|
82
|
+
renderTargetViewport: runtime.renderTargetViewport,
|
|
75
83
|
scissorBox: readGlBox(gl, gl.SCISSOR_BOX),
|
|
76
84
|
scissorTest: gl.isEnabled(gl.SCISSOR_TEST),
|
|
77
85
|
texture2DByUnit,
|
|
@@ -93,6 +101,10 @@ export function withGlRenderState(state, callback) {
|
|
|
93
101
|
}
|
|
94
102
|
function readGlBox(gl, parameter) {
|
|
95
103
|
const value = gl.getParameter(parameter);
|
|
104
|
+
// Lightweight test contexts may omit inert query state. Browsers always return four values for
|
|
105
|
+
// VIEWPORT/SCISSOR_BOX; a zero box is the conservative restoration sentinel for a partial mock.
|
|
106
|
+
if (value === null || value === undefined)
|
|
107
|
+
return [0, 0, 0, 0];
|
|
96
108
|
return [value[0], value[1], value[2], value[3]];
|
|
97
109
|
}
|
|
98
110
|
function restoreGlCapability(gl, capability, enabled) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glRenderStateBracket.js","sourceRoot":"","sources":["../src/glRenderStateBracket.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"glRenderStateBracket.js","sourceRoot":"","sources":["../src/glRenderStateBracket.ts"],"names":[],"mappings":"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"}
|