@flighthq/displayobject-gl 0.1.0 → 0.2.1-next.410.a23f189

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 (80) hide show
  1. package/dist/enableGlColorAdjustmentGuards.d.ts +4 -0
  2. package/dist/enableGlColorAdjustmentGuards.d.ts.map +1 -0
  3. package/dist/enableGlColorAdjustmentGuards.js +21 -0
  4. package/dist/enableGlColorAdjustmentGuards.js.map +1 -0
  5. package/dist/glBitmap.d.ts.map +1 -1
  6. package/dist/glBitmap.js +17 -32
  7. package/dist/glBitmap.js.map +1 -1
  8. package/dist/glCache.d.ts.map +1 -1
  9. package/dist/glCache.js +11 -4
  10. package/dist/glCache.js.map +1 -1
  11. package/dist/glColorAdjustment.d.ts +3 -0
  12. package/dist/glColorAdjustment.d.ts.map +1 -0
  13. package/dist/glColorAdjustment.js +353 -0
  14. package/dist/glColorAdjustment.js.map +1 -0
  15. package/dist/glParticleEmitter.d.ts.map +1 -1
  16. package/dist/glParticleEmitter.js +4 -3
  17. package/dist/glParticleEmitter.js.map +1 -1
  18. package/dist/glQuadBatch.d.ts.map +1 -1
  19. package/dist/glQuadBatch.js +11 -7
  20. package/dist/glQuadBatch.js.map +1 -1
  21. package/dist/glRichText.js +3 -2
  22. package/dist/glRichText.js.map +1 -1
  23. package/dist/glShape.d.ts.map +1 -1
  24. package/dist/glShape.js +15 -11
  25. package/dist/glShape.js.map +1 -1
  26. package/dist/glShapeMesh.d.ts +10 -6
  27. package/dist/glShapeMesh.d.ts.map +1 -1
  28. package/dist/glShapeMesh.js +48 -29
  29. package/dist/glShapeMesh.js.map +1 -1
  30. package/dist/glSpriteBatch.d.ts +3 -3
  31. package/dist/glSpriteBatch.d.ts.map +1 -1
  32. package/dist/glSpriteBatch.js +43 -20
  33. package/dist/glSpriteBatch.js.map +1 -1
  34. package/dist/glSpriteRenderer.d.ts.map +1 -1
  35. package/dist/glSpriteRenderer.js +5 -3
  36. package/dist/glSpriteRenderer.js.map +1 -1
  37. package/dist/glTextInput.js +1 -1
  38. package/dist/glTextInput.js.map +1 -1
  39. package/dist/glTextLabel.d.ts.map +1 -1
  40. package/dist/glTextLabel.js +23 -12
  41. package/dist/glTextLabel.js.map +1 -1
  42. package/dist/glTilemap.d.ts.map +1 -1
  43. package/dist/glTilemap.js +11 -6
  44. package/dist/glTilemap.js.map +1 -1
  45. package/dist/glVelocity.js +5 -5
  46. package/dist/glVelocity.js.map +1 -1
  47. package/dist/glVideo.d.ts.map +1 -1
  48. package/dist/glVideo.js +34 -32
  49. package/dist/glVideo.js.map +1 -1
  50. package/dist/index.d.ts +2 -3
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +2 -3
  53. package/dist/index.js.map +1 -1
  54. package/package.json +24 -15
  55. package/src/enableGlColorAdjustmentGuards.test.ts +76 -0
  56. package/src/glBitmap.test.ts +11 -3
  57. package/src/glCache.test.ts +6 -2
  58. package/src/glColorAdjustment.test.ts +166 -0
  59. package/src/glRichText.test.ts +7 -2
  60. package/src/glShape.test.ts +2 -1
  61. package/src/glShapeMesh.test.ts +103 -3
  62. package/src/glSpriteBatch.test.ts +61 -3
  63. package/src/glTextLabel.test.ts +17 -12
  64. package/src/glVelocity.test.ts +2 -1
  65. package/src/glVideo.test.ts +47 -14
  66. package/dist/glColorTransformMaterial.d.ts +0 -4
  67. package/dist/glColorTransformMaterial.d.ts.map +0 -1
  68. package/dist/glColorTransformMaterial.js +0 -116
  69. package/dist/glColorTransformMaterial.js.map +0 -1
  70. package/dist/glMaterials.d.ts +0 -4
  71. package/dist/glMaterials.d.ts.map +0 -1
  72. package/dist/glMaterials.js +0 -97
  73. package/dist/glMaterials.js.map +0 -1
  74. package/dist/glUniformColorTransformMaterial.d.ts +0 -4
  75. package/dist/glUniformColorTransformMaterial.d.ts.map +0 -1
  76. package/dist/glUniformColorTransformMaterial.js +0 -56
  77. package/dist/glUniformColorTransformMaterial.js.map +0 -1
  78. package/src/glColorTransformMaterial.test.ts +0 -45
  79. package/src/glMaterials.test.ts +0 -91
  80. package/src/glUniformColorTransformMaterial.test.ts +0 -24
@@ -0,0 +1,4 @@
1
+ import type { GlRenderState } from '@flighthq/types';
2
+ export declare function areGlColorAdjustmentGuardsEnabled(state: GlRenderState): boolean;
3
+ export declare function enableGlColorAdjustmentGuards(state: GlRenderState): void;
4
+ //# sourceMappingURL=enableGlColorAdjustmentGuards.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableGlColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableGlColorAdjustmentGuards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE/E;AAOD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAExE"}
@@ -0,0 +1,21 @@
1
+ import { logOnce } from '@flighthq/log';
2
+ import { getGlRenderStateRuntime } from '@flighthq/render-gl';
3
+ import { LogLevel } from '@flighthq/types';
4
+ // Returns whether color-adjustment guards are installed on `state` (enableGlColorAdjustmentGuards).
5
+ export function areGlColorAdjustmentGuardsEnabled(state) {
6
+ return getGlRenderStateRuntime(state).glColorAdjustmentGuard != null;
7
+ }
8
+ // Installs the shakeable color-adjustment guard on `state`: when a node carries a color transform but
9
+ // enableGlColorAdjustment was never called, recordGlSpriteBatchColorTransform reaches this guard
10
+ // through its nullable runtime slot and warns once (the tint is skipped, drawn untinted — the sentinel
11
+ // behavior, never a throw). Not calling this — the production default — costs the batch nothing, since
12
+ // the message and @flighthq/log dependency live only in this separately-imported module. Idempotent.
13
+ export function enableGlColorAdjustmentGuards(state) {
14
+ getGlRenderStateRuntime(state).glColorAdjustmentGuard = warnGlColorAdjustmentNotEnabled;
15
+ }
16
+ function warnGlColorAdjustmentNotEnabled() {
17
+ logOnce('displayobject-gl:color-adjustment-not-enabled', LogLevel.Warn, {
18
+ message: 'recordGlSpriteBatchColorTransform: color transform present but GL color adjustment not enabled — call enableGlColorAdjustment(state)',
19
+ }, 'displayobject-gl');
20
+ }
21
+ //# sourceMappingURL=enableGlColorAdjustmentGuards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enableGlColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableGlColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,oGAAoG;AACpG,MAAM,UAAU,iCAAiC,CAAC,KAAoB;IACpE,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC,sBAAsB,IAAI,IAAI,CAAC;AACvE,CAAC;AAED,sGAAsG;AACtG,iGAAiG;AACjG,uGAAuG;AACvG,uGAAuG;AACvG,qGAAqG;AACrG,MAAM,UAAU,6BAA6B,CAAC,KAAoB;IAChE,uBAAuB,CAAC,KAAK,CAAC,CAAC,sBAAsB,GAAG,+BAA+B,CAAC;AAC1F,CAAC;AAED,SAAS,+BAA+B;IACtC,OAAO,CACL,+CAA+C,EAC/C,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,sIAAsI;KACzI,EACD,kBAAkB,CACnB,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"glBitmap.d.ts","sourceRoot":"","sources":["../src/glBitmap.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,qBAAqB,EACrB,aAAa,EAGb,aAAa,EACd,MAAM,iBAAiB,CAAC;AA2BzB,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAuFnF;AAED,eAAO,MAAM,uBAAuB,EAAE,qBAKrC,CAAC"}
1
+ {"version":3,"file":"glBitmap.d.ts","sourceRoot":"","sources":["../src/glBitmap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,qBAAqB,EACrB,aAAa,EAIb,aAAa,EACd,MAAM,iBAAiB,CAAC;AAgCzB,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA8DnF;AAED,eAAO,MAAM,uBAAuB,EAAE,qBAKrC,CAAC"}
package/dist/glBitmap.js CHANGED
@@ -1,52 +1,36 @@
1
+ import { hasImageResourcePixels } from '@flighthq/image';
1
2
  import { resolveGlMaterialRenderer } from '@flighthq/render-gl';
2
3
  import { getGlRenderStateRuntime } from '@flighthq/render-gl';
3
4
  import { BatchFormat } from '@flighthq/types';
4
- import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite } from './glSpriteBatch';
5
+ import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite, recordGlSpriteBatchColorTransform, } from './glSpriteBatch';
5
6
  function createGlBitmapData(_state, _source) {
6
- return { lastSrc: null, lastVersion: -1 };
7
+ return { image: null };
7
8
  }
8
9
  // Deletes the cached GPU texture when this bitmap is torn down. Prevents textures from leaking when
9
- // a bitmap is removed from the scene via disposeDisplayObjectRender.
10
+ // a bitmap is removed from the scene via disposeDisplayObjectRender. Content-change re-upload is handled
11
+ // by bindGlTexture's version-aware cache, so this only frees on teardown.
10
12
  function destroyGlBitmapData(state, data) {
11
13
  const runtime = getGlRenderStateRuntime(state);
12
- const { lastSrc } = data;
13
- if (lastSrc === null)
14
+ const { image } = data;
15
+ if (image === null)
14
16
  return;
15
- const texture = runtime.textureCache.get(lastSrc);
16
- if (texture !== undefined) {
17
- state.gl.deleteTexture(texture);
18
- runtime.textureCache.delete(lastSrc);
17
+ const entry = runtime.imageResourceTextureCache.get(image);
18
+ if (entry !== undefined) {
19
+ state.gl.deleteTexture(entry.texture);
20
+ runtime.imageResourceTextureCache.delete(image);
19
21
  }
20
22
  }
21
23
  export function drawGlBitmap(state, renderProxy) {
22
24
  const runtime = getGlRenderStateRuntime(state);
23
25
  const source = renderProxy.source;
24
26
  const imageSource = source.data.image;
25
- if (imageSource === null || imageSource.source === null)
27
+ if (imageSource === null || !hasImageResourcePixels(imageSource))
26
28
  return;
27
29
  if (renderProxy.rendererData === null)
28
30
  return;
29
- const bitmapData = renderProxy.rendererData;
30
- const src = imageSource.source;
31
- const version = imageSource.version;
32
- // Invalidate the cached GPU texture when the image content changes in place (Surface edits) or
33
- // when the element reference is replaced (setBitmapImage). Both cases bump imageSource.version.
34
- if (bitmapData.lastVersion !== version || bitmapData.lastSrc !== src) {
35
- if (bitmapData.lastSrc !== null && bitmapData.lastSrc !== src) {
36
- const oldTexture = runtime.textureCache.get(bitmapData.lastSrc);
37
- if (oldTexture !== undefined) {
38
- state.gl.deleteTexture(oldTexture);
39
- runtime.textureCache.delete(bitmapData.lastSrc);
40
- }
41
- }
42
- const staleTexture = runtime.textureCache.get(src);
43
- if (staleTexture !== undefined) {
44
- state.gl.deleteTexture(staleTexture);
45
- runtime.textureCache.delete(src);
46
- }
47
- bitmapData.lastSrc = src;
48
- bitmapData.lastVersion = version;
49
- }
31
+ // Recorded so teardown can free the resource's cached GPU texture; re-upload on content change is the
32
+ // cache's job (keyed by the resource, version-aware), not this node's.
33
+ renderProxy.rendererData.image = imageSource;
50
34
  const material = renderProxy.material;
51
35
  const materialRenderer = resolveGlMaterialRenderer(state, material);
52
36
  if (materialRenderer === null)
@@ -78,7 +62,7 @@ export function drawGlBitmap(state, renderProxy) {
78
62
  v1 = (sr.y + sr.height) * ih;
79
63
  }
80
64
  const startCount = runtime.spriteBatchCount;
81
- const base = prepareGlSpriteBatchWrite(state, imageSource.source, renderProxy.blendMode, material, materialRenderer, 1);
65
+ const base = prepareGlSpriteBatchWrite(state, imageSource, renderProxy.blendMode, material, materialRenderer, 1);
82
66
  const d = runtime.spriteBatchInstanceData;
83
67
  const t = renderProxy.transform2D;
84
68
  d[base] = t.a;
@@ -95,6 +79,7 @@ export function drawGlBitmap(state, renderProxy) {
95
79
  d[base + 11] = v1;
96
80
  d[base + 12] = renderProxy.alpha;
97
81
  packGlSpriteBatchMaterialInstance(state, renderProxy.materialData, startCount);
82
+ recordGlSpriteBatchColorTransform(state, renderProxy.colorTransform, startCount);
98
83
  runtime.spriteBatchCount++;
99
84
  }
100
85
  export const defaultGlBitmapRenderer = {
@@ -1 +1 @@
1
- {"version":3,"file":"glBitmap.js","sourceRoot":"","sources":["../src/glBitmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glBitmap.js","sourceRoot":"","sources":["../src/glBitmap.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"glCache.d.ts","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEd,WAAW,EACX,yBAAyB,EAE1B,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,aAAa,GAAG,aAAa,CA4D5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,cAAc,CAUhB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAEtG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAwCT;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAOnF;AA0BD,eAAO,MAAM,4BAA4B,EAAE,qBAG1C,CAAC"}
1
+ {"version":3,"file":"glCache.d.ts","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,cAAc,EAEd,WAAW,EACX,yBAAyB,EAE1B,MAAM,iBAAiB,CAAC;AAMzB;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,aAAa,GAAG,aAAa,CA+D5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,cAAc,CAUhB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAEtG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,aAAa,EACrB,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CA4CT;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAOnF;AA0BD,eAAO,MAAM,4BAA4B,EAAE,qBAG1C,CAAC"}
package/dist/glCache.js CHANGED
@@ -2,7 +2,7 @@ import { createMatrix, createRectangle } from '@flighthq/geometry';
2
2
  import { computeNodeBoundsRectangle } from '@flighthq/node';
3
3
  import { computeDisplayObjectRenderTargetTransform, computeRenderCacheTransform, computeRenderTargetSize, copyAllRenderersFromRenderState, createRenderState, getRenderProxyCache, noopRendererData, prepareDisplayObjectRender, registerRenderCacheRenderer, } from '@flighthq/render';
4
4
  import { createGlRenderStateRuntime, getGlRenderStateRuntime } from '@flighthq/render-gl';
5
- import { beginGlRenderTarget, createGlRenderTarget, destroyGlRenderTarget, drawGlRenderTargetResult, endGlRenderTarget, resizeGlRenderTarget, } from '@flighthq/render-gl';
5
+ import { beginGlRenderPass, createGlRenderTarget, destroyGlRenderTarget, drawGlRenderTargetResult, endGlRenderPass, resizeGlRenderTarget, setGlRenderTransform2D, } from '@flighthq/render-gl';
6
6
  import { EntityRuntimeKey } from '@flighthq/types';
7
7
  import { renderGlDisplayObject } from './glDisplayObject';
8
8
  import { flushGlSpriteBatch } from './glSpriteBatch';
@@ -33,7 +33,6 @@ export function createGlCacheState(screenState) {
33
33
  cacheState.canvas = screenState.canvas;
34
34
  cacheState.gl = screenState.gl;
35
35
  cacheRuntime.defaultBitmapShader = screenRuntime.defaultBitmapShader;
36
- cacheRuntime.colorTransformBitmapShader = screenRuntime.colorTransformBitmapShader;
37
36
  cacheRuntime.particleShader = screenRuntime.particleShader;
38
37
  cacheRuntime.particleCornerBuffer = screenRuntime.particleCornerBuffer;
39
38
  cacheRuntime.particleInstanceBuffer = screenRuntime.particleInstanceBuffer;
@@ -42,6 +41,10 @@ export function createGlCacheState(screenState) {
42
41
  cacheRuntime.quadBatchCornerBuffer = screenRuntime.quadBatchCornerBuffer;
43
42
  cacheRuntime.colorTransformInstancedShader = screenRuntime.colorTransformInstancedShader;
44
43
  cacheRuntime.uniformColorTransformShader = screenRuntime.uniformColorTransformShader;
44
+ // Propagate the opt-in color-adjustment fold + guard so tinted nodes inside a cached subtree fold
45
+ // the same way when baked offscreen. Their per-batch CT data lives on cacheRuntime, lazily grown.
46
+ cacheRuntime.glColorAdjustmentFold = screenRuntime.glColorAdjustmentFold;
47
+ cacheRuntime.glColorAdjustmentGuard = screenRuntime.glColorAdjustmentGuard;
45
48
  cacheRuntime.materialRendererMap = screenRuntime.materialRendererMap;
46
49
  cacheRuntime.materialBitmapShaderMap = screenRuntime.materialBitmapShaderMap;
47
50
  cacheRuntime.shaderLoc = screenRuntime.shaderLoc;
@@ -113,7 +116,11 @@ export function refreshGlRenderCache(cacheState, cache, source, options) {
113
116
  const target = ensureGlRenderCacheTarget(screenState, cache, width, height);
114
117
  computeDisplayObjectRenderTargetTransform(_renderTransform, source, _bounds, padding, padding);
115
118
  computeRenderCacheTransform(cache.transform, _bounds, padding, padding);
116
- beginGlRenderTarget(cacheState, target, _renderTransform);
119
+ // Preserve on begin — the bake below clears and redraws only when dirty; clearing here would wipe the
120
+ // retained cache content on the not-dirty path. The cache's local-space transform is set explicitly,
121
+ // since a pass no longer carries one.
122
+ beginGlRenderPass(cacheState, target, { preserveColor: true, preserveDepth: true });
123
+ setGlRenderTransform2D(cacheState, _renderTransform);
117
124
  const dirty = prepareDisplayObjectRender(cacheState, source);
118
125
  if (dirty || resized) {
119
126
  const cacheRuntime = getGlRenderStateRuntime(cacheState);
@@ -129,7 +136,7 @@ export function refreshGlRenderCache(cacheState, cache, source, options) {
129
136
  cacheState.gl.clear(cacheState.gl.COLOR_BUFFER_BIT);
130
137
  renderGlDisplayObject(cacheState, source);
131
138
  }
132
- endGlRenderTarget(cacheState);
139
+ endGlRenderPass(cacheState);
133
140
  const screenRuntime = getGlRenderStateRuntime(screenState);
134
141
  screenRuntime.currentBlendMode = null;
135
142
  screenRuntime.currentProgram = null;
@@ -1 +1 @@
1
- {"version":3,"file":"glCache.js","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glCache.js","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { GlRenderState } from '@flighthq/types';
2
+ export declare function enableGlColorAdjustment(state: GlRenderState): void;
3
+ //# sourceMappingURL=glColorAdjustment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glColorAdjustment.d.ts","sourceRoot":"","sources":["../src/glColorAdjustment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAIV,aAAa,EAMd,MAAM,iBAAiB,CAAC;AAiBzB,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAOlE"}
@@ -0,0 +1,353 @@
1
+ import { createGlProgram } from '@flighthq/render-gl';
2
+ import { getGlRenderStateRuntime } from '@flighthq/render-gl';
3
+ import { drawGlShapeMeshBatch, ensureGlShapeMeshProgram } from './glShapeMesh';
4
+ import { bindGlQuadBatchBaseAttributes, QUAD_BATCH_VS, setGlQuadBatchWorldAndTexture, useGlQuadBatchProgram, } from './glSpriteBatch';
5
+ // Enables the opt-in inline color-adjustment fold on a WebGL render state: the fused-color-matrix
6
+ // stage the sprite/quad batch draws through so a color transform (and, later, other pointwise
7
+ // adjustments) folds into the batch as data — a whole-batch uniform tint or per-instance
8
+ // a_ctMult/a_ctOff attributes, chosen by data cardinality — without ever splitting the batch. Until a
9
+ // state calls this, its batch renderer carries none of this module's shader code (it tree-shakes out)
10
+ // and recordGlSpriteBatchColorTransform silently skips every tint. Idempotent; safe to call per state.
11
+ export function enableGlColorAdjustment(state) {
12
+ const runtime = getGlRenderStateRuntime(state);
13
+ runtime.glColorAdjustmentFold = glColorAdjustmentFold;
14
+ if (runtime.spriteBatchColorTransformMode === undefined)
15
+ runtime.spriteBatchColorTransformMode = CT_MODE_NONE;
16
+ if (runtime.spriteBatchColorTransformData === undefined) {
17
+ runtime.spriteBatchColorTransformData = new Float32Array(COLOR_TRANSFORM_FLOATS * 256);
18
+ }
19
+ }
20
+ // Per-instance color-transform layout (8 floats = 32 bytes): 4 multiplier + 4 offset, at attribute
21
+ // locations 7 (a_ctMult) and 8 (a_ctOff). Used only when a batch carries varying tints (mode 2).
22
+ const COLOR_TRANSFORM_FLOATS = 8;
23
+ const COLOR_TRANSFORM_STRIDE = COLOR_TRANSFORM_FLOATS * 4;
24
+ // Color-adjustment fold modes for the active sprite batch. NONE keeps the lean base shader; UNIFORM
25
+ // binds one whole-batch tint; PER_INSTANCE packs a tint per instance. A batch starts at NONE, rises to
26
+ // UNIFORM on the first tint, and promotes to PER_INSTANCE — back-filling already-written instances
27
+ // with the prior value/identity — when tints diverge, so a tint only ever promotes a batch, never
28
+ // splits it.
29
+ const CT_MODE_NONE = 0;
30
+ const CT_MODE_UNIFORM = 1;
31
+ const CT_MODE_PER_INSTANCE = 2;
32
+ // Per-instance color-transform program: the base quad-batch vertex work plus two vec4 instance
33
+ // attributes (a_ctMult / a_ctOff) carried through to the fragment stage. The color-transform math is
34
+ // applied in unpremultiplied space, matching the whole-batch uniform program byte for byte.
35
+ const CT_INSTANCED_VS = `#version 300 es
36
+ precision mediump float;
37
+
38
+ layout(location = 0) in vec2 a_corner;
39
+ layout(location = 1) in vec2 a_matAB;
40
+ layout(location = 2) in vec2 a_matCD;
41
+ layout(location = 3) in vec2 a_matTXTY;
42
+ layout(location = 4) in vec2 a_size;
43
+ layout(location = 5) in vec4 a_uvRect;
44
+ layout(location = 6) in float a_alpha;
45
+ layout(location = 7) in vec4 a_ctMult;
46
+ layout(location = 8) in vec4 a_ctOff;
47
+
48
+ uniform mat3 u_world;
49
+
50
+ out vec2 v_texCoord;
51
+ out float v_alpha;
52
+ out vec4 v_ctMult;
53
+ out vec4 v_ctOff;
54
+
55
+ void main() {
56
+ vec2 local = a_corner * a_size;
57
+ vec2 worldPos = vec2(
58
+ a_matAB.x * local.x + a_matCD.x * local.y + a_matTXTY.x,
59
+ a_matAB.y * local.x + a_matCD.y * local.y + a_matTXTY.y
60
+ );
61
+ vec3 clip = u_world * vec3(worldPos, 1.0);
62
+ gl_Position = vec4(clip.xy, 0.0, 1.0);
63
+ v_texCoord = mix(a_uvRect.xy, a_uvRect.zw, a_corner);
64
+ v_alpha = a_alpha;
65
+ v_ctMult = a_ctMult;
66
+ v_ctOff = a_ctOff;
67
+ }`;
68
+ const CT_INSTANCED_FS = `#version 300 es
69
+ precision mediump float;
70
+ in vec2 v_texCoord;
71
+ in float v_alpha;
72
+ in vec4 v_ctMult;
73
+ in vec4 v_ctOff;
74
+ uniform sampler2D u_texture;
75
+ out vec4 fragColor;
76
+ void main() {
77
+ vec4 color = texture(u_texture, v_texCoord) * clamp(v_alpha, 0.0, 1.0);
78
+ if (color.a <= 0.0) discard;
79
+ color = vec4(color.rgb / color.a, color.a);
80
+ color = clamp(color * v_ctMult + v_ctOff, vec4(0.0), vec4(1.0));
81
+ fragColor = vec4(color.rgb * color.a, color.a);
82
+ }`;
83
+ // Whole-batch color-transform fragment shader (over the base vertex shader): one tint uploaded as
84
+ // u_ctMult/u_ctOff uniforms and shared by every instance. This is the uniform path — a single tint on
85
+ // a whole batch (e.g. a bitmap-text node) costs no per-instance data.
86
+ const UNIFORM_CT_FS = `#version 300 es
87
+ precision mediump float;
88
+ in vec2 v_texCoord;
89
+ in float v_alpha;
90
+ uniform sampler2D u_texture;
91
+ uniform vec4 u_ctMult;
92
+ uniform vec4 u_ctOff;
93
+ out vec4 fragColor;
94
+ void main() {
95
+ vec4 color = texture(u_texture, v_texCoord) * clamp(v_alpha, 0.0, 1.0);
96
+ if (color.a <= 0.0) discard;
97
+ color = vec4(color.rgb / color.a, color.a);
98
+ color = clamp(color * u_ctMult + u_ctOff, vec4(0.0), vec4(1.0));
99
+ fragColor = vec4(color.rgb * color.a, color.a);
100
+ }`;
101
+ // Binds the whole-batch (uniform) color-transform program and uploads the shared tint. Base
102
+ // attributes come from the standard instance buffer; there is no per-instance tint data.
103
+ function bindGlSpriteBatchUniformColorTransform(state, colorTransform) {
104
+ const shader = ensureGlUniformColorTransformShader(state);
105
+ useGlQuadBatchProgram(state, shader.program);
106
+ setGlQuadBatchWorldAndTexture(state, shader.locWorldMatrix, shader.locTexture);
107
+ const gl = state.gl;
108
+ gl.uniform4f(shader.locColorMultiplier, colorTransform.redMultiplier, colorTransform.greenMultiplier, colorTransform.blueMultiplier, colorTransform.alphaMultiplier);
109
+ gl.uniform4f(shader.locColorOffset, colorTransform.redOffset / 255, colorTransform.greenOffset / 255, colorTransform.blueOffset / 255, colorTransform.alphaOffset / 255);
110
+ bindGlQuadBatchBaseAttributes(state, shader.locCorner);
111
+ }
112
+ // Binds the per-instance color-transform program and the a_ctMult/a_ctOff attribute stream from the
113
+ // batch's color-transform buffer, alongside the base instance attributes.
114
+ function bindGlSpriteBatchInstancedColorTransform(state) {
115
+ const runtime = getGlRenderStateRuntime(state);
116
+ const shader = ensureGlColorTransformInstancedShader(state);
117
+ useGlQuadBatchProgram(state, shader.program);
118
+ setGlQuadBatchWorldAndTexture(state, shader.locWorldMatrix, shader.locTexture);
119
+ bindGlQuadBatchBaseAttributes(state, shader.locCorner);
120
+ const gl = state.gl;
121
+ gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchColorTransformBuffer);
122
+ gl.enableVertexAttribArray(7);
123
+ gl.vertexAttribPointer(7, 4, gl.FLOAT, false, COLOR_TRANSFORM_STRIDE, 0);
124
+ gl.vertexAttribDivisor(7, 1);
125
+ gl.enableVertexAttribArray(8);
126
+ gl.vertexAttribPointer(8, 4, gl.FLOAT, false, COLOR_TRANSFORM_STRIDE, 16);
127
+ gl.vertexAttribDivisor(8, 1);
128
+ }
129
+ function ensureGlColorTransformInstancedShader(state) {
130
+ const runtime = getGlRenderStateRuntime(state);
131
+ if (runtime.colorTransformInstancedShader)
132
+ return runtime.colorTransformInstancedShader;
133
+ const gl = state.gl;
134
+ const program = createGlProgram(gl, CT_INSTANCED_VS, CT_INSTANCED_FS, 'Sprite-batch color transform (per-instance)');
135
+ runtime.colorTransformInstancedShader = {
136
+ program,
137
+ locCorner: 0,
138
+ locWorldMatrix: gl.getUniformLocation(program, 'u_world'),
139
+ locTexture: gl.getUniformLocation(program, 'u_texture'),
140
+ };
141
+ return runtime.colorTransformInstancedShader;
142
+ }
143
+ function ensureGlUniformColorTransformShader(state) {
144
+ const runtime = getGlRenderStateRuntime(state);
145
+ if (runtime.uniformColorTransformShader)
146
+ return runtime.uniformColorTransformShader;
147
+ const gl = state.gl;
148
+ const program = createGlProgram(gl, QUAD_BATCH_VS, UNIFORM_CT_FS, 'Sprite-batch color transform (uniform)');
149
+ runtime.uniformColorTransformShader = {
150
+ program,
151
+ locCorner: 0,
152
+ locWorldMatrix: gl.getUniformLocation(program, 'u_world'),
153
+ locTexture: gl.getUniformLocation(program, 'u_texture'),
154
+ locColorMultiplier: gl.getUniformLocation(program, 'u_ctMult'),
155
+ locColorOffset: gl.getUniformLocation(program, 'u_ctOff'),
156
+ };
157
+ return runtime.uniformColorTransformShader;
158
+ }
159
+ // Value equality for the whole-batch uniform check: reference-equal short-circuits (the common case —
160
+ // every glyph of a bitmap-text node shares one node-level tint), else compares all eight fields so a
161
+ // distinct-but-equal tint still keeps the batch on the cheaper uniform path.
162
+ function equalsRecordedColorTransform(a, b) {
163
+ if (a === b)
164
+ return true;
165
+ if (a === null || b === null)
166
+ return false;
167
+ return (a.redMultiplier === b.redMultiplier &&
168
+ a.greenMultiplier === b.greenMultiplier &&
169
+ a.blueMultiplier === b.blueMultiplier &&
170
+ a.alphaMultiplier === b.alphaMultiplier &&
171
+ a.redOffset === b.redOffset &&
172
+ a.greenOffset === b.greenOffset &&
173
+ a.blueOffset === b.blueOffset &&
174
+ a.alphaOffset === b.alphaOffset);
175
+ }
176
+ // Uploads the active batch's per-instance color-transform buffer, selects the fold program (uniform or
177
+ // per-instance), and binds it. Returns true when it drew a folded batch; false when the batch carried
178
+ // no tint, so flushGlSpriteBatch runs the lean material path instead. Resets the fold mode for the
179
+ // next batch.
180
+ function flushGlColorAdjustmentFold(state, count) {
181
+ const runtime = getGlRenderStateRuntime(state);
182
+ const ctMode = runtime.spriteBatchColorTransformMode ?? CT_MODE_NONE;
183
+ if (ctMode === CT_MODE_NONE)
184
+ return false;
185
+ const uniformColorTransform = runtime.spriteBatchUniformColorTransform ?? null;
186
+ runtime.spriteBatchColorTransformMode = CT_MODE_NONE;
187
+ runtime.spriteBatchUniformColorTransform = null;
188
+ if (ctMode === CT_MODE_PER_INSTANCE) {
189
+ const gl = state.gl;
190
+ if (runtime.spriteBatchColorTransformBuffer == null) {
191
+ runtime.spriteBatchColorTransformBuffer = gl.createBuffer();
192
+ }
193
+ gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchColorTransformBuffer);
194
+ // Reallocate to exactly what is drawn: the color-transform data array grows lazily as tints are
195
+ // recorded, so a fixed subData offset could outrun a stale buffer. Only per-instance-tinted
196
+ // batches pay this, and the untinted common path never allocates the buffer at all.
197
+ gl.bufferData(gl.ARRAY_BUFFER, runtime.spriteBatchColorTransformData.subarray(0, count * COLOR_TRANSFORM_FLOATS), gl.DYNAMIC_DRAW);
198
+ bindGlSpriteBatchInstancedColorTransform(state);
199
+ return true;
200
+ }
201
+ bindGlSpriteBatchUniformColorTransform(state, uniformColorTransform);
202
+ return true;
203
+ }
204
+ // Switches the batch to per-instance mode and back-fills every already-recorded instance
205
+ // [0, instanceCount) with `fill` (a prior uniform value, or null → identity), so promotion never
206
+ // changes the appearance of instances written before the divergence.
207
+ function promoteGlSpriteBatchColorTransformToPerInstance(runtime, instanceCount, fill) {
208
+ runtime.spriteBatchColorTransformMode = CT_MODE_PER_INSTANCE;
209
+ for (let i = 0; i < instanceCount; i++)
210
+ writeGlColorTransformInstance(runtime, fill, i);
211
+ }
212
+ // Folds instance `instanceIndex`'s effective color transform into the active batch. See the fold-mode
213
+ // constants for the promotion rules. `colorTransform` is null for an untinted instance.
214
+ function recordGlColorAdjustment(runtime, colorTransform, instanceIndex) {
215
+ if (runtime.spriteBatchColorTransformData === undefined) {
216
+ runtime.spriteBatchColorTransformData = new Float32Array(COLOR_TRANSFORM_FLOATS * 256);
217
+ }
218
+ const mode = runtime.spriteBatchColorTransformMode ?? CT_MODE_NONE;
219
+ const tint = colorTransform ?? null;
220
+ if (mode === CT_MODE_NONE) {
221
+ if (tint === null)
222
+ return;
223
+ if (instanceIndex === 0) {
224
+ runtime.spriteBatchColorTransformMode = CT_MODE_UNIFORM;
225
+ runtime.spriteBatchUniformColorTransform = tint;
226
+ return;
227
+ }
228
+ promoteGlSpriteBatchColorTransformToPerInstance(runtime, instanceIndex, null);
229
+ writeGlColorTransformInstance(runtime, tint, instanceIndex);
230
+ return;
231
+ }
232
+ if (mode === CT_MODE_UNIFORM) {
233
+ const uniform = runtime.spriteBatchUniformColorTransform ?? null;
234
+ if (equalsRecordedColorTransform(tint, uniform))
235
+ return;
236
+ promoteGlSpriteBatchColorTransformToPerInstance(runtime, instanceIndex, uniform);
237
+ writeGlColorTransformInstance(runtime, tint, instanceIndex);
238
+ return;
239
+ }
240
+ writeGlColorTransformInstance(runtime, tint, instanceIndex);
241
+ }
242
+ // Writes one instance's eight color-transform floats (multiplier rgba, then offset rgba normalized by
243
+ // 255) at its slot in the batch's color-transform data, growing the array as needed. A null transform
244
+ // writes the identity (multiply by 1, add 0).
245
+ function writeGlColorTransformInstance(runtime, colorTransform, instanceIndex) {
246
+ const offset = instanceIndex * COLOR_TRANSFORM_FLOATS;
247
+ let data = runtime.spriteBatchColorTransformData;
248
+ if (offset + COLOR_TRANSFORM_FLOATS > data.length) {
249
+ const newSize = Math.max(offset + COLOR_TRANSFORM_FLOATS, data.length * 2);
250
+ const grown = new Float32Array(newSize);
251
+ grown.set(data);
252
+ runtime.spriteBatchColorTransformData = grown;
253
+ data = grown;
254
+ }
255
+ if (colorTransform !== null) {
256
+ data[offset] = colorTransform.redMultiplier;
257
+ data[offset + 1] = colorTransform.greenMultiplier;
258
+ data[offset + 2] = colorTransform.blueMultiplier;
259
+ data[offset + 3] = colorTransform.alphaMultiplier;
260
+ data[offset + 4] = colorTransform.redOffset / 255;
261
+ data[offset + 5] = colorTransform.greenOffset / 255;
262
+ data[offset + 6] = colorTransform.blueOffset / 255;
263
+ data[offset + 7] = colorTransform.alphaOffset / 255;
264
+ }
265
+ else {
266
+ data[offset] = 1;
267
+ data[offset + 1] = 1;
268
+ data[offset + 2] = 1;
269
+ data[offset + 3] = 1;
270
+ data[offset + 4] = 0;
271
+ data[offset + 5] = 0;
272
+ data[offset + 6] = 0;
273
+ data[offset + 7] = 0;
274
+ }
275
+ }
276
+ // Draws the GPU-tessellated solid-fill meshes tinted by the node's color transform. A single mesh is
277
+ // one flat color and a shape shares one whole-node transform, so this is the uniform path (CT_MODE_
278
+ // UNIFORM's mesh analogue): u_ctMult/u_ctOff uploaded once, no per-vertex tint data. Reuses the base
279
+ // mesh draw driver and its shared vertex/index buffers — only the fragment program differs, so the
280
+ // projection and per-mesh premultiplied color stay identical to the untinted path. Falls back to the
281
+ // lean program when the node happens to carry no transform (the caller gates on non-null, but the fold
282
+ // stays correct if reached directly).
283
+ function drawGlShapeMeshesColorTransform(state, renderProxy, meshes) {
284
+ const colorTransform = renderProxy.colorTransform;
285
+ const base = ensureGlShapeMeshProgram(state);
286
+ if (colorTransform === null) {
287
+ drawGlShapeMeshBatch(state, renderProxy, meshes, base);
288
+ return;
289
+ }
290
+ const shader = ensureGlShapeMeshColorTransformShader(state);
291
+ const binding = {
292
+ program: shader.program,
293
+ vertexBuffer: base.vertexBuffer,
294
+ indexBuffer: base.indexBuffer,
295
+ positionLocation: shader.positionLocation,
296
+ matrixLocation: shader.matrixLocation,
297
+ colorLocation: shader.colorLocation,
298
+ };
299
+ drawGlShapeMeshBatch(state, renderProxy, meshes, binding, (bound) => {
300
+ const gl = bound.gl;
301
+ gl.uniform4f(shader.colorMultiplierLocation, colorTransform.redMultiplier, colorTransform.greenMultiplier, colorTransform.blueMultiplier, colorTransform.alphaMultiplier);
302
+ gl.uniform4f(shader.colorOffsetLocation, colorTransform.redOffset / 255, colorTransform.greenOffset / 255, colorTransform.blueOffset / 255, colorTransform.alphaOffset / 255);
303
+ });
304
+ }
305
+ function ensureGlShapeMeshColorTransformShader(state) {
306
+ const runtime = getGlRenderStateRuntime(state);
307
+ if (runtime.shapeMeshColorTransformShader)
308
+ return runtime.shapeMeshColorTransformShader;
309
+ const gl = state.gl;
310
+ const program = createGlProgram(gl, SHAPE_MESH_CT_VS, SHAPE_MESH_CT_FS, 'Shape-mesh color transform');
311
+ runtime.shapeMeshColorTransformShader = {
312
+ program,
313
+ positionLocation: gl.getAttribLocation(program, 'a_position'),
314
+ matrixLocation: gl.getUniformLocation(program, 'u_matrix'),
315
+ colorLocation: gl.getUniformLocation(program, 'u_color'),
316
+ colorMultiplierLocation: gl.getUniformLocation(program, 'u_ctMult'),
317
+ colorOffsetLocation: gl.getUniformLocation(program, 'u_ctOff'),
318
+ };
319
+ return runtime.shapeMeshColorTransformShader;
320
+ }
321
+ // Mirrors the base flat-color mesh vertex shader (glShapeMesh's VERTEX_SOURCE): u_matrix is the shared
322
+ // projection · world transform drawGlShapeMeshBatch uploads, so a tinted mesh lands pixel-aligned with
323
+ // an untinted one.
324
+ const SHAPE_MESH_CT_VS = `
325
+ attribute vec2 a_position;
326
+ uniform mat3 u_matrix;
327
+ void main() {
328
+ vec3 p = u_matrix * vec3(a_position, 1.0);
329
+ gl_Position = vec4(p.xy, 0.0, 1.0);
330
+ }
331
+ `;
332
+ // The tint fragment stage. u_color arrives premultiplied (the driver uploads color·alpha), so the math
333
+ // un-premultiplies, applies the color transform (multiplier then /255-normalized offset), clamps, and
334
+ // re-premultiplies — byte-for-byte with the quad-batch uniform/instanced color-transform shaders.
335
+ const SHAPE_MESH_CT_FS = `
336
+ precision mediump float;
337
+ uniform vec4 u_color;
338
+ uniform vec4 u_ctMult;
339
+ uniform vec4 u_ctOff;
340
+ void main() {
341
+ vec4 color = u_color;
342
+ if (color.a <= 0.0) discard;
343
+ color = vec4(color.rgb / color.a, color.a);
344
+ color = clamp(color * u_ctMult + u_ctOff, vec4(0.0), vec4(1.0));
345
+ gl_FragColor = vec4(color.rgb * color.a, color.a);
346
+ }
347
+ `;
348
+ const glColorAdjustmentFold = {
349
+ drawShapeMeshes: drawGlShapeMeshesColorTransform,
350
+ flush: flushGlColorAdjustmentFold,
351
+ record: recordGlColorAdjustment,
352
+ };
353
+ //# sourceMappingURL=glColorAdjustment.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glColorAdjustment.js","sourceRoot":"","sources":["../src/glColorAdjustment.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"glParticleEmitter.d.ts","sourceRoot":"","sources":["../src/glParticleEmitter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAmB,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAuHrG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA0J5F;AAED,eAAO,MAAM,gCAAgC,EAAE,cAM9C,CAAC"}
1
+ {"version":3,"file":"glParticleEmitter.d.ts","sourceRoot":"","sources":["../src/glParticleEmitter.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAmB,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAuHrG,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CA0J5F;AAED,eAAO,MAAM,gCAAgC,EAAE,cAM9C,CAAC"}