@flighthq/render-gl 0.5.1-next.1050.0bd43cc → 0.5.1-next.1052.ea38f97
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
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.1052.ea38f97](https://github.com/flighthq/flight/tree/ea38f9774bbb5b1696c25c9ba02dfae381db021d/packages/render-gl)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/ea38f9774bbb5b1696c25c9ba02dfae381db021d/LICENSE.md)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glSkinPaletteTexture.d.ts","sourceRoot":"","sources":["../src/glSkinPaletteTexture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASpG,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,SAAS,GAAG,oBAAoB,CAI9E;AAID,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAExG;AAKD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CAGjH;AAQD,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,QAAQ,CAAC,YAAY,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,cAAc,SAAI,GACjB,IAAI,
|
|
1
|
+
{"version":3,"file":"glSkinPaletteTexture.d.ts","sourceRoot":"","sources":["../src/glSkinPaletteTexture.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASpG,wBAAgB,0BAA0B,CAAC,EAAE,EAAE,SAAS,GAAG,oBAAoB,CAI9E;AAID,wBAAgB,2BAA2B,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,GAAG,IAAI,CAExG;AAKD,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,kBAAkB,CAAC,oBAAoB,CAAC,EAAE,EAAE,EAAE,SAAS,GAAG,IAAI,CAGjH;AAQD,wBAAgB,0BAA0B,CACxC,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,QAAQ,CAAC,YAAY,CAAC,EACrC,UAAU,EAAE,MAAM,EAClB,cAAc,SAAI,GACjB,IAAI,CAoBN"}
|
|
@@ -35,6 +35,8 @@ export function uploadGlSkinPaletteTexture(gl, palette, jointMatrices, jointCoun
|
|
|
35
35
|
// pose palette would, and the reasons not to are identical.
|
|
36
36
|
const width = jointCount * texelsPerJoint;
|
|
37
37
|
gl.bindTexture(gl.TEXTURE_2D, palette.texture);
|
|
38
|
+
// Raw float data — premultiply must be off. The image upload path leaves it on (sticky state).
|
|
39
|
+
gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, false);
|
|
38
40
|
if (jointCount > palette.jointCapacity) {
|
|
39
41
|
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA32F, width, 1, 0, gl.RGBA, gl.FLOAT, jointMatrices);
|
|
40
42
|
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glSkinPaletteTexture.js","sourceRoot":"","sources":["../src/glSkinPaletteTexture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,sGAAsG;AACtG,kGAAkG;AAClG,yGAAyG;AACzG,oGAAoG;AACpG,+FAA+F;AAC/F,+DAA+D;AAE/D,MAAM,UAAU,0BAA0B,CAAC,EAAa;IACtD,MAAM,GAAG,GAAG,cAAc,EAAwB,CAAC;IACnD,8BAA8B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,UAAU,2BAA2B,CAAC,EAAa,EAAE,OAAuC;IAChG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,wDAAwD;AACxD,MAAM,UAAU,8BAA8B,CAAC,GAA6C,EAAE,EAAa;IACzG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;IACtB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,EAAG,CAAC;AACpC,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,mGAAmG;AACnG,gGAAgG;AAChG,mGAAmG;AACnG,2DAA2D;AAC3D,MAAM,UAAU,0BAA0B,CACxC,EAAa,EACb,OAA6B,EAC7B,aAAqC,EACrC,UAAkB,EAClB,cAAc,GAAG,CAAC;IAElB,kGAAkG;IAClG,mGAAmG;IACnG,kGAAkG;IAClG,4DAA4D;IAC5D,MAAM,KAAK,GAAG,UAAU,GAAG,cAAc,CAAC;IAC1C,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"glSkinPaletteTexture.js","sourceRoot":"","sources":["../src/glSkinPaletteTexture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAGzE,sGAAsG;AACtG,kGAAkG;AAClG,yGAAyG;AACzG,oGAAoG;AACpG,+FAA+F;AAC/F,+DAA+D;AAE/D,MAAM,UAAU,0BAA0B,CAAC,EAAa;IACtD,MAAM,GAAG,GAAG,cAAc,EAAwB,CAAC;IACnD,8BAA8B,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,kGAAkG;AAClG,wFAAwF;AACxF,MAAM,UAAU,2BAA2B,CAAC,EAAa,EAAE,OAAuC;IAChG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACpC,CAAC;AAED,gGAAgG;AAChG,kGAAkG;AAClG,wDAAwD;AACxD,MAAM,UAAU,8BAA8B,CAAC,GAA6C,EAAE,EAAa;IACzG,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC;IACtB,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC,aAAa,EAAG,CAAC;AACpC,CAAC;AAED,iGAAiG;AACjG,+FAA+F;AAC/F,mGAAmG;AACnG,gGAAgG;AAChG,mGAAmG;AACnG,2DAA2D;AAC3D,MAAM,UAAU,0BAA0B,CACxC,EAAa,EACb,OAA6B,EAC7B,aAAqC,EACrC,UAAkB,EAClB,cAAc,GAAG,CAAC;IAElB,kGAAkG;IAClG,mGAAmG;IACnG,kGAAkG;IAClG,4DAA4D;IAC5D,MAAM,KAAK,GAAG,UAAU,GAAG,cAAc,CAAC;IAC1C,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/C,+FAA+F;IAC/F,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAEzD,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"}
|
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.1052.ea38f97",
|
|
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.1052.ea38f97",
|
|
42
|
+
"@flighthq/entity": "0.5.1-next.1052.ea38f97",
|
|
43
|
+
"@flighthq/log": "0.5.1-next.1052.ea38f97",
|
|
44
|
+
"@flighthq/scene2d": "0.5.1-next.1052.ea38f97",
|
|
45
|
+
"@flighthq/geometry": "0.5.1-next.1052.ea38f97",
|
|
46
|
+
"@flighthq/render": "0.5.1-next.1052.ea38f97",
|
|
47
|
+
"@flighthq/registry": "0.5.1-next.1052.ea38f97",
|
|
48
|
+
"@flighthq/signals": "0.5.1-next.1052.ea38f97",
|
|
49
|
+
"@flighthq/texture": "0.5.1-next.1052.ea38f97",
|
|
50
|
+
"@flighthq/types": "0.5.1-next.1052.ea38f97"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"typescript": "^5.3.0"
|
|
@@ -31,11 +31,13 @@ function makeGl(): { gl: WebGL2RenderingContext; calls: Call[] } {
|
|
|
31
31
|
TEXTURE_MAG_FILTER: 0x2800,
|
|
32
32
|
TEXTURE_WRAP_S: 0x2802,
|
|
33
33
|
TEXTURE_WRAP_T: 0x2803,
|
|
34
|
+
UNPACK_PREMULTIPLY_ALPHA_WEBGL: 0x9241,
|
|
34
35
|
createTexture: record('createTexture', { id: 'tex' }),
|
|
35
36
|
deleteTexture: record('deleteTexture'),
|
|
36
37
|
bindTexture: record('bindTexture'),
|
|
37
38
|
texImage2D: record('texImage2D'),
|
|
38
39
|
texSubImage2D: record('texSubImage2D'),
|
|
40
|
+
pixelStorei: record('pixelStorei'),
|
|
39
41
|
texParameteri: record('texParameteri'),
|
|
40
42
|
} as unknown as WebGL2RenderingContext;
|
|
41
43
|
return { gl, calls };
|
|
@@ -97,6 +99,22 @@ describe('uploadGlSkinPaletteTexture', () => {
|
|
|
97
99
|
expect(bind?.args[1]).toBe(palette.texture);
|
|
98
100
|
});
|
|
99
101
|
|
|
102
|
+
it('disables UNPACK_PREMULTIPLY_ALPHA_WEBGL before uploading', () => {
|
|
103
|
+
const { gl, calls } = makeGl();
|
|
104
|
+
const palette = createGlSkinPaletteTexture(gl);
|
|
105
|
+
uploadGlSkinPaletteTexture(gl, palette, makePalette(2), 2);
|
|
106
|
+
|
|
107
|
+
const psi = calls.find((c) => c.name === 'pixelStorei' && c.args[0] === gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);
|
|
108
|
+
expect(psi).toBeDefined();
|
|
109
|
+
expect(psi?.args[1]).toBe(false);
|
|
110
|
+
|
|
111
|
+
const bindIdx = calls.findIndex((c) => c.name === 'bindTexture');
|
|
112
|
+
const psiIdx = calls.findIndex((c) => c.name === 'pixelStorei' && c.args[0] === gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL);
|
|
113
|
+
const uploadIdx = calls.findIndex((c) => c.name === 'texImage2D');
|
|
114
|
+
expect(psiIdx).toBeGreaterThan(bindIdx);
|
|
115
|
+
expect(psiIdx).toBeLessThan(uploadIdx);
|
|
116
|
+
});
|
|
117
|
+
|
|
100
118
|
it('uses texSubImage2D without resetting parameters when the palette fits the current capacity', () => {
|
|
101
119
|
const { gl, calls } = makeGl();
|
|
102
120
|
const palette = createGlSkinPaletteTexture(gl);
|