@flighthq/render-gl 0.5.1-next.904.b545d9c → 0.5.1-next.905.5fbf787
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +11 -11
- package/src/glExternalTexture.test.ts +10 -1
- package/src/glPipeline.test.ts +11 -1
- package/src/glRenderState.test.ts +7 -1
- package/src/glRenderTarget.test.ts +8 -2
- package/src/glRenderTargetPool.test.ts +6 -0
- package/src/glRenderTexturePool.test.ts +7 -1
- package/src/glShader.test.ts +14 -1
- package/src/glSkinPaletteTexture.test.ts +6 -0
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/render-gl`. The `@fl
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/render-gl@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/render-gl@0.5.1-next.905.5fbf787](https://github.com/flighthq/flight/tree/5fbf7874064c384307542d68b4dcb6a895ff0dcf/packages/render-gl)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/5fbf7874064c384307542d68b4dcb6a895ff0dcf/LICENSE.md)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/render-gl",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.905.5fbf787",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/color": "0.5.1-next.
|
|
42
|
-
"@flighthq/entity": "0.5.1-next.
|
|
43
|
-
"@flighthq/log": "0.5.1-next.
|
|
44
|
-
"@flighthq/scene2d": "0.5.1-next.
|
|
45
|
-
"@flighthq/geometry": "0.5.1-next.
|
|
46
|
-
"@flighthq/render": "0.5.1-next.
|
|
47
|
-
"@flighthq/registry": "0.5.1-next.
|
|
48
|
-
"@flighthq/signals": "0.5.1-next.
|
|
49
|
-
"@flighthq/texture": "0.5.1-next.
|
|
50
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/color": "0.5.1-next.905.5fbf787",
|
|
42
|
+
"@flighthq/entity": "0.5.1-next.905.5fbf787",
|
|
43
|
+
"@flighthq/log": "0.5.1-next.905.5fbf787",
|
|
44
|
+
"@flighthq/scene2d": "0.5.1-next.905.5fbf787",
|
|
45
|
+
"@flighthq/geometry": "0.5.1-next.905.5fbf787",
|
|
46
|
+
"@flighthq/render": "0.5.1-next.905.5fbf787",
|
|
47
|
+
"@flighthq/registry": "0.5.1-next.905.5fbf787",
|
|
48
|
+
"@flighthq/signals": "0.5.1-next.905.5fbf787",
|
|
49
|
+
"@flighthq/texture": "0.5.1-next.905.5fbf787",
|
|
50
|
+
"@flighthq/types": "0.5.1-next.905.5fbf787"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"typescript": "^5.3.0"
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { getTextureSourceKind } from '@flighthq/texture/contract';
|
|
2
2
|
import { ExternalTextureSourceKind } from '@flighthq/types/contract';
|
|
3
3
|
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
createExternalGlTexture,
|
|
6
|
+
disposeExternalGlTexture,
|
|
7
|
+
initializeExternalGlTextureSource,
|
|
8
|
+
} from './glExternalTexture';
|
|
5
9
|
import { getGlRenderStateRuntime } from './glRenderState';
|
|
6
10
|
import { createGlState } from './glTestHelper';
|
|
7
11
|
import { resolveGlTexture } from './glTextureResolver';
|
|
@@ -41,3 +45,8 @@ describe('disposeExternalGlTexture', () => {
|
|
|
41
45
|
expect(disposeExternalGlTexture(state, texture)).toBe(false);
|
|
42
46
|
});
|
|
43
47
|
});
|
|
48
|
+
describe('initializeExternalGlTextureSource', () => {
|
|
49
|
+
it('is the construction initializer of createExternalGlTextureSource', () => {
|
|
50
|
+
expect(typeof initializeExternalGlTextureSource).toBe('function');
|
|
51
|
+
});
|
|
52
|
+
});
|
package/src/glPipeline.test.ts
CHANGED
|
@@ -2,7 +2,12 @@ import { withRegistryTableEntry } from '@flighthq/registry/contract';
|
|
|
2
2
|
import type { GlPipeline, Renderer } from '@flighthq/types/contract';
|
|
3
3
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
createEmptyGlRegistries,
|
|
7
|
+
createGlPipeline,
|
|
8
|
+
getGlPipelineRegistries,
|
|
9
|
+
initializeEmptyGlRegistries,
|
|
10
|
+
} from './glPipeline';
|
|
6
11
|
|
|
7
12
|
describe('createEmptyGlRegistries', () => {
|
|
8
13
|
it('creates a complete GlRenderRegistries with all required tables', () => {
|
|
@@ -94,3 +99,8 @@ describe('getGlPipelineRegistries', () => {
|
|
|
94
99
|
expect(getGlPipelineRegistries(pipeline)).toBe(registries);
|
|
95
100
|
});
|
|
96
101
|
});
|
|
102
|
+
describe('initializeEmptyGlRegistries', () => {
|
|
103
|
+
it('is the construction initializer of createEmptyGlRegistries', () => {
|
|
104
|
+
expect(typeof initializeEmptyGlRegistries).toBe('function');
|
|
105
|
+
});
|
|
106
|
+
});
|
|
@@ -40,6 +40,7 @@ import {
|
|
|
40
40
|
getGlColorAdjustmentMaterialFeatureGuard,
|
|
41
41
|
getGlContextRuntime,
|
|
42
42
|
getGlRenderStateRuntime,
|
|
43
|
+
initializeGlContextState,
|
|
43
44
|
invalidateGlRenderStateCache,
|
|
44
45
|
registerGlContextTeardown,
|
|
45
46
|
registerGlRenderStateTeardown,
|
|
@@ -726,6 +727,12 @@ describe('getGlRenderStateRuntime', () => {
|
|
|
726
727
|
});
|
|
727
728
|
});
|
|
728
729
|
|
|
730
|
+
describe('initializeGlContextState', () => {
|
|
731
|
+
it('is the construction initializer of createGlContextState', () => {
|
|
732
|
+
expect(typeof initializeGlContextState).toBe('function');
|
|
733
|
+
});
|
|
734
|
+
});
|
|
735
|
+
|
|
729
736
|
describe('invalidateGlRenderStateCache', () => {
|
|
730
737
|
it('nulls the cached GL binding slots so the next draw re-binds from scratch', () => {
|
|
731
738
|
const { gl } = makeContext();
|
|
@@ -843,7 +850,6 @@ describe('registerGlContextTeardown', () => {
|
|
|
843
850
|
expect(teardown).toHaveBeenCalledWith(gl);
|
|
844
851
|
});
|
|
845
852
|
});
|
|
846
|
-
|
|
847
853
|
describe('registerGlRenderStateTeardown', () => {
|
|
848
854
|
it('pushes a callback that fires on state teardown', () => {
|
|
849
855
|
const { gl } = makeContext();
|
|
@@ -11,10 +11,11 @@ import {
|
|
|
11
11
|
destroyGlRenderTarget,
|
|
12
12
|
drawGlRenderTargetResult,
|
|
13
13
|
explainGlRenderTarget,
|
|
14
|
+
initializeGlRenderTarget,
|
|
14
15
|
isGlRenderTargetFormatSupported,
|
|
15
16
|
resizeGlRenderTarget,
|
|
16
|
-
resolveGlRenderTargetAxes,
|
|
17
17
|
resolveGlRenderTarget,
|
|
18
|
+
resolveGlRenderTargetAxes,
|
|
18
19
|
} from './glRenderTarget';
|
|
19
20
|
import { createGlState } from './glTestHelper';
|
|
20
21
|
|
|
@@ -291,6 +292,12 @@ describe('explainGlRenderTarget', () => {
|
|
|
291
292
|
});
|
|
292
293
|
});
|
|
293
294
|
|
|
295
|
+
describe('initializeGlRenderTarget', () => {
|
|
296
|
+
it('is the construction initializer of createGlRenderTarget', () => {
|
|
297
|
+
expect(typeof initializeGlRenderTarget).toBe('function');
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
|
|
294
301
|
describe('isGlRenderTargetFormatSupported', () => {
|
|
295
302
|
it('reports rgba8 independently of float extension support', () => {
|
|
296
303
|
const { state, gl } = makeState();
|
|
@@ -501,7 +508,6 @@ describe('resolveGlRenderTarget', () => {
|
|
|
501
508
|
expect(gl.scissor).toHaveBeenLastCalledWith(3, 4, 16, 12);
|
|
502
509
|
});
|
|
503
510
|
});
|
|
504
|
-
|
|
505
511
|
describe('resolveGlRenderTargetAxes', () => {
|
|
506
512
|
it('queries effective axes without allocating target storage', () => {
|
|
507
513
|
const { state, gl } = makeState();
|
|
@@ -2,6 +2,7 @@ import {
|
|
|
2
2
|
acquireGlRenderTarget,
|
|
3
3
|
createGlRenderTargetPool,
|
|
4
4
|
destroyGlRenderTargetPool,
|
|
5
|
+
initializeGlRenderTargetPool,
|
|
5
6
|
releaseGlRenderTarget,
|
|
6
7
|
} from './glRenderTargetPool';
|
|
7
8
|
import { createGlState } from './glTestHelper';
|
|
@@ -214,6 +215,11 @@ describe('destroyGlRenderTargetPool', () => {
|
|
|
214
215
|
});
|
|
215
216
|
});
|
|
216
217
|
|
|
218
|
+
describe('initializeGlRenderTargetPool', () => {
|
|
219
|
+
it('is the construction initializer of createGlRenderTargetPool', () => {
|
|
220
|
+
expect(typeof initializeGlRenderTargetPool).toBe('function');
|
|
221
|
+
});
|
|
222
|
+
});
|
|
217
223
|
describe('releaseGlRenderTarget', () => {
|
|
218
224
|
it('returns the target to the free list without destroying it', () => {
|
|
219
225
|
const { state, gl } = createGlState();
|
|
@@ -3,6 +3,7 @@ import {
|
|
|
3
3
|
acquireGlRenderTexture,
|
|
4
4
|
createGlRenderTexturePool,
|
|
5
5
|
destroyGlRenderTexturePool,
|
|
6
|
+
initializeGlRenderTexturePool,
|
|
6
7
|
releaseGlRenderTexture,
|
|
7
8
|
withGlRenderTextures,
|
|
8
9
|
} from './glRenderTexturePool';
|
|
@@ -100,6 +101,12 @@ describe('destroyGlRenderTexturePool', () => {
|
|
|
100
101
|
});
|
|
101
102
|
});
|
|
102
103
|
|
|
104
|
+
describe('initializeGlRenderTexturePool', () => {
|
|
105
|
+
it('is the construction initializer of createGlRenderTexturePool', () => {
|
|
106
|
+
expect(typeof initializeGlRenderTexturePool).toBe('function');
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
|
|
103
110
|
describe('releaseGlRenderTexture', () => {
|
|
104
111
|
it('rejects a double release', () => {
|
|
105
112
|
const { state } = createGlState();
|
|
@@ -110,7 +117,6 @@ describe('releaseGlRenderTexture', () => {
|
|
|
110
117
|
expect(() => releaseGlRenderTexture(state, pool, texture)).toThrow('texture is not leased');
|
|
111
118
|
});
|
|
112
119
|
});
|
|
113
|
-
|
|
114
120
|
describe('withGlRenderTextures', () => {
|
|
115
121
|
it('releases every lease when the bracket callback throws', () => {
|
|
116
122
|
const { state } = createGlState();
|
package/src/glShader.test.ts
CHANGED
|
@@ -7,6 +7,8 @@ import {
|
|
|
7
7
|
createDefaultGlBitmapShader,
|
|
8
8
|
createGlBitmapShader,
|
|
9
9
|
ensureDefaultGlBitmapShader,
|
|
10
|
+
initializeDefaultGlBitmapShader,
|
|
11
|
+
initializeGlBitmapShader,
|
|
10
12
|
setGlAttributes,
|
|
11
13
|
setGlBaseUniforms,
|
|
12
14
|
setGlMatrixFromTransform,
|
|
@@ -183,6 +185,18 @@ describe('ensureDefaultGlBitmapShader', () => {
|
|
|
183
185
|
});
|
|
184
186
|
});
|
|
185
187
|
|
|
188
|
+
describe('initializeDefaultGlBitmapShader', () => {
|
|
189
|
+
it('is the construction initializer of createDefaultGlBitmapShader', () => {
|
|
190
|
+
expect(typeof initializeDefaultGlBitmapShader).toBe('function');
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
describe('initializeGlBitmapShader', () => {
|
|
195
|
+
it('is the construction initializer of createGlBitmapShader', () => {
|
|
196
|
+
expect(typeof initializeGlBitmapShader).toBe('function');
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
|
|
186
200
|
describe('setGlAttributes', () => {
|
|
187
201
|
it('enables the position vertex attrib array', () => {
|
|
188
202
|
const gl = makeGL();
|
|
@@ -264,7 +278,6 @@ describe('setGlBaseUniforms', () => {
|
|
|
264
278
|
expect(gl.uniform4f).not.toHaveBeenCalled();
|
|
265
279
|
});
|
|
266
280
|
});
|
|
267
|
-
|
|
268
281
|
describe('setGlMatrixFromTransform', () => {
|
|
269
282
|
it('projects the quad corner order to a clockwise triangle, which is why 2D draws need culling off', () => {
|
|
270
283
|
// Measured in a real WebGL2 context, not argued: with CULL_FACE enabled and the CCW default, this
|
|
@@ -3,6 +3,7 @@ import type { GlSkinPaletteTexture } from '@flighthq/types/contract';
|
|
|
3
3
|
import {
|
|
4
4
|
createGlSkinPaletteTexture,
|
|
5
5
|
destroyGlSkinPaletteTexture,
|
|
6
|
+
initializeGlSkinPaletteTexture,
|
|
6
7
|
uploadGlSkinPaletteTexture,
|
|
7
8
|
} from './glSkinPaletteTexture';
|
|
8
9
|
|
|
@@ -64,6 +65,11 @@ describe('destroyGlSkinPaletteTexture', () => {
|
|
|
64
65
|
});
|
|
65
66
|
});
|
|
66
67
|
|
|
68
|
+
describe('initializeGlSkinPaletteTexture', () => {
|
|
69
|
+
it('is the construction initializer of createGlSkinPaletteTexture', () => {
|
|
70
|
+
expect(typeof initializeGlSkinPaletteTexture).toBe('function');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
67
73
|
describe('uploadGlSkinPaletteTexture', () => {
|
|
68
74
|
it('allocates RGBA32F storage width = jointCount*4 and sets NEAREST/CLAMP on first upload', () => {
|
|
69
75
|
const { gl, calls } = makeGl();
|