@flighthq/render-gl 0.2.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 (66) hide show
  1. package/dist/glCompressedTexture.d.ts +8 -0
  2. package/dist/glCompressedTexture.d.ts.map +1 -0
  3. package/dist/glCompressedTexture.js +270 -0
  4. package/dist/glCompressedTexture.js.map +1 -0
  5. package/dist/glDraw.d.ts +4 -2
  6. package/dist/glDraw.d.ts.map +1 -1
  7. package/dist/glDraw.js +215 -20
  8. package/dist/glDraw.js.map +1 -1
  9. package/dist/glFullscreenPass.d.ts.map +1 -1
  10. package/dist/glFullscreenPass.js +32 -0
  11. package/dist/glFullscreenPass.js.map +1 -1
  12. package/dist/glLinearToSrgbPass.d.ts +4 -0
  13. package/dist/glLinearToSrgbPass.d.ts.map +1 -0
  14. package/dist/glLinearToSrgbPass.js +42 -0
  15. package/dist/glLinearToSrgbPass.js.map +1 -0
  16. package/dist/glPresentRenderTarget.d.ts +3 -0
  17. package/dist/glPresentRenderTarget.d.ts.map +1 -0
  18. package/dist/glPresentRenderTarget.js +35 -0
  19. package/dist/glPresentRenderTarget.js.map +1 -0
  20. package/dist/glRenderPass.d.ts +5 -0
  21. package/dist/glRenderPass.d.ts.map +1 -0
  22. package/dist/glRenderPass.js +130 -0
  23. package/dist/glRenderPass.js.map +1 -0
  24. package/dist/glRenderState.d.ts +1 -1
  25. package/dist/glRenderState.d.ts.map +1 -1
  26. package/dist/glRenderState.js +1 -0
  27. package/dist/glRenderState.js.map +1 -1
  28. package/dist/glRenderTarget.d.ts +2 -15
  29. package/dist/glRenderTarget.d.ts.map +1 -1
  30. package/dist/glRenderTarget.js +48 -57
  31. package/dist/glRenderTarget.js.map +1 -1
  32. package/dist/glRenderTargetPool.d.ts.map +1 -1
  33. package/dist/glRenderTargetPool.js +4 -0
  34. package/dist/glRenderTargetPool.js.map +1 -1
  35. package/dist/glSkinPaletteTexture.d.ts +5 -0
  36. package/dist/glSkinPaletteTexture.d.ts.map +1 -0
  37. package/dist/glSkinPaletteTexture.js +42 -0
  38. package/dist/glSkinPaletteTexture.js.map +1 -0
  39. package/dist/glTestHelper.d.ts.map +1 -1
  40. package/dist/glTestHelper.js +1 -0
  41. package/dist/glTestHelper.js.map +1 -1
  42. package/dist/glTextureUpload.d.ts +5 -0
  43. package/dist/glTextureUpload.d.ts.map +1 -0
  44. package/dist/glTextureUpload.js +27 -0
  45. package/dist/glTextureUpload.js.map +1 -0
  46. package/dist/glTextureVideoUpload.d.ts +3 -0
  47. package/dist/glTextureVideoUpload.d.ts.map +1 -0
  48. package/dist/glTextureVideoUpload.js +24 -0
  49. package/dist/glTextureVideoUpload.js.map +1 -0
  50. package/dist/index.d.ts +7 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +7 -0
  53. package/dist/index.js.map +1 -1
  54. package/package.json +5 -5
  55. package/src/glCompressedTexture.test.ts +276 -0
  56. package/src/glDraw.test.ts +319 -36
  57. package/src/glFullscreenPass.test.ts +22 -1
  58. package/src/glLinearToSrgbPass.test.ts +75 -0
  59. package/src/glPresentRenderTarget.test.ts +62 -0
  60. package/src/glReadback.test.ts +1 -0
  61. package/src/glRenderPass.test.ts +170 -0
  62. package/src/glRenderTarget.test.ts +63 -98
  63. package/src/glRenderTargetPool.test.ts +14 -0
  64. package/src/glSkinPaletteTexture.test.ts +129 -0
  65. package/src/glTextureUpload.test.ts +49 -0
  66. package/src/glTextureVideoUpload.test.ts +53 -0
@@ -1,39 +1,7 @@
1
- import { acquireMatrix, copyMatrix, createMatrix, multiplyMatrix, releaseMatrix } from '@flighthq/geometry';
1
+ import { acquireMatrix, multiplyMatrix, releaseMatrix } from '@flighthq/geometry';
2
2
  import { drawGlQuad, useGlProgram } from './glDraw';
3
3
  import { getGlRenderStateRuntime } from './glRenderState';
4
4
  import { setGlAttributes, setGlBaseUniforms, setGlMatrixFromTransform } from './glShader';
5
- /**
6
- * Redirects subsequent Gl rendering into `target`'s framebuffer. Saves the current framebuffer
7
- * binding, renderTargetViewport, and renderTransform2D so they can be fully restored by
8
- * `endGlRenderTarget`. Supports nesting.
9
- *
10
- * The caller must set the desired `renderTransform` (via this function) before rendering into the
11
- * target to ensure the render tree's transform2D values are correct.
12
- */
13
- export function beginGlRenderTarget(state, target, renderTransform) {
14
- const runtime = getGlRenderStateRuntime(state);
15
- const gl = state.gl;
16
- let stack = _targetStack.get(state);
17
- if (stack === undefined) {
18
- stack = [];
19
- _targetStack.set(state, stack);
20
- }
21
- stack.push({
22
- framebuffer: runtime.currentFramebuffer,
23
- renderTargetViewport: runtime.renderTargetViewport,
24
- renderTransform2D: state.renderTransform2D,
25
- });
26
- gl.bindFramebuffer(gl.FRAMEBUFFER, target.framebuffer);
27
- gl.viewport(0, 0, target.width, target.height);
28
- runtime.currentFramebuffer = target.framebuffer;
29
- runtime.renderTargetViewport = { width: target.width, height: target.height };
30
- // Force rebind on next draw — the framebuffer switch invalidates GL state assumptions.
31
- runtime.currentTexture = null;
32
- runtime.currentBlendMode = null;
33
- const newTransform = createMatrix();
34
- copyMatrix(newTransform, renderTransform);
35
- state.renderTransform2D = newTransform;
36
- }
37
5
  /**
38
6
  * Allocates a render target realizing `descriptor`'s axes (format, MSAA sampleCount, MRT
39
7
  * colorAttachments, depth). The framebuffer is bound during creation but the previous binding is
@@ -44,7 +12,11 @@ export function createGlRenderTarget(state, descriptor) {
44
12
  const gl = state.gl;
45
13
  const w = Math.max(1, Math.ceil(descriptor.width));
46
14
  const h = Math.max(1, Math.ceil(descriptor.height));
47
- const format = descriptor.format ?? 'rgba8';
15
+ // Substitute a renderable format when a float target is requested on GL that lacks float-render
16
+ // support (see resolveRenderableFormat); target.format carries the effective format so readback and
17
+ // the present/tonemap path treat it consistently, and resize reuses it.
18
+ const format = resolveRenderableFormat(gl, descriptor.format ?? 'rgba8');
19
+ const colorFormats = descriptor.colorFormats?.map((f) => resolveRenderableFormat(gl, f));
48
20
  const attachments = Math.max(1, descriptor.colorAttachments ?? 1);
49
21
  const sampleCount = Math.max(1, descriptor.sampleCount ?? 1);
50
22
  const depth = descriptor.depth ?? 'none';
@@ -53,6 +25,9 @@ export function createGlRenderTarget(state, descriptor) {
53
25
  width: w,
54
26
  height: h,
55
27
  format,
28
+ colorSpace: descriptor.colorSpace ?? 'srgb',
29
+ clearColors: descriptor.clearColors ? [...descriptor.clearColors] : [],
30
+ clearDepth: descriptor.clearDepth ?? 1,
56
31
  sampleCount: maxSamples,
57
32
  framebuffer: gl.createFramebuffer(),
58
33
  resolveFramebuffer: null,
@@ -62,12 +37,24 @@ export function createGlRenderTarget(state, descriptor) {
62
37
  colorRenderbuffers: [],
63
38
  depthStencilRenderbuffer: null,
64
39
  };
65
- allocateGlRenderTargetStorage(state, target, descriptor.colorFormats, attachments, depth);
40
+ allocateGlRenderTargetStorage(state, target, colorFormats, attachments, depth);
66
41
  gl.bindFramebuffer(gl.FRAMEBUFFER, runtime.currentFramebuffer);
67
42
  gl.bindTexture(gl.TEXTURE_2D, null);
68
43
  runtime.currentTexture = null;
69
44
  return target;
70
45
  }
46
+ // Stamps the color space of the render target currently bound via beginGlRenderPass: the producer of
47
+ // the pixels declares what space it writes (drawGlScene declares 'linear'), and the present step reads
48
+ // it back off the target. Returns false when no target is bound — i.e. rendering straight to the canvas,
49
+ // where linear content has no present pass to encode it — so a caller can flag that mismatch. A no-op
50
+ // (returns false) in that case.
51
+ export function declareGlRenderTargetColorSpace(state, colorSpace) {
52
+ const target = getGlRenderStateRuntime(state).currentRenderTarget;
53
+ if (target == null)
54
+ return false;
55
+ target.colorSpace = colorSpace;
56
+ return true;
57
+ }
71
58
  /** Deletes the GL resources owned by `target`. The target object must not be used after this call. */
72
59
  export function destroyGlRenderTarget(state, target) {
73
60
  const gl = state.gl;
@@ -109,31 +96,22 @@ export function drawGlRenderTargetResult(state, renderProxy, target, transform)
109
96
  releaseMatrix(quadTransform);
110
97
  drawGlQuad(state, 0, 0, target.width, target.height, 0, 1, 1, 0);
111
98
  }
112
- /**
113
- * Restores the framebuffer, viewport, renderTargetViewport, and renderTransform2D saved by the
114
- * matching `beginGlRenderTarget` call.
115
- */
116
- export function endGlRenderTarget(state) {
117
- const runtime = getGlRenderStateRuntime(state);
118
- const gl = state.gl;
119
- const saved = _targetStack.get(state)?.pop();
120
- if (saved === undefined)
121
- return;
122
- gl.bindFramebuffer(gl.FRAMEBUFFER, saved.framebuffer);
123
- const viewport = saved.renderTargetViewport ?? state.canvas;
124
- gl.viewport(0, 0, viewport.width, viewport.height);
125
- runtime.currentFramebuffer = saved.framebuffer;
126
- runtime.renderTargetViewport = saved.renderTargetViewport;
127
- state.renderTransform2D = saved.renderTransform2D;
128
- runtime.currentTexture = null;
129
- runtime.currentBlendMode = null;
130
- }
131
99
  /** Reallocates the storage backing `target` to the new pixel dimensions, preserving its axes. */
132
100
  export function resizeGlRenderTarget(state, target, width, height) {
133
101
  const w = Math.max(1, Math.ceil(width));
134
102
  const h = Math.max(1, Math.ceil(height));
135
103
  if (w === target.width && h === target.height)
136
104
  return;
105
+ // Capture the storage shape BEFORE teardown: the depth mode and color-attachment count are derived
106
+ // from the existing attachments, so they must be read before those fields are cleared. Reading them
107
+ // afterward (as the original did) always yields 'none'/1 — silently dropping the depth buffer and
108
+ // extra attachments on every resize, which breaks depth-tested 3D the frame after a canvas resize.
109
+ const depth = target.depthTexture
110
+ ? 'depth-stencil-sampled'
111
+ : target.depthStencilRenderbuffer
112
+ ? 'depth-stencil'
113
+ : 'none';
114
+ const attachments = Math.max(1, target.textures.length);
137
115
  const gl = state.gl;
138
116
  for (const texture of target.textures)
139
117
  gl.deleteTexture(texture);
@@ -143,14 +121,17 @@ export function resizeGlRenderTarget(state, target, width, height) {
143
121
  gl.deleteTexture(target.depthTexture);
144
122
  if (target.depthStencilRenderbuffer)
145
123
  gl.deleteRenderbuffer(target.depthStencilRenderbuffer);
124
+ if (target.resolveFramebuffer && target.resolveFramebuffer !== target.framebuffer) {
125
+ gl.deleteFramebuffer(target.resolveFramebuffer);
126
+ }
146
127
  target.textures = [];
147
128
  target.colorRenderbuffers = [];
148
129
  target.depthTexture = null;
149
130
  target.depthStencilRenderbuffer = null;
131
+ target.resolveFramebuffer = null;
150
132
  target.width = w;
151
133
  target.height = h;
152
- const depth = target.depthStencilRenderbuffer || target.depthTexture ? 'depth-stencil' : 'none';
153
- allocateGlRenderTargetStorage(state, target, undefined, Math.max(1, target.textures.length || 1), depth);
134
+ allocateGlRenderTargetStorage(state, target, undefined, attachments, depth);
154
135
  getGlRenderStateRuntime(state).currentTexture = null;
155
136
  }
156
137
  /**
@@ -270,6 +251,17 @@ function buildSingleDrawBuffer(gl, index, count) {
270
251
  function isFloatRenderTargetFormat(format) {
271
252
  return format === 'rgba16f' || format === 'rgba32f';
272
253
  }
254
+ // A float color format (rgba16f/rgba32f) is only color-renderable when EXT_color_buffer_float is
255
+ // available. On GL2 implementations that lack it — notably headless SwiftShader (the Docker sandbox's
256
+ // software WebGL) — an rgba16f framebuffer is incomplete and every draw/clear into it silently no-ops,
257
+ // so the whole HDR scene renders BLACK. Rather than fail that way, fall back to the renderable rgba8:
258
+ // the scene draws in LDR (banding/clipping possible in the tonemap, but visible) instead of nothing. On
259
+ // hardware with float render targets this is a no-op, so full HDR precision is unaffected there.
260
+ function resolveRenderableFormat(gl, format) {
261
+ if (isFloatRenderTargetFormat(format) && gl.getExtension('EXT_color_buffer_float') === null)
262
+ return 'rgba8';
263
+ return format;
264
+ }
273
265
  function mapGlFormat(gl, format) {
274
266
  switch (format) {
275
267
  case 'rgba16f':
@@ -280,5 +272,4 @@ function mapGlFormat(gl, format) {
280
272
  return { internalFormat: gl.RGBA8, format: gl.RGBA, type: gl.UNSIGNED_BYTE };
281
273
  }
282
274
  }
283
- const _targetStack = new WeakMap();
284
275
  //# sourceMappingURL=glRenderTarget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderTarget.js","sourceRoot":"","sources":["../src/glRenderTarget.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"glRenderTarget.js","sourceRoot":"","sources":["../src/glRenderTarget.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderTargetPool.d.ts","sourceRoot":"","sources":["../src/glRenderTargetPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAcjH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,kBAAkB,EACxB,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAC3C,cAAc,CAoBhB;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAG9F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAE5F"}
1
+ {"version":3,"file":"glRenderTargetPool.d.ts","sourceRoot":"","sources":["../src/glRenderTargetPool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAcjH,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,kBAAkB,EACxB,UAAU,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAC3C,cAAc,CAwBhB;AAED,wBAAgB,wBAAwB,IAAI,kBAAkB,CAE7D;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAG9F;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAE5F"}
@@ -20,6 +20,10 @@ export function acquireGlRenderTarget(state, pool, descriptor) {
20
20
  candidate.format === format &&
21
21
  candidate.sampleCount === sampleCount) {
22
22
  pool.free.splice(i, 1);
23
+ // colorSpace is a logical tag, not a physical allocation axis, so it is not part of the reuse
24
+ // match — re-stamp the reused target with the requested space (default 'srgb') so a scratch
25
+ // recycled from a linear frame does not carry a stale 'linear' into an sRGB one.
26
+ candidate.colorSpace = descriptor.colorSpace ?? 'srgb';
23
27
  clearGlRenderTarget(state, candidate);
24
28
  return candidate;
25
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"glRenderTargetPool.js","sourceRoot":"","sources":["../src/glRenderTargetPool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,+FAA+F;AAC/F,+FAA+F;AAC/F,yFAAyF;AACzF,EAAE;AACF,qGAAqG;AACrG,uGAAuG;AACvG,gGAAgG;AAChG,2EAA2E;AAE3E,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,IAAwB,EACxB,UAA4C;IAE5C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,IACE,SAAS,CAAC,KAAK,KAAK,CAAC;YACrB,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,SAAS,CAAC,MAAM,KAAK,MAAM;YAC3B,SAAS,CAAC,WAAW,KAAK,WAAW,EACrC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAoB,EAAE,IAAwB;IACtF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI;QAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAwB,EAAE,MAAsB;IACpF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"glRenderTargetPool.js","sourceRoot":"","sources":["../src/glRenderTargetPool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE/E,+FAA+F;AAC/F,+FAA+F;AAC/F,yFAAyF;AACzF,EAAE;AACF,qGAAqG;AACrG,uGAAuG;AACvG,gGAAgG;AAChG,2EAA2E;AAE3E,MAAM,UAAU,qBAAqB,CACnC,KAAoB,EACpB,IAAwB,EACxB,UAA4C;IAE5C,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACnD,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC;IAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,IACE,SAAS,CAAC,KAAK,KAAK,CAAC;YACrB,SAAS,CAAC,MAAM,KAAK,CAAC;YACtB,SAAS,CAAC,MAAM,KAAK,MAAM;YAC3B,SAAS,CAAC,WAAW,KAAK,WAAW,EACrC,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACvB,8FAA8F;YAC9F,4FAA4F;YAC5F,iFAAiF;YACjF,SAAS,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,IAAI,MAAM,CAAC;YACvD,mBAAmB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;YACtC,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAoB,EAAE,IAAwB;IACtF,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI;QAAE,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AACvB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAwB,EAAE,MAAsB;IACpF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { GlSkinPaletteTexture } from '@flighthq/types';
2
+ export declare function createGlSkinPaletteTexture(gl: WebGL2RenderingContext): GlSkinPaletteTexture;
3
+ export declare function destroyGlSkinPaletteTexture(gl: WebGL2RenderingContext, palette: Readonly<GlSkinPaletteTexture>): void;
4
+ export declare function uploadGlSkinPaletteTexture(gl: WebGL2RenderingContext, palette: GlSkinPaletteTexture, jointMatrices: Readonly<Float32Array>, jointCount: number): void;
5
+ //# sourceMappingURL=glSkinPaletteTexture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glSkinPaletteTexture.d.ts","sourceRoot":"","sources":["../src/glSkinPaletteTexture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAY5D,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,sBAAsB,GAAG,oBAAoB,CAE3F;AAID,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,sBAAsB,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAErH;AAQD,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,sBAAsB,EAC1B,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,QAAQ,CAAC,YAAY,CAAC,EACrC,UAAU,EAAE,MAAM,GACjB,IAAI,CAiBN"}
@@ -0,0 +1,42 @@
1
+ // The GPU skinning bone-palette data texture: the per-mesh joint-matrix palette in an RGBA32F texture
2
+ // the vertex shader reads with texelFetch (GLSL ES 3.0 core), one mat4 packed as four consecutive
3
+ // RGBA32F texels. The palette is a single row (height 1), so joint j's column c is at texel x = j*4 + c.
4
+ // This replaces the `uniform mat4 u_jointMatrices[MAX_JOINTS]` array: the joint count is bounded by
5
+ // MAX_TEXTURE_SIZE (thousands of joints) rather than the vertex-uniform budget, so there is no
6
+ // per-context capacity cap and no CPU fallback above capacity.
7
+ // Creates the palette texture struct with no storage allocated yet (jointCapacity 0). The first
8
+ // uploadGlSkinPaletteTexture allocates storage sized to the palette. The caller owns the returned
9
+ // struct and frees it with destroyGlSkinPaletteTexture.
10
+ export function createGlSkinPaletteTexture(gl) {
11
+ return { jointCapacity: 0, texture: gl.createTexture() };
12
+ }
13
+ // Frees the palette texture's GL object. The struct must not be used after this call. Deleting an
14
+ // already-deleted GL texture is a silent no-op, so this is safe to call more than once.
15
+ export function destroyGlSkinPaletteTexture(gl, palette) {
16
+ gl.deleteTexture(palette.texture);
17
+ }
18
+ // Uploads a joint-matrix palette into the data texture and binds it. `jointMatrices` is the flat
19
+ // column-major palette (16 floats per joint), `jointCount` how many joints it holds. Grows the texture
20
+ // storage (reallocating, updating `palette.jointCapacity`) only when the palette exceeds the current
21
+ // capacity; otherwise it writes the row in place with texSubImage2D. Leaves the palette texture bound
22
+ // on TEXTURE_2D of the active texture unit (the caller selects the unit and sets the sampler uniform).
23
+ // Reads `jointMatrices`/`jointCount` before any allocation, so it is safe against an aliased struct.
24
+ export function uploadGlSkinPaletteTexture(gl, palette, jointMatrices, jointCount) {
25
+ const width = jointCount * 4;
26
+ gl.bindTexture(gl.TEXTURE_2D, palette.texture);
27
+ // The palette must not be filtered or wrapped: texelFetch reads an exact texel, and NEAREST +
28
+ // CLAMP_TO_EDGE keep a driver from ever sampling a neighbor. Set once storage exists (on first
29
+ // upload and every reallocation), which is exactly when the capacity grows below.
30
+ if (jointCount > palette.jointCapacity) {
31
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA32F, width, 1, 0, gl.RGBA, gl.FLOAT, jointMatrices);
32
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
33
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
34
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
35
+ gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
36
+ palette.jointCapacity = jointCount;
37
+ }
38
+ else {
39
+ gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, width, 1, gl.RGBA, gl.FLOAT, jointMatrices);
40
+ }
41
+ }
42
+ //# sourceMappingURL=glSkinPaletteTexture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glSkinPaletteTexture.js","sourceRoot":"","sources":["../src/glSkinPaletteTexture.ts"],"names":[],"mappings":"AAEA,sGAAsG;AACtG,kGAAkG;AAClG,yGAAyG;AACzG,oGAAoG;AACpG,+FAA+F;AAC/F,+DAA+D;AAE/D,gGAAgG;AAChG,kGAAkG;AAClG,wDAAwD;AACxD,MAAM,UAAU,0BAA0B,CAAC,EAA0B;IACnE,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,aAAa,EAAG,EAAE,CAAC;AAC5D,CAAC;AAED,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,UAAU,2BAA2B,CAAC,EAA0B,EAAE,OAAuC;IAC7G,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,iGAAiG;AACjG,uGAAuG;AACvG,qGAAqG;AACrG,sGAAsG;AACtG,uGAAuG;AACvG,qGAAqG;AACrG,MAAM,UAAU,0BAA0B,CACxC,EAA0B,EAC1B,OAA6B,EAC7B,aAAqC,EACrC,UAAkB;IAElB,MAAM,KAAK,GAAG,UAAU,GAAG,CAAC,CAAC;IAC7B,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAE/C,8FAA8F;IAC9F,+FAA+F;IAC/F,kFAAkF;IAClF,IAAI,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACvC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,aAA6B,CAAC,CAAC;QAC3G,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QACnE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC;QACnE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;QACrE,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;QACrE,OAAO,CAAC,aAAa,GAAG,UAAU,CAAC;IACrC,CAAC;SAAM,CAAC;QACN,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,aAA6B,CAAC,CAAC;IACvG,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"glTestHelper.d.ts","sourceRoot":"","sources":["../src/glTestHelper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAI3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IACrG,KAAK,EAAE,aAAa,CAAC;IACrB,EAAE,EAAE,sBAAsB,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CA+CA;AAKD,wBAAgB,MAAM,IAAI,sBAAsB,CAG/C;AAED,wBAAgB,aAAa,IAAI,iBAAiB,CAYjD"}
1
+ {"version":3,"file":"glTestHelper.d.ts","sourceRoot":"","sources":["../src/glTestHelper.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,iBAAiB,CAAC;AAI3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IACrG,KAAK,EAAE,aAAa,CAAC;IACrB,EAAE,EAAE,sBAAsB,CAAC;IAC3B,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,EAAE,iBAAiB,CAAC;CAC9B,CAgDA;AAKD,wBAAgB,MAAM,IAAI,sBAAsB,CAG/C;AAED,wBAAgB,aAAa,IAAI,iBAAiB,CAYjD"}
@@ -29,6 +29,7 @@ export function createGlState(options) {
29
29
  currentTexture: null,
30
30
  renderTargetViewport: null,
31
31
  textureCache: new WeakMap(),
32
+ imageResourceTextureCache: new WeakMap(),
32
33
  shaderLoc,
33
34
  defaultBitmapShader: { locations: shaderLoc, program: shaderLoc.program, bind: vi.fn() },
34
35
  quadVertexBuffer: {},
@@ -1 +1 @@
1
- {"version":3,"file":"glTestHelper.js","sourceRoot":"","sources":["../src/glTestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,UAAU,aAAa,CAAC,OAAsE;IAMlG,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;IACpB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAC9B,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI;QAC/C,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAClE,CAAkB,CAAC;IAEpB,4CAA4C;IAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACnB,MAAM;QACN,EAAE;QACF,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,iGAAiG;IACjG,yDAAyD;IACzD,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,gBAAgB,EAAE,IAAI;QACtB,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,IAAI;QACpB,oBAAoB,EAAE,IAAI;QAC1B,YAAY,EAAE,IAAI,OAAO,EAAmC;QAC5D,SAAS;QACT,mBAAmB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;QACxF,gBAAgB,EAAE,EAAiB;QACnC,eAAe,EAAE,EAAiB;QAClC,cAAc,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC;QACpC,WAAW,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;QAChC,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,CAAC;QACnB,yBAAyB,EAAE,IAAI;QAC/B,uBAAuB,EAAE,IAAI,YAAY,CAAC,EAAE,GAAG,GAAG,CAAC;QACnD,kBAAkB,EAAE,IAAI;KACe,CAAC,CAAC;IAC3C,KAAK,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAElC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,6EAA6E;AAC7E,uEAAuE;AACvE,mFAAmF;AACnF,MAAM,UAAU,MAAM;IACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAA2B,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,OAAO,EAAE,EAAkB;QAC3B,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAA0B;QACrC,QAAQ,EAAE,EAA0B;QACpC,kBAAkB,EAAE,EAA0B;QAC9C,cAAc,EAAE,EAA0B;QAC1C,oBAAoB,EAAE,EAA0B;QAChD,UAAU,EAAE,EAA0B;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"glTestHelper.js","sourceRoot":"","sources":["../src/glTestHelper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAG7D,MAAM,UAAU,aAAa,CAAC,OAAsE;IAMlG,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC;IACnB,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;IACpB,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;IACpB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,iBAAiB,CAAC;QAC9B,cAAc,EAAE,OAAO,EAAE,cAAc,IAAI,IAAI;QAC/C,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;KAClE,CAAkB,CAAC;IAEpB,4CAA4C;IAC5C,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QACnB,MAAM;QACN,EAAE;QACF,cAAc,EAAE,IAAI;KACrB,CAAC,CAAC;IAEH,iGAAiG;IACjG,yDAAyD;IACzD,MAAM,OAAO,GAAG,0BAA0B,EAAE,CAAC;IAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,gBAAgB,EAAE,IAAI;QACtB,kBAAkB,EAAE,IAAI;QACxB,gBAAgB,EAAE,CAAC;QACnB,cAAc,EAAE,IAAI;QACpB,kBAAkB,EAAE,IAAI;QACxB,cAAc,EAAE,IAAI;QACpB,oBAAoB,EAAE,IAAI;QAC1B,YAAY,EAAE,IAAI,OAAO,EAAmC;QAC5D,yBAAyB,EAAE,IAAI,OAAO,EAAE;QACxC,SAAS;QACT,mBAAmB,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE;QACxF,gBAAgB,EAAE,EAAiB;QACnC,eAAe,EAAE,EAAiB;QAClC,cAAc,EAAE,IAAI,YAAY,CAAC,EAAE,CAAC;QACpC,WAAW,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC;QAChC,YAAY,EAAE,EAAE;QAChB,SAAS,EAAE,EAAE;QACb,oBAAoB,EAAE,IAAI;QAC1B,gBAAgB,EAAE,CAAC;QACnB,yBAAyB,EAAE,IAAI;QAC/B,uBAAuB,EAAE,IAAI,YAAY,CAAC,EAAE,GAAG,GAAG,CAAC;QACnD,kBAAkB,EAAE,IAAI;KACe,CAAC,CAAC;IAC3C,KAAK,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC;IAElC,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED,6EAA6E;AAC7E,uEAAuE;AACvE,mFAAmF;AACnF,MAAM,UAAU,MAAM;IACpB,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,UAAU,CAAC,QAAQ,CAA2B,CAAC;AAC/D,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,OAAO,EAAE,EAAkB;QAC3B,WAAW,EAAE,CAAC;QACd,WAAW,EAAE,CAAC;QACd,SAAS,EAAE,EAA0B;QACrC,QAAQ,EAAE,EAA0B;QACpC,kBAAkB,EAAE,EAA0B;QAC9C,cAAc,EAAE,EAA0B;QAC1C,oBAAoB,EAAE,EAA0B;QAChD,UAAU,EAAE,EAA0B;KACvC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { ImageResource } from '@flighthq/types';
2
+ export declare function uploadGlTextureData(gl: WebGL2RenderingContext, target: number, width: number, height: number, data: Readonly<Uint8ClampedArray<ArrayBuffer>>): void;
3
+ export declare function uploadGlTextureElement(gl: WebGL2RenderingContext, target: number, source: TexImageSource): void;
4
+ export declare function uploadGlTextureImageResource(gl: WebGL2RenderingContext, target: number, image: Readonly<ImageResource>): void;
5
+ //# sourceMappingURL=glTextureUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glTextureUpload.d.ts","sourceRoot":"","sources":["../src/glTextureUpload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAWrD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,sBAAsB,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,QAAQ,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC,GAC7C,IAAI,CAYN;AAID,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,sBAAsB,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,GAAG,IAAI,CAE/G;AAMD,wBAAgB,4BAA4B,CAC1C,EAAE,EAAE,sBAAsB,EAC1B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAC7B,IAAI,CAGN"}
@@ -0,0 +1,27 @@
1
+ // Raw texel-upload primitives. Each writes level 0 of the texture currently bound at `target` — the GL
2
+ // enum for a 2D texture (gl.TEXTURE_2D) or a cube face (gl.TEXTURE_CUBE_MAP_POSITIVE_X + face). They set
3
+ // no sampler or pixel-store state: premultiply, wrap, and filter are the caller's policy applied around
4
+ // the call, so one primitive serves both the premultiplied 2D sprite path and the raw-radiance cube path.
5
+ // The caller owns creating and binding the texture and choosing the target.
6
+ // Uploads raw CPU pixels (rgba8, straight from a Surface's `data`) through the ArrayBufferView overload.
7
+ // The portable bedrock upload — no web types in the signature — so a native GL/Vulkan backend reimplements
8
+ // it 1:1. `width`/`height` are the pixel dimensions the data fills.
9
+ export function uploadGlTextureData(gl, target, width, height, data) {
10
+ gl.texImage2D(target, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, data);
11
+ }
12
+ // Uploads a decoded DOM element (image, canvas, ImageBitmap, VideoFrame) through the TexImageSource
13
+ // overload — the web fast-path, a zero-CPU-copy GPU DMA. Absent on non-web hosts, which carry only `data`.
14
+ export function uploadGlTextureElement(gl, target, source) {
15
+ gl.texImage2D(target, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, source);
16
+ }
17
+ // Dispatches an ImageResource to whichever representation it carries: the element fast-path when a decoded
18
+ // `source` is present, else the portable `data` path (a generated Surface). The seam that makes data-backed
19
+ // resources first-class — the same texture uploads whether it was loaded (element) or generated in memory
20
+ // (data). Assumes the resource has pixels in at least one form.
21
+ export function uploadGlTextureImageResource(gl, target, image) {
22
+ if (image.source !== null)
23
+ uploadGlTextureElement(gl, target, image.source);
24
+ else
25
+ uploadGlTextureData(gl, target, image.width, image.height, image.data);
26
+ }
27
+ //# sourceMappingURL=glTextureUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glTextureUpload.js","sourceRoot":"","sources":["../src/glTextureUpload.ts"],"names":[],"mappings":"AAEA,uGAAuG;AACvG,yGAAyG;AACzG,wGAAwG;AACxG,0GAA0G;AAC1G,4EAA4E;AAE5E,yGAAyG;AACzG,2GAA2G;AAC3G,oEAAoE;AACpE,MAAM,UAAU,mBAAmB,CACjC,EAA0B,EAC1B,MAAc,EACd,KAAa,EACb,MAAc,EACd,IAA8C;IAE9C,EAAE,CAAC,UAAU,CACX,MAAM,EACN,CAAC,EACD,EAAE,CAAC,IAAI,EACP,KAAK,EACL,MAAM,EACN,CAAC,EACD,EAAE,CAAC,IAAI,EACP,EAAE,CAAC,aAAa,EAChB,IAAsC,CACvC,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,2GAA2G;AAC3G,MAAM,UAAU,sBAAsB,CAAC,EAA0B,EAAE,MAAc,EAAE,MAAsB;IACvG,EAAE,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AACvE,CAAC;AAED,2GAA2G;AAC3G,4GAA4G;AAC5G,0GAA0G;AAC1G,gEAAgE;AAChE,MAAM,UAAU,4BAA4B,CAC1C,EAA0B,EAC1B,MAAc,EACd,KAA8B;IAE9B,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,sBAAsB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,MAAwB,CAAC,CAAC;;QACzF,mBAAmB,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAK,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { VideoTexture } from '@flighthq/types';
2
+ export declare function uploadGlTextureVideoFrame(gl: WebGL2RenderingContext, videoTexture: Readonly<VideoTexture>, uploadedFrameId: number): number;
3
+ //# sourceMappingURL=glTextureVideoUpload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glTextureVideoUpload.d.ts","sourceRoot":"","sources":["../src/glTextureVideoUpload.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAcpD,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,sBAAsB,EAC1B,YAAY,EAAE,QAAQ,CAAC,YAAY,CAAC,EACpC,eAAe,EAAE,MAAM,GACtB,MAAM,CAUR"}
@@ -0,0 +1,24 @@
1
+ import { uploadGlTextureElement } from './glTextureUpload';
2
+ // The per-frame video-to-GPU upload path. A VideoTexture's backing HTMLVideoElement decodes new pixels
3
+ // continuously, so a driver re-uploads the currently-bound GL texture whenever the element's frame
4
+ // advances — but not on frames where nothing changed (a paused or stalled stream), which would waste a
5
+ // full-frame DMA. `uploadedFrameId` is the id the caller last uploaded; this compares it to the
6
+ // VideoTexture's `frameId` and re-uploads through the element fast-path only on a change, returning the
7
+ // id now on the GPU so the caller stores it for the next frame.
8
+ //
9
+ // The caller owns creating, binding, and setting sampler/pixel-store state on the texture; this writes
10
+ // level 0 at gl.TEXTURE_2D. Returns `uploadedFrameId` unchanged (no GL call) when the frame has not
11
+ // advanced or the element has no decoded frame yet, so it is safe to call every frame unconditionally.
12
+ export function uploadGlTextureVideoFrame(gl, videoTexture, uploadedFrameId) {
13
+ if (videoTexture.frameId === uploadedFrameId)
14
+ return uploadedFrameId;
15
+ const element = videoTexture.source.element;
16
+ // A first-frame guard: HAVE_CURRENT_DATA (2) with non-zero dimensions. texImage2D on an element with
17
+ // no decoded frame throws in some browsers, so skip until a frame exists and report no upload.
18
+ if (element === null || element.readyState < 2 || element.videoWidth <= 0 || element.videoHeight <= 0) {
19
+ return uploadedFrameId;
20
+ }
21
+ uploadGlTextureElement(gl, gl.TEXTURE_2D, element);
22
+ return videoTexture.frameId;
23
+ }
24
+ //# sourceMappingURL=glTextureVideoUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"glTextureVideoUpload.js","sourceRoot":"","sources":["../src/glTextureVideoUpload.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAE3D,uGAAuG;AACvG,mGAAmG;AACnG,uGAAuG;AACvG,gGAAgG;AAChG,wGAAwG;AACxG,gEAAgE;AAChE,EAAE;AACF,uGAAuG;AACvG,oGAAoG;AACpG,uGAAuG;AACvG,MAAM,UAAU,yBAAyB,CACvC,EAA0B,EAC1B,YAAoC,EACpC,eAAuB;IAEvB,IAAI,YAAY,CAAC,OAAO,KAAK,eAAe;QAAE,OAAO,eAAe,CAAC;IACrE,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;IAC5C,qGAAqG;IACrG,+FAA+F;IAC/F,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,IAAI,CAAC,IAAI,OAAO,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;QACtG,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,sBAAsB,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,EAAE,OAAoC,CAAC,CAAC;IAChF,OAAO,YAAY,CAAC,OAAO,CAAC;AAC9B,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,14 +1,21 @@
1
1
  export * from './glBackground';
2
+ export * from './glCompressedTexture';
2
3
  export * from './glDraw';
3
4
  export * from './glElement';
4
5
  export * from './glFullscreenPass';
6
+ export * from './glLinearToSrgbPass';
5
7
  export * from './glMaterialRegistry';
8
+ export * from './glPresentRenderTarget';
6
9
  export * from './glProgram';
7
10
  export * from './glReadback';
11
+ export * from './glRenderPass';
8
12
  export * from './glRenderState';
9
13
  export * from './glRenderTarget';
10
14
  export * from './glRenderTargetPool';
11
15
  export * from './glShader';
12
16
  export * from './glShaderBinding';
17
+ export * from './glSkinPaletteTexture';
18
+ export * from './glTextureUpload';
19
+ export * from './glTextureVideoUpload';
13
20
  export type { GlRenderTarget } from '@flighthq/types';
14
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,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,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC"}
package/dist/index.js CHANGED
@@ -1,13 +1,20 @@
1
1
  export * from './glBackground';
2
+ export * from './glCompressedTexture';
2
3
  export * from './glDraw';
3
4
  export * from './glElement';
4
5
  export * from './glFullscreenPass';
6
+ export * from './glLinearToSrgbPass';
5
7
  export * from './glMaterialRegistry';
8
+ export * from './glPresentRenderTarget';
6
9
  export * from './glProgram';
7
10
  export * from './glReadback';
11
+ export * from './glRenderPass';
8
12
  export * from './glRenderState';
9
13
  export * from './glRenderTarget';
10
14
  export * from './glRenderTargetPool';
11
15
  export * from './glShader';
12
16
  export * from './glShaderBinding';
17
+ export * from './glSkinPaletteTexture';
18
+ export * from './glTextureUpload';
19
+ export * from './glTextureVideoUpload';
13
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,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,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flighthq/render-gl",
3
- "version": "0.2.0",
3
+ "version": "0.2.1-next.410.a23f189",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/flighthq/flight.git",
@@ -32,10 +32,10 @@
32
32
  "clean:dist": "tsx ../../scripts/clean-package-dist.ts"
33
33
  },
34
34
  "dependencies": {
35
- "@flighthq/displayobject": "0.2.0",
36
- "@flighthq/geometry": "0.2.0",
37
- "@flighthq/render": "0.2.0",
38
- "@flighthq/types": "0.2.0"
35
+ "@flighthq/displayobject": "0.2.1-next.410.a23f189",
36
+ "@flighthq/geometry": "0.2.1-next.410.a23f189",
37
+ "@flighthq/render": "0.2.1-next.410.a23f189",
38
+ "@flighthq/types": "0.2.1-next.410.a23f189"
39
39
  },
40
40
  "devDependencies": {
41
41
  "typescript": "^5.3.0"