@flighthq/render-gl 0.3.0-next.906.07cea63 → 0.3.1-next.1041.35b950c

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.
Files changed (118) hide show
  1. package/dist/contract.d.ts +5 -0
  2. package/dist/contract.d.ts.map +1 -1
  3. package/dist/contract.js +5 -0
  4. package/dist/contract.js.map +1 -1
  5. package/dist/enableGlRenderStateGuards.d.ts +4 -0
  6. package/dist/enableGlRenderStateGuards.d.ts.map +1 -0
  7. package/dist/enableGlRenderStateGuards.js +61 -0
  8. package/dist/enableGlRenderStateGuards.js.map +1 -0
  9. package/dist/enableGlRenderTextureGuards.d.ts.map +1 -1
  10. package/dist/enableGlRenderTextureGuards.js +2 -2
  11. package/dist/enableGlRenderTextureGuards.js.map +1 -1
  12. package/dist/enableGlTextureResolverGuards.d.ts +4 -0
  13. package/dist/enableGlTextureResolverGuards.d.ts.map +1 -0
  14. package/dist/enableGlTextureResolverGuards.js +8 -0
  15. package/dist/enableGlTextureResolverGuards.js.map +1 -0
  16. package/dist/explainGlTextureResolution.d.ts +3 -0
  17. package/dist/explainGlTextureResolution.d.ts.map +1 -0
  18. package/dist/explainGlTextureResolution.js +15 -0
  19. package/dist/explainGlTextureResolution.js.map +1 -0
  20. package/dist/glBackground.d.ts.map +1 -1
  21. package/dist/glBackground.js +5 -3
  22. package/dist/glBackground.js.map +1 -1
  23. package/dist/glCompressedTexture.d.ts +2 -2
  24. package/dist/glCompressedTexture.d.ts.map +1 -1
  25. package/dist/glCompressedTexture.js +58 -18
  26. package/dist/glCompressedTexture.js.map +1 -1
  27. package/dist/glDraw.d.ts +4 -2
  28. package/dist/glDraw.d.ts.map +1 -1
  29. package/dist/glDraw.js +112 -70
  30. package/dist/glDraw.js.map +1 -1
  31. package/dist/glExternalTexture.d.ts +4 -0
  32. package/dist/glExternalTexture.d.ts.map +1 -0
  33. package/dist/glExternalTexture.js +46 -0
  34. package/dist/glExternalTexture.js.map +1 -0
  35. package/dist/glFullscreenPass.js +5 -6
  36. package/dist/glFullscreenPass.js.map +1 -1
  37. package/dist/glLinearToSrgbPass.js +3 -3
  38. package/dist/glLinearToSrgbPass.js.map +1 -1
  39. package/dist/glMaterialRegistry.d.ts.map +1 -1
  40. package/dist/glMaterialRegistry.js +18 -11
  41. package/dist/glMaterialRegistry.js.map +1 -1
  42. package/dist/glPresentRenderTarget.js +3 -3
  43. package/dist/glPresentRenderTarget.js.map +1 -1
  44. package/dist/glRenderPass.d.ts +2 -2
  45. package/dist/glRenderPass.d.ts.map +1 -1
  46. package/dist/glRenderPass.js +193 -33
  47. package/dist/glRenderPass.js.map +1 -1
  48. package/dist/glRenderState.d.ts +14 -2
  49. package/dist/glRenderState.d.ts.map +1 -1
  50. package/dist/glRenderState.js +228 -23
  51. package/dist/glRenderState.js.map +1 -1
  52. package/dist/glRenderStateBracket.d.ts.map +1 -1
  53. package/dist/glRenderStateBracket.js +70 -4
  54. package/dist/glRenderStateBracket.js.map +1 -1
  55. package/dist/glRenderTarget.d.ts +10 -1
  56. package/dist/glRenderTarget.d.ts.map +1 -1
  57. package/dist/glRenderTarget.js +154 -69
  58. package/dist/glRenderTarget.js.map +1 -1
  59. package/dist/glRenderTargetPool.d.ts +4 -1
  60. package/dist/glRenderTargetPool.d.ts.map +1 -1
  61. package/dist/glRenderTargetPool.js +32 -23
  62. package/dist/glRenderTargetPool.js.map +1 -1
  63. package/dist/glRenderTexture.d.ts +13 -8
  64. package/dist/glRenderTexture.d.ts.map +1 -1
  65. package/dist/glRenderTexture.js +94 -37
  66. package/dist/glRenderTexture.js.map +1 -1
  67. package/dist/glRenderTexturePool.d.ts +7 -0
  68. package/dist/glRenderTexturePool.d.ts.map +1 -0
  69. package/dist/glRenderTexturePool.js +88 -0
  70. package/dist/glRenderTexturePool.js.map +1 -0
  71. package/dist/glSkinPaletteTexture.d.ts +1 -1
  72. package/dist/glSkinPaletteTexture.d.ts.map +1 -1
  73. package/dist/glSkinPaletteTexture.js +6 -2
  74. package/dist/glSkinPaletteTexture.js.map +1 -1
  75. package/dist/glTestHelper.d.ts.map +1 -1
  76. package/dist/glTestHelper.js +12 -8
  77. package/dist/glTestHelper.js.map +1 -1
  78. package/dist/glTextureResolver.d.ts +7 -8
  79. package/dist/glTextureResolver.d.ts.map +1 -1
  80. package/dist/glTextureResolver.js +59 -55
  81. package/dist/glTextureResolver.js.map +1 -1
  82. package/dist/glTextureUpload.d.ts +4 -4
  83. package/dist/glTextureUpload.d.ts.map +1 -1
  84. package/dist/glTextureUpload.js +8 -14
  85. package/dist/glTextureUpload.js.map +1 -1
  86. package/dist/glTextureVideoUpload.d.ts +2 -2
  87. package/dist/glTextureVideoUpload.d.ts.map +1 -1
  88. package/dist/glTextureVideoUpload.js +5 -5
  89. package/dist/glTextureVideoUpload.js.map +1 -1
  90. package/dist/index.d.ts +1 -1
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +1 -1
  93. package/dist/index.js.map +1 -1
  94. package/package.json +13 -6
  95. package/src/enableGlRenderStateGuards.test.ts +80 -0
  96. package/src/enableGlTextureResolverGuards.test.ts +58 -0
  97. package/src/explainGlTextureResolution.test.ts +32 -0
  98. package/src/glBackground.test.ts +24 -0
  99. package/src/glCompressedTexture.test.ts +35 -28
  100. package/src/glDraw.test.ts +192 -81
  101. package/src/glExternalTexture.test.ts +30 -0
  102. package/src/glFullscreenPass.test.ts +15 -2
  103. package/src/glLinearToSrgbPass.test.ts +13 -0
  104. package/src/glMaterialRegistry.test.ts +58 -1
  105. package/src/glPresentRenderTarget.test.ts +15 -1
  106. package/src/glReadback.test.ts +13 -0
  107. package/src/glRenderPass.test.ts +257 -5
  108. package/src/glRenderState.test.ts +447 -3
  109. package/src/glRenderStateBracket.test.ts +201 -1
  110. package/src/glRenderTarget.test.ts +244 -3
  111. package/src/glRenderTargetPool.test.ts +110 -5
  112. package/src/glRenderTexture.test.ts +88 -14
  113. package/src/glRenderTexturePool.test.ts +137 -0
  114. package/src/glShader.test.ts +28 -0
  115. package/src/glTestHelper.test.ts +51 -0
  116. package/src/glTextureResolver.test.ts +155 -71
  117. package/src/glTextureUpload.test.ts +2 -10
  118. package/src/glTextureVideoUpload.test.ts +20 -5
@@ -1,8 +1,12 @@
1
1
  export * from './glBackground';
2
2
  export * from './glCompressedTexture';
3
3
  export * from './glDraw';
4
+ export * from './glExternalTexture';
4
5
  export * from './glElement';
5
6
  export * from './enableGlRenderTextureGuards';
7
+ export * from './enableGlRenderStateGuards';
8
+ export * from './enableGlTextureResolverGuards';
9
+ export * from './explainGlTextureResolution';
6
10
  export * from './glFullscreenPass';
7
11
  export * from './glLinearToSrgbPass';
8
12
  export * from './glMaterialRegistry';
@@ -14,6 +18,7 @@ export * from './glRenderState';
14
18
  export * from './glRenderStateBracket';
15
19
  export * from './glRenderTarget';
16
20
  export * from './glRenderTexture';
21
+ export * from './glRenderTexturePool';
17
22
  export * from './glRenderTargetPool';
18
23
  export * from './glShader';
19
24
  export * from './glShaderBinding';
@@ -1 +1 @@
1
- {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
package/dist/contract.js CHANGED
@@ -1,8 +1,12 @@
1
1
  export * from './glBackground';
2
2
  export * from './glCompressedTexture';
3
3
  export * from './glDraw';
4
+ export * from './glExternalTexture';
4
5
  export * from './glElement';
5
6
  export * from './enableGlRenderTextureGuards';
7
+ export * from './enableGlRenderStateGuards';
8
+ export * from './enableGlTextureResolverGuards';
9
+ export * from './explainGlTextureResolution';
6
10
  export * from './glFullscreenPass';
7
11
  export * from './glLinearToSrgbPass';
8
12
  export * from './glMaterialRegistry';
@@ -14,6 +18,7 @@ export * from './glRenderState';
14
18
  export * from './glRenderStateBracket';
15
19
  export * from './glRenderTarget';
16
20
  export * from './glRenderTexture';
21
+ export * from './glRenderTexturePool';
17
22
  export * from './glRenderTargetPool';
18
23
  export * from './glShader';
19
24
  export * from './glShaderBinding';
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,aAAa,CAAC;AAC5B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { GlRenderState } from '@flighthq/types/contract';
2
+ export declare function areGlRenderStateGuardsEnabled(state: GlRenderState): boolean;
3
+ export declare function enableGlRenderStateGuards(state: GlRenderState): void;
4
+ //# sourceMappingURL=enableGlRenderStateGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableGlRenderStateGuards.d.ts","sourceRoot":"","sources":["../src/enableGlRenderStateGuards.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,0BAA0B,CAAC;AAKvF,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAG3E;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAUpE"}
@@ -0,0 +1,61 @@
1
+ import { logOnce } from '@flighthq/log/contract';
2
+ import { createSlotTable } from '@flighthq/registry/contract';
3
+ import { getRenderStateRuntime } from '@flighthq/render/contract';
4
+ import { LogLevel, RegistryEntryState } from '@flighthq/types/contract';
5
+ import { getGlRenderStateRuntime } from './glRenderState';
6
+ export function areGlRenderStateGuardsEnabled(state) {
7
+ const entry = getRenderStateRuntime(state).registries.renderRootGuard?.entry;
8
+ return entry?.state === RegistryEntryState.Bound && entry.value === warnOnSecondRenderRoot;
9
+ }
10
+ // Installs the GL pipeline-policy guard. A render state derives proxy transforms relative to one root;
11
+ // preparing another root on that state can reuse stale relative transforms. Give each independently
12
+ // rendered root its own createGlOffscreenRenderState-derived state.
13
+ export function enableGlRenderStateGuards(state) {
14
+ const runtime = getRenderStateRuntime(state);
15
+ const table = runtime.registries.renderRootGuard ?? createSlotTable('RenderRootGuard', 'Disabled');
16
+ if (table.entry?.state !== RegistryEntryState.Bound || table.entry.value !== warnOnSecondRenderRoot) {
17
+ runtime.registries.renderRootGuard = {
18
+ ...table,
19
+ entry: { state: RegistryEntryState.Bound, value: warnOnSecondRenderRoot },
20
+ };
21
+ }
22
+ getGlRenderStateRuntime(state).bindingCacheGuard = warnOnForeignGlBinding;
23
+ }
24
+ // render-gl skips a redundant `useProgram` by trusting its cached binding slot, which is sound only
25
+ // while render-gl is the sole writer of GL state on the context. A sibling renderer issuing raw GL —
26
+ // scene3d-gl's mesh, skybox, shadow and IBL passes all call `gl.useProgram` directly — invalidates that
27
+ // assumption, and `invalidateGlRenderStateCache` is the contract for restoring it.
28
+ //
29
+ // Verified here by asking GL what is ACTUALLY bound. That is a synchronous driver query and far too
30
+ // expensive for a draw path, which is exactly why it lives behind an opt-in guard rather than in the
31
+ // skip itself. Without it the first symptom is a GL error raised against a later uniform call, blaming
32
+ // render-gl for a binding some other renderer changed.
33
+ function warnOnForeignGlBinding(state, expectedProgram) {
34
+ const actual = state.gl.getParameter(state.gl.CURRENT_PROGRAM);
35
+ if (actual === expectedProgram)
36
+ return;
37
+ logOnce('render-gl:foreign-gl-binding', LogLevel.Warn, {
38
+ message: 'useGlProgram: the GL program actually bound is not the one render-gl cached, so a guest renderer ' +
39
+ 'wrote GL state without restoring it. Call invalidateGlRenderStateCache(state) before returning ' +
40
+ 'control to render-gl, or the next draw skips a bind it needs and GL rejects a later uniform.',
41
+ state,
42
+ }, 'render-gl');
43
+ }
44
+ function warnOnSecondRenderRoot(state, root) {
45
+ const glState = state;
46
+ const previous = _firstRoots.get(glState);
47
+ if (previous === undefined) {
48
+ _firstRoots.set(glState, root);
49
+ return;
50
+ }
51
+ if (previous === root)
52
+ return;
53
+ logOnce('render-gl:multiple-roots-one-state', LogLevel.Warn, {
54
+ firstRoot: previous,
55
+ message: 'prepareScene2DRender: one GlRenderState was used for multiple roots — derive a dedicated pipeline with createGlOffscreenRenderState(screenState)',
56
+ root,
57
+ state,
58
+ }, 'render-gl');
59
+ }
60
+ const _firstRoots = new WeakMap();
61
+ //# sourceMappingURL=enableGlRenderStateGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableGlRenderStateGuards.js","sourceRoot":"","sources":["../src/enableGlRenderStateGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAExE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,6BAA6B,CAAC,KAAoB;IAChE,MAAM,KAAK,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,CAAC;IAC7E,OAAO,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,sBAAsB,CAAC;AAC7F,CAAC;AAED,uGAAuG;AACvG,oGAAoG;AACpG,oEAAoE;AACpE,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,MAAM,OAAO,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;IAC7C,MAAM,KAAK,GAAG,OAAO,CAAC,UAAU,CAAC,eAAe,IAAI,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;IACnG,IAAI,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,KAAK,sBAAsB,EAAE,CAAC;QACpG,OAAO,CAAC,UAAU,CAAC,eAAe,GAAG;YACnC,GAAG,KAAK;YACR,KAAK,EAAE,EAAE,KAAK,EAAE,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,sBAAsB,EAAE;SAC1E,CAAC;IACJ,CAAC;IACD,uBAAuB,CAAC,KAAK,CAAC,CAAC,iBAAiB,GAAG,sBAAsB,CAAC;AAC5E,CAAC;AAED,oGAAoG;AACpG,qGAAqG;AACrG,wGAAwG;AACxG,mFAAmF;AACnF,EAAE;AACF,oGAAoG;AACpG,qGAAqG;AACrG,uGAAuG;AACvG,uDAAuD;AACvD,SAAS,sBAAsB,CAAC,KAAoB,EAAE,eAA6B;IACjF,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,eAAe,CAAwB,CAAC;IACtF,IAAI,MAAM,KAAK,eAAe;QAAE,OAAO;IACvC,OAAO,CACL,8BAA8B,EAC9B,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,mGAAmG;YACnG,iGAAiG;YACjG,8FAA8F;QAChG,KAAK;KACN,EACD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAkB,EAAE,IAAgB;IAClE,MAAM,OAAO,GAAG,KAAsB,CAAC;IACvC,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC/B,OAAO;IACT,CAAC;IACD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO;IAC9B,OAAO,CACL,oCAAoC,EACpC,QAAQ,CAAC,IAAI,EACb;QACE,SAAS,EAAE,QAAQ;QACnB,OAAO,EACL,kJAAkJ;QACpJ,IAAI;QACJ,KAAK;KACN,EACD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,OAAO,EAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"enableGlRenderTextureGuards.d.ts","sourceRoot":"","sources":["../src/enableGlRenderTextureGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAuC,MAAM,0BAA0B,CAAC;AAKnG,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAM7E;AAID,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGtE"}
1
+ {"version":3,"file":"enableGlRenderTextureGuards.d.ts","sourceRoot":"","sources":["../src/enableGlRenderTextureGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAA6C,MAAM,0BAA0B,CAAC;AAKzG,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAM7E;AAID,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGtE"}
@@ -23,8 +23,8 @@ function warnGlRenderTextureUnavailable(_state, renderTexture, explanation) {
23
23
  logOnce(`render-gl:render-texture-${explanation.status}`, LogLevel.Warn, {
24
24
  height: explanation.height,
25
25
  message: writing
26
- ? 'bindGlRenderTexture: the produced Texture is still bound for writing; sampling it would be a read-after-write feedback hazard.'
27
- : 'bindGlRenderTexture: the produced Texture has not completed renderIntoGlRenderTexture; sampling uses the empty sentinel.',
26
+ ? 'bindGlRenderTexture: the render Texture is still bound for writing; sampling it would be a read-after-write feedback hazard.'
27
+ : 'bindGlRenderTexture: the render Texture has not completed renderIntoGlRenderTexture; sampling uses the empty sentinel.',
28
28
  renderTexture,
29
29
  status: explanation.status,
30
30
  width: explanation.width,
@@ -1 +1 @@
1
- {"version":3,"file":"enableGlRenderTextureGuards.js","sourceRoot":"","sources":["../src/enableGlRenderTextureGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,+BAA+B,CAAC,KAAoB;IAClE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,4BAA4B,CAAC,KAAK,EAAE,GAAG,EAAE;QACvC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8FAA8F;AAC9F,8EAA8E;AAC9E,MAAM,UAAU,2BAA2B,CAAC,KAAoB;IAC9D,uBAAuB,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IAC/D,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAoB,EAAE,SAAqB;IAC/E,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,SAAS,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAqB,EACrB,aAAgC,EAChC,WAAiD;IAEjD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC;IACjD,OAAO,CACL,4BAA4B,WAAW,CAAC,MAAM,EAAE,EAChD,QAAQ,CAAC,IAAI,EACb;QACE,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,OAAO,EAAE,OAAO;YACd,CAAC,CAAC,gIAAgI;YAClI,CAAC,CAAC,0HAA0H;QAC9H,aAAa;QACb,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;KACzB,EACD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA0B,CAAC"}
1
+ {"version":3,"file":"enableGlRenderTextureGuards.js","sourceRoot":"","sources":["../src/enableGlRenderTextureGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,MAAM,UAAU,+BAA+B,CAAC,KAAoB;IAClE,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,4BAA4B,CAAC,KAAK,EAAE,GAAG,EAAE;QACvC,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,8FAA8F;AAC9F,8EAA8E;AAC9E,MAAM,UAAU,2BAA2B,CAAC,KAAoB;IAC9D,uBAAuB,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;IAC/D,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,4BAA4B,CAAC,KAAoB,EAAE,SAAqB;IAC/E,IAAI,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;QAAE,SAAS,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,8BAA8B,CACrC,MAAqB,EACrB,aAAsC,EACtC,WAAiD;IAEjD,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,KAAK,SAAS,CAAC;IACjD,OAAO,CACL,4BAA4B,WAAW,CAAC,MAAM,EAAE,EAChD,QAAQ,CAAC,IAAI,EACb;QACE,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,OAAO,EAAE,OAAO;YACd,CAAC,CAAC,8HAA8H;YAChI,CAAC,CAAC,wHAAwH;QAC5H,aAAa;QACb,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,KAAK,EAAE,WAAW,CAAC,KAAK;KACzB,EACD,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,OAAO,EAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { GlRenderState } from '@flighthq/types/contract';
2
+ export declare function areGlTextureResolverGuardsEnabled(state: GlRenderState): boolean;
3
+ export declare function enableGlTextureResolverGuards(state: GlRenderState): void;
4
+ //# sourceMappingURL=enableGlTextureResolverGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableGlTextureResolverGuards.d.ts","sourceRoot":"","sources":["../src/enableGlTextureResolverGuards.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE/E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAExE"}
@@ -0,0 +1,8 @@
1
+ import { areRenderRegistryGuardsEnabled, enableRenderRegistryGuards } from '@flighthq/render/contract';
2
+ export function areGlTextureResolverGuardsEnabled(state) {
3
+ return areRenderRegistryGuardsEnabled(state);
4
+ }
5
+ export function enableGlTextureResolverGuards(state) {
6
+ enableRenderRegistryGuards(state);
7
+ }
8
+ //# sourceMappingURL=enableGlTextureResolverGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableGlTextureResolverGuards.js","sourceRoot":"","sources":["../src/enableGlTextureResolverGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,0BAA0B,EAAE,MAAM,2BAA2B,CAAC;AAGvG,MAAM,UAAU,iCAAiC,CAAC,KAAoB;IACpE,OAAO,8BAA8B,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAoB;IAChE,0BAA0B,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { GlRenderState, TextureLike, TextureResolutionExplanation } from '@flighthq/types/contract';
2
+ export declare function explainGlTextureResolution(state: GlRenderState, texture: Readonly<TextureLike>): TextureResolutionExplanation;
3
+ //# sourceMappingURL=explainGlTextureResolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainGlTextureResolution.d.ts","sourceRoot":"","sources":["../src/explainGlTextureResolution.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAKzG,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAC7B,4BAA4B,CAU9B"}
@@ -0,0 +1,15 @@
1
+ import { getTextureSourceKind } from '@flighthq/texture/contract';
2
+ import { RegistryEntryState } from '@flighthq/types/contract';
3
+ import { getGlRenderStateRuntime } from './glRenderState';
4
+ export function explainGlTextureResolution(state, texture) {
5
+ const kind = getTextureSourceKind(texture);
6
+ if (kind === null)
7
+ return { kind, status: 'missing-kind' };
8
+ return {
9
+ kind,
10
+ status: getGlRenderStateRuntime(state).registries.textureResolvers.entries.get(kind)?.state === RegistryEntryState.Bound
11
+ ? 'registered'
12
+ : 'missing-resolver',
13
+ };
14
+ }
15
+ //# sourceMappingURL=explainGlTextureResolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explainGlTextureResolution.js","sourceRoot":"","sources":["../src/explainGlTextureResolution.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,0BAA0B,CACxC,KAAoB,EACpB,OAA8B;IAE9B,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;IAC3D,OAAO;QACL,IAAI;QACJ,MAAM,EACJ,uBAAuB,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,KAAK,kBAAkB,CAAC,KAAK;YAC9G,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,kBAAkB;KACzB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"glBackground.d.ts","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAa7D"}
1
+ {"version":3,"file":"glBackground.d.ts","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAwB7D"}
@@ -1,12 +1,14 @@
1
+ import { srgbChannelToLinear } from '@flighthq/color/contract';
1
2
  import { getGlRenderStateRuntime } from './glRenderState';
2
3
  export function renderGlBackground(state) {
3
4
  const runtime = getGlRenderStateRuntime(state);
4
5
  const gl = state.gl;
5
- const viewport = runtime.renderTargetViewport ?? state.canvas;
6
- gl.viewport(0, 0, viewport.width, viewport.height);
6
+ const viewport = runtime.renderTargetViewport;
7
+ gl.viewport(viewport?.x ?? 0, viewport?.y ?? 0, viewport?.width ?? state.canvas.width, viewport?.height ?? state.canvas.height);
7
8
  const rgba = state.backgroundColorRgba;
8
9
  if (rgba.length >= 4 && rgba[3] > 0) {
9
- gl.clearColor(rgba[0], rgba[1], rgba[2], rgba[3]);
10
+ const linear = runtime.currentRenderTarget?.colorSpace === 'linear';
11
+ gl.clearColor(linear ? srgbChannelToLinear(rgba[0]) : rgba[0], linear ? srgbChannelToLinear(rgba[1]) : rgba[1], linear ? srgbChannelToLinear(rgba[2]) : rgba[2], rgba[3]);
10
12
  }
11
13
  else {
12
14
  gl.clearColor(0, 0, 0, 0);
@@ -1 +1 @@
1
- {"version":3,"file":"glBackground.js","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,IAAI,KAAK,CAAC,MAAM,CAAC;IAC9D,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACpD,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAClC,CAAC"}
1
+ {"version":3,"file":"glBackground.js","sourceRoot":"","sources":["../src/glBackground.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IACpB,MAAM,QAAQ,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAC9C,EAAE,CAAC,QAAQ,CACT,QAAQ,EAAE,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,CAAC,IAAI,CAAC,EAChB,QAAQ,EAAE,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,EACrC,QAAQ,EAAE,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CACxC,CAAC;IACF,MAAM,IAAI,GAAG,KAAK,CAAC,mBAAmB,CAAC;IACvC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,OAAO,CAAC,mBAAmB,EAAE,UAAU,KAAK,QAAQ,CAAC;QACpE,EAAE,CAAC,UAAU,CACX,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAC/C,IAAI,CAAC,CAAC,CAAC,CACR,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAClC,CAAC"}
@@ -1,8 +1,8 @@
1
- import type { GlCompressedTextureDecoder, GlCompressedTextureSupport, GlRenderState, TextureContainer, TextureContainerFormat } from '@flighthq/types/contract';
1
+ import type { GlCompressedTextureDecoder, GlCompressedTextureSupport, GlRenderState, TextureContainer, TextureContainerFormat, TextureColorSpace } from '@flighthq/types/contract';
2
2
  export declare function detectGlCompressedTextureSupport(gl: WebGL2RenderingContext): GlCompressedTextureSupport;
3
3
  export declare function getGlCompressedTextureFormat(gl: WebGL2RenderingContext, format: TextureContainerFormat): number;
4
4
  export declare function hasGlCompressedTextureFormat(support: Readonly<GlCompressedTextureSupport>, format: TextureContainerFormat): boolean;
5
5
  export declare function registerGlCompressedTextureDecoder(state: GlRenderState, decode: GlCompressedTextureDecoder | null): void;
6
6
  export declare function registerGlCompressedTextureUpload(state: GlRenderState, uploader?: null): void;
7
- export declare function uploadGlCompressedTextureContainer(gl: WebGL2RenderingContext, container: Readonly<TextureContainer>, payload: Readonly<Uint8Array>, decode?: GlCompressedTextureDecoder): boolean;
7
+ export declare function uploadGlCompressedTextureContainer(gl: WebGL2RenderingContext, container: Readonly<TextureContainer>, payload: Readonly<Uint8Array>, decode?: GlCompressedTextureDecoder, colorSpace?: TextureColorSpace): boolean;
8
8
  //# sourceMappingURL=glCompressedTexture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"glCompressedTexture.d.ts","sourceRoot":"","sources":["../src/glCompressedTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,0BAA0B,EAC1B,aAAa,EAEb,gBAAgB,EAChB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAmBlC,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,sBAAsB,GAAG,0BAA0B,CAWvG;AAQD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAqG/G;AAKD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EAC7C,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAuCT;AAOD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,0BAA0B,GAAG,IAAI,GACxC,IAAI,CAEN;AASD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAE7F;AAmBD,wBAAgB,kCAAkC,CAChD,EAAE,EAAE,sBAAsB,EAC1B,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACrC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC7B,MAAM,CAAC,EAAE,0BAA0B,GAClC,OAAO,CA8DT"}
1
+ {"version":3,"file":"glCompressedTexture.d.ts","sourceRoot":"","sources":["../src/glCompressedTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,0BAA0B,EAC1B,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAoBlC,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,sBAAsB,GAAG,0BAA0B,CAWvG;AAQD,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAqG/G;AAKD,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,EAC7C,MAAM,EAAE,sBAAsB,GAC7B,OAAO,CAuCT;AAOD,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,0BAA0B,GAAG,IAAI,GACxC,IAAI,CAON;AAOD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAO7F;AAmBD,wBAAgB,kCAAkC,CAChD,EAAE,EAAE,sBAAsB,EAC1B,SAAS,EAAE,QAAQ,CAAC,gBAAgB,CAAC,EACrC,OAAO,EAAE,QAAQ,CAAC,UAAU,CAAC,EAC7B,MAAM,CAAC,EAAE,0BAA0B,EACnC,UAAU,CAAC,EAAE,iBAAiB,GAC7B,OAAO,CA6ET"}
@@ -1,3 +1,4 @@
1
+ import { RegistryEntryState } from '@flighthq/types/contract';
1
2
  import { getGlRenderStateRuntime } from './glRenderState';
2
3
  // GPU-native block-compressed texture upload for WebGL2: hand a parsed TextureContainer (KTX2 / DDS /
3
4
  // ATF) plus its byte payload and this pushes every mip level straight to the GPU with
@@ -179,17 +180,25 @@ export function hasGlCompressedTextureFormat(support, format) {
179
180
  // compressed texture the device lacks never installs one, so the decoder (and any WASM block-codec it
180
181
  // wraps) tree-shakes out. Pass null to clear a previously installed decoder.
181
182
  export function registerGlCompressedTextureDecoder(state, decode) {
182
- getGlRenderStateRuntime(state).compressedTextureDecoder = decode;
183
+ const runtime = getGlRenderStateRuntime(state);
184
+ const table = runtime.registries.compressedTextureDecoder;
185
+ runtime.registries.compressedTextureDecoder = {
186
+ ...table,
187
+ entry: decode === null ? null : { state: RegistryEntryState.Bound, value: decode },
188
+ };
183
189
  }
184
190
  // Installs the block-compressed upload seam on a render state, opting the ~40-format
185
191
  // uploadGlCompressedTextureContainer path into the bundle only for a state that actually draws a
186
- // compressed texture. The 2D display draw path (uploadGlBoundImageResource) reads the installed handler off
187
- // the runtime and skips a compressed-only resource when none is registered, so a plain element/data
188
- // bitmap never carries the compression enum table. Opt-in and last-write-wins; pass null to clear a
189
- // previously installed uploader. The installed handler bridges a compressed ImageResource to
190
- // uploadGlCompressedTextureContainer, threading through any registered RGBA decode fallback.
192
+ // CompressedImage. The 2D display draw path reads the installed handler off the runtime and skips the
193
+ // source when none is registered, so Image/Bitmap bundles do not carry the compression enum
194
+ // table. Opt-in and last-write-wins; pass null to clear a previously installed uploader.
191
195
  export function registerGlCompressedTextureUpload(state, uploader) {
192
- getGlRenderStateRuntime(state).compressedTextureUpload = uploader === null ? null : uploadGlCompressedImageResource;
196
+ const runtime = getGlRenderStateRuntime(state);
197
+ const table = runtime.registries.compressedTextureUpload;
198
+ runtime.registries.compressedTextureUpload = {
199
+ ...table,
200
+ entry: uploader === null ? null : { state: RegistryEntryState.Bound, value: uploadGlCompressedImage },
201
+ };
193
202
  }
194
203
  // Uploads every stored sub-image of a compressed container to the texture the caller has bound. Takes
195
204
  // the GPU-native `compressedTexImage2D`/`compressedTexImage3D` path when the device supports the
@@ -208,7 +217,7 @@ export function registerGlCompressedTextureUpload(state, uploader) {
208
217
  // gl.TEXTURE_CUBE_MAP_POSITIVE_X + face and an array's layers slice into a gl.TEXTURE_2D_ARRAY. The
209
218
  // RGBA decode fallback covers only the plain 2D case (faces === 1, layers === 1); a compressed cubemap
210
219
  // or array with no native support reports failure rather than a partial 2D upload.
211
- export function uploadGlCompressedTextureContainer(gl, container, payload, decode) {
220
+ export function uploadGlCompressedTextureContainer(gl, container, payload, decode, colorSpace) {
212
221
  // This atom realizes 2D, one cubemap, or a 2D array. A volume needs TEXTURE_3D allocation and
213
222
  // depth-slice layout; a cubemap array needs a distinct target/extension. Reject those shapes before
214
223
  // issuing any GL call rather than uploading their first slice as a plausible but incorrect 2D image.
@@ -219,7 +228,10 @@ export function uploadGlCompressedTextureContainer(gl, container, payload, decod
219
228
  // or transcode through the deferred seam first.
220
229
  if (container.supercompression !== 'None')
221
230
  return false;
222
- const nativeFormat = getGlCompressedTextureFormat(gl, container.format);
231
+ const uploadFormat = colorSpace === undefined ? container.format : getTextureContainerFormatForColorSpace(container.format, colorSpace);
232
+ const nativeFormat = colorSpace === 'srgb' && isAstcFormat(container.format)
233
+ ? getGlAstcSrgbFormat(gl, container.format)
234
+ : getGlCompressedTextureFormat(gl, uploadFormat);
223
235
  const faces = container.faces;
224
236
  const layers = container.layers;
225
237
  const mipLevels = container.mipLevels;
@@ -258,13 +270,27 @@ export function uploadGlCompressedTextureContainer(gl, container, payload, decod
258
270
  const rgba = decode(container.format, entry.width, entry.height, view);
259
271
  if (rgba === null)
260
272
  return false;
261
- gl.texImage2D(gl.TEXTURE_2D, mip, gl.RGBA, entry.width, entry.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, rgba);
273
+ gl.texImage2D(gl.TEXTURE_2D, mip, colorSpace === 'srgb' ? gl.SRGB8_ALPHA8 : gl.RGBA, entry.width, entry.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, rgba);
262
274
  }
263
275
  return true;
264
276
  }
265
277
  function isAstcFormat(format) {
266
278
  return format.startsWith('astc');
267
279
  }
280
+ function getGlAstcSrgbFormat(gl, format) {
281
+ const ext = gl.getExtension('WEBGL_compressed_texture_astc');
282
+ const match = /^astc(\d+)x(\d+)$/.exec(format);
283
+ if (ext === null || match === null)
284
+ return -1;
285
+ const value = ext[`COMPRESSED_SRGB8_ALPHA8_ASTC_${match[1]}x${match[2]}_KHR`];
286
+ return typeof value === 'number' ? value : -1;
287
+ }
288
+ function getTextureContainerFormatForColorSpace(format, colorSpace = 'linear') {
289
+ const pair = SRGB_FORMAT_PAIRS[format];
290
+ if (pair === undefined)
291
+ return format;
292
+ return colorSpace === 'srgb' ? pair[1] : pair[0];
293
+ }
268
294
  function isSupportedGlCompressedTextureContainerShape(container) {
269
295
  if (container.depth !== 1 || !Number.isInteger(container.layers) || container.layers < 1)
270
296
  return false;
@@ -272,19 +298,33 @@ function isSupportedGlCompressedTextureContainerShape(container) {
272
298
  return true;
273
299
  return container.faces === 6 && container.layers === 1;
274
300
  }
275
- // The installed GlCompressedTextureUploader: bridges a compressed ImageResource to the container upload,
276
- // threading through any registered RGBA decode fallback. Returns false when the resource carries no
277
- // compressed payload so the display path leaves the texture as-is rather than uploading garbage.
278
- function uploadGlCompressedImageResource(gl, image, decode) {
301
+ // The installed GlCompressedTextureUploader bridges a CompressedImage to the container upload while
302
+ // threading through any registered RGBA decode fallback.
303
+ function uploadGlCompressedImage(gl, image, decode, colorSpace = 'linear') {
279
304
  const compressed = image.compressed;
280
- if (compressed === null)
281
- return false;
282
305
  const container = compressed.container;
283
- // bindGlImageResourceTexture installs this bridge while TEXTURE_2D is bound. Cube, array, and volume
306
+ // bindGlCompressedImageTexture calls this bridge while TEXTURE_2D is bound. Cube, array, and volume
284
307
  // resources require their own entity/binder families; forwarding one here would address an unbound
285
308
  // target even though the low-level container uploader supports caller-bound cube and 2D-array targets.
286
309
  if (container.depth !== 1 || container.faces !== 1 || container.layers !== 1)
287
310
  return false;
288
- return uploadGlCompressedTextureContainer(gl, container, compressed.payload, decode ?? undefined);
311
+ return uploadGlCompressedTextureContainer(gl, container, compressed.payload, decode ?? undefined, colorSpace);
289
312
  }
313
+ const SRGB_FORMAT_PAIRS = {
314
+ bc1: ['bc1', 'bc1Srgb'],
315
+ bc1Srgb: ['bc1', 'bc1Srgb'],
316
+ bc2: ['bc2', 'bc2Srgb'],
317
+ bc2Srgb: ['bc2', 'bc2Srgb'],
318
+ bc3: ['bc3', 'bc3Srgb'],
319
+ bc3Srgb: ['bc3', 'bc3Srgb'],
320
+ bc7: ['bc7', 'bc7Srgb'],
321
+ bc7Srgb: ['bc7', 'bc7Srgb'],
322
+ etc1: ['etc1', 'etc2RgbSrgb'],
323
+ etc2Rgb: ['etc2Rgb', 'etc2RgbSrgb'],
324
+ etc2RgbSrgb: ['etc2Rgb', 'etc2RgbSrgb'],
325
+ etc2RgbA1: ['etc2RgbA1', 'etc2RgbA1Srgb'],
326
+ etc2RgbA1Srgb: ['etc2RgbA1', 'etc2RgbA1Srgb'],
327
+ etc2Rgba: ['etc2Rgba', 'etc2RgbaSrgb'],
328
+ etc2RgbaSrgb: ['etc2Rgba', 'etc2RgbaSrgb'],
329
+ };
290
330
  //# sourceMappingURL=glCompressedTexture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glCompressedTexture.js","sourceRoot":"","sources":["../src/glCompressedTexture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glCompressedTexture.js","sourceRoot":"","sources":["../src/glCompressedTexture.ts"],"names":[],"mappings":"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"}
package/dist/glDraw.d.ts CHANGED
@@ -1,8 +1,10 @@
1
- import type { GlBitmapShader, GlBlendRealization, GlRenderState, GlRenderStateRuntime, ImageResource, SamplerLike, TextureLike } from '@flighthq/types/contract';
1
+ import type { Bitmap, CompressedImage, GlBitmapShader, GlBlendRealization, GlRenderState, GlRenderStateRuntime, TextureColorSpace, Image, SamplerLike, TextureLike } from '@flighthq/types/contract';
2
2
  import { BlendMode } from '@flighthq/types/contract';
3
3
  export declare function applyGlBlendMode(state: GlRenderState, blendMode: BlendMode | null): void;
4
4
  export declare function applyGlSamplerState(state: GlRenderState, runtime: GlRenderStateRuntime, texture: WebGLTexture, sampler: Readonly<SamplerLike> | null, smoothingOverride?: boolean | null): void;
5
- export declare function bindGlImageResourceTexture(state: GlRenderState, image: Readonly<ImageResource>, sampler?: Readonly<SamplerLike> | null, smoothingOverride?: boolean | null, premultiply?: boolean): WebGLTexture;
5
+ export declare function bindGlBitmapTexture(state: GlRenderState, bitmap: Readonly<Bitmap>, sampler?: Readonly<SamplerLike> | null, smoothingOverride?: boolean | null, premultiply?: boolean, colorSpace?: TextureColorSpace): WebGLTexture;
6
+ export declare function bindGlCompressedImageTexture(state: GlRenderState, image: Readonly<CompressedImage>, sampler?: Readonly<SamplerLike> | null, smoothingOverride?: boolean | null, colorSpace?: TextureColorSpace): WebGLTexture;
7
+ export declare function bindGlImageResourceTexture(state: GlRenderState, image: Readonly<Image>, sampler?: Readonly<SamplerLike> | null, smoothingOverride?: boolean | null, premultiply?: boolean, colorSpace?: TextureColorSpace): WebGLTexture;
6
8
  export declare function bindGlTexture(state: GlRenderState, imageSource: CanvasImageSource, sampler?: Readonly<SamplerLike> | null): WebGLTexture;
7
9
  export declare function bindGlVideoTexture(state: GlRenderState, texture: Readonly<TextureLike>, sampler?: Readonly<SamplerLike> | null): WebGLTexture;
8
10
  export declare function createGlTexture(state: GlRenderState): WebGLTexture;
@@ -1 +1 @@
1
- {"version":3,"file":"glDraw.d.ts","sourceRoot":"","sources":["../src/glDraw.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,WAAW,EACX,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAYrD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CAQxF;AAUD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACrC,iBAAiB,GAAE,OAAO,GAAG,IAAW,GACvC,IAAI,CA8BN;AAqBD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACtC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,EAClC,WAAW,UAAQ,GAClB,YAAY,CAoBd;AAWD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GACrC,YAAY,CAiCd;AAUD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GACrC,YAAY,CAkBd;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAalE;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CA0BN;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGnE;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAExF;AAKD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEtE;AAKD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAGrH;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAcN;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAgB5G;AA6CD,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAShF"}
1
+ {"version":3,"file":"glDraw.d.ts","sourceRoot":"","sources":["../src/glDraw.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EAEpB,iBAAiB,EACjB,KAAK,EACL,WAAW,EACX,WAAW,EAGZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,SAAS,EAAsB,MAAM,0BAA0B,CAAC;AAYzE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,CASxF;AAUD,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACrC,iBAAiB,GAAE,OAAO,GAAG,IAAW,GACvC,IAAI,CA8BN;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,EACxB,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACtC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,EAClC,WAAW,UAAQ,EACnB,UAAU,GAAE,iBAA4B,GACvC,YAAY,CAWd;AAED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,QAAQ,CAAC,eAAe,CAAC,EAChC,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACtC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,EAClC,UAAU,GAAE,iBAA4B,GACvC,YAAY,CAWd;AAoBD,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,EACtB,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,EACtC,iBAAiB,CAAC,EAAE,OAAO,GAAG,IAAI,EAClC,WAAW,UAAQ,EACnB,UAAU,GAAE,iBAA4B,GACvC,YAAY,CAWd;AA8CD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,iBAAiB,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GACrC,YAAY,CAiCd;AAUD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,QAAQ,CAAC,WAAW,CAAC,EAC9B,OAAO,CAAC,EAAE,QAAQ,CAAC,WAAW,CAAC,GAAG,IAAI,GACrC,YAAY,CA0Bd;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CAalE;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,aAAa,EACpB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CA0BN;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAGnE;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAKxF;AAKD,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAEtE;AAKD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAOrH;AAED,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,GACT,IAAI,CAcN;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAgB5G;AAgGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,IAAI,CAgBhF"}