@flighthq/displayobject-gl 0.1.0 → 0.2.0
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/dist/enableGlColorAdjustmentGuards.d.ts +4 -0
- package/dist/enableGlColorAdjustmentGuards.d.ts.map +1 -0
- package/dist/enableGlColorAdjustmentGuards.js +21 -0
- package/dist/enableGlColorAdjustmentGuards.js.map +1 -0
- package/dist/glBitmap.d.ts.map +1 -1
- package/dist/glBitmap.js +2 -1
- package/dist/glBitmap.js.map +1 -1
- package/dist/glCache.d.ts.map +1 -1
- package/dist/glCache.js +4 -1
- package/dist/glCache.js.map +1 -1
- package/dist/glColorAdjustment.d.ts +3 -0
- package/dist/glColorAdjustment.d.ts.map +1 -0
- package/dist/glColorAdjustment.js +279 -0
- package/dist/glColorAdjustment.js.map +1 -0
- package/dist/glQuadBatch.d.ts.map +1 -1
- package/dist/glQuadBatch.js +8 -5
- package/dist/glQuadBatch.js.map +1 -1
- package/dist/glRichText.js +2 -1
- package/dist/glRichText.js.map +1 -1
- package/dist/glShape.d.ts.map +1 -1
- package/dist/glShape.js +2 -1
- package/dist/glShape.js.map +1 -1
- package/dist/glSpriteBatch.d.ts +2 -2
- package/dist/glSpriteBatch.d.ts.map +1 -1
- package/dist/glSpriteBatch.js +42 -19
- package/dist/glSpriteBatch.js.map +1 -1
- package/dist/glSpriteRenderer.d.ts.map +1 -1
- package/dist/glSpriteRenderer.js +2 -1
- package/dist/glSpriteRenderer.js.map +1 -1
- package/dist/glTextLabel.d.ts.map +1 -1
- package/dist/glTextLabel.js +3 -1
- package/dist/glTextLabel.js.map +1 -1
- package/dist/glTilemap.d.ts.map +1 -1
- package/dist/glTilemap.js +8 -4
- package/dist/glTilemap.js.map +1 -1
- package/dist/index.d.ts +2 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/package.json +22 -15
- package/src/enableGlColorAdjustmentGuards.test.ts +76 -0
- package/src/glColorAdjustment.test.ts +165 -0
- package/src/glRichText.test.ts +7 -2
- package/src/glSpriteBatch.test.ts +58 -1
- package/src/glVelocity.test.ts +2 -1
- package/dist/glColorTransformMaterial.d.ts +0 -4
- package/dist/glColorTransformMaterial.d.ts.map +0 -1
- package/dist/glColorTransformMaterial.js +0 -116
- package/dist/glColorTransformMaterial.js.map +0 -1
- package/dist/glMaterials.d.ts +0 -4
- package/dist/glMaterials.d.ts.map +0 -1
- package/dist/glMaterials.js +0 -97
- package/dist/glMaterials.js.map +0 -1
- package/dist/glUniformColorTransformMaterial.d.ts +0 -4
- package/dist/glUniformColorTransformMaterial.d.ts.map +0 -1
- package/dist/glUniformColorTransformMaterial.js +0 -56
- package/dist/glUniformColorTransformMaterial.js.map +0 -1
- package/src/glColorTransformMaterial.test.ts +0 -45
- package/src/glMaterials.test.ts +0 -91
- package/src/glUniformColorTransformMaterial.test.ts +0 -24
package/dist/glSpriteBatch.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { BlendMode, GlMaterialRenderer, GlRenderState, Material, MaterialData } from '@flighthq/types';
|
|
2
|
-
import type { GlQuadBatchShader } from '@flighthq/types';
|
|
1
|
+
import type { BlendMode, ColorTransform, GlMaterialRenderer, GlQuadBatchShader, GlRenderState, Material, MaterialData } from '@flighthq/types';
|
|
3
2
|
export declare const QUAD_BATCH_VS = "#version 300 es\nprecision mediump float;\n\nlayout(location = 0) in vec2 a_corner;\nlayout(location = 1) in vec2 a_matAB;\nlayout(location = 2) in vec2 a_matCD;\nlayout(location = 3) in vec2 a_matTXTY;\nlayout(location = 4) in vec2 a_size;\nlayout(location = 5) in vec4 a_uvRect;\nlayout(location = 6) in float a_alpha;\n\nuniform mat3 u_world;\n\nout vec2 v_texCoord;\nout float v_alpha;\n\nvoid main() {\n vec2 local = a_corner * a_size;\n vec2 worldPos = vec2(\n a_matAB.x * local.x + a_matCD.x * local.y + a_matTXTY.x,\n a_matAB.y * local.x + a_matCD.y * local.y + a_matTXTY.y\n );\n vec3 clip = u_world * vec3(worldPos, 1.0);\n gl_Position = vec4(clip.xy, 0.0, 1.0);\n v_texCoord = mix(a_uvRect.xy, a_uvRect.zw, a_corner);\n v_alpha = a_alpha;\n}";
|
|
4
3
|
export declare function bindGlQuadBatchBaseAttributes(state: GlRenderState, locCorner: number): void;
|
|
5
4
|
export declare function ensureGlQuadBatchShader(state: GlRenderState): GlQuadBatchShader;
|
|
6
5
|
export declare function flushGlSpriteBatch(state: GlRenderState): void;
|
|
7
6
|
export declare function packGlSpriteBatchMaterialInstance(state: GlRenderState, materialData: MaterialData | null, instanceIndex: number): void;
|
|
8
7
|
export declare function prepareGlSpriteBatchWrite(state: GlRenderState, texture: CanvasImageSource, blendMode: BlendMode | null, material: Material | null, materialRenderer: GlMaterialRenderer, maxInstances: number): number;
|
|
8
|
+
export declare function recordGlSpriteBatchColorTransform(state: GlRenderState, colorTransform: ColorTransform | null | undefined, instanceIndex: number): void;
|
|
9
9
|
export declare function setGlQuadBatchWorldAndTexture(state: GlRenderState, locWorldMatrix: WebGLUniformLocation, locTexture: WebGLUniformLocation): void;
|
|
10
10
|
export declare function useGlQuadBatchProgram(state: GlRenderState, program: WebGLProgram): void;
|
|
11
11
|
//# sourceMappingURL=glSpriteBatch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glSpriteBatch.d.ts","sourceRoot":"","sources":["../src/glSpriteBatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"glSpriteBatch.d.ts","sourceRoot":"","sources":["../src/glSpriteBatch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,QAAQ,EACR,YAAY,EACb,MAAM,iBAAiB,CAAC;AAoBzB,eAAO,MAAM,aAAa,kwBA0BxB,CAAC;AAiCH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CA4B3F;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,CAc/E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAwD7D;AAMD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,aAAa,EACpB,YAAY,EAAE,YAAY,GAAG,IAAI,EACjC,aAAa,EAAE,MAAM,GACpB,IAAI,CAUN;AAOD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,iBAAiB,EAC1B,SAAS,EAAE,SAAS,GAAG,IAAI,EAC3B,QAAQ,EAAE,QAAQ,GAAG,IAAI,EACzB,gBAAgB,EAAE,kBAAkB,EACpC,YAAY,EAAE,MAAM,GACnB,MAAM,CAyCR;AAOD,wBAAgB,iCAAiC,CAC/C,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EACjD,aAAa,EAAE,MAAM,GACpB,IAAI,CAQN;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,cAAc,EAAE,oBAAoB,EACpC,UAAU,EAAE,oBAAoB,GAC/B,IAAI,CAkBN;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAMvF"}
|
package/dist/glSpriteBatch.js
CHANGED
|
@@ -13,8 +13,9 @@ import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
|
13
13
|
// count and divisor convention.
|
|
14
14
|
const SPRITE_INSTANCE_FLOATS = 13;
|
|
15
15
|
const SPRITE_INSTANCE_STRIDE = SPRITE_INSTANCE_FLOATS * 4;
|
|
16
|
-
// Highest per-instance attribute location any sprite-batch material
|
|
17
|
-
// locations 1..this are reset after each flush so
|
|
16
|
+
// Highest per-instance attribute location any sprite-batch material or the opt-in color-adjustment
|
|
17
|
+
// fold (a_ctMult/a_ctOff at 7/8) may use. Divisors for locations 1..this are reset after each flush so
|
|
18
|
+
// later non-instanced draws are not corrupted.
|
|
18
19
|
const MAX_INSTANCE_ATTRIB_LOCATION = 8;
|
|
19
20
|
export const QUAD_BATCH_VS = `#version 300 es
|
|
20
21
|
precision mediump float;
|
|
@@ -139,21 +140,27 @@ export function flushGlSpriteBatch(state) {
|
|
|
139
140
|
gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchInstanceBuffer);
|
|
140
141
|
}
|
|
141
142
|
gl.bufferSubData(gl.ARRAY_BUFFER, 0, runtime.spriteBatchInstanceData, 0, count * SPRITE_INSTANCE_FLOATS);
|
|
142
|
-
if (floats > 0) {
|
|
143
|
-
if (runtime.spriteBatchMaterialBuffer === null) {
|
|
144
|
-
runtime.spriteBatchMaterialBuffer = gl.createBuffer();
|
|
145
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchMaterialBuffer);
|
|
146
|
-
gl.bufferData(gl.ARRAY_BUFFER, runtime.spriteBatchMaterialData.byteLength, gl.DYNAMIC_DRAW);
|
|
147
|
-
}
|
|
148
|
-
else {
|
|
149
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchMaterialBuffer);
|
|
150
|
-
}
|
|
151
|
-
gl.bufferSubData(gl.ARRAY_BUFFER, 0, runtime.spriteBatchMaterialData, 0, count * floats);
|
|
152
|
-
}
|
|
153
143
|
state.applyBlendMode?.(state, blendMode);
|
|
154
144
|
bindGlTexture(state, texture);
|
|
155
|
-
//
|
|
156
|
-
|
|
145
|
+
// The color-adjustment fold is opt-in (enableGlColorAdjustment): when installed it selects and binds
|
|
146
|
+
// its program for a tinted batch, returning true; when absent, or for an untinted batch, the lean
|
|
147
|
+
// material path runs and no fold code is linked into this module.
|
|
148
|
+
const ctHandled = runtime.glColorAdjustmentFold?.flush(state, count) ?? false;
|
|
149
|
+
if (!ctHandled) {
|
|
150
|
+
if (floats > 0) {
|
|
151
|
+
if (runtime.spriteBatchMaterialBuffer === null) {
|
|
152
|
+
runtime.spriteBatchMaterialBuffer = gl.createBuffer();
|
|
153
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchMaterialBuffer);
|
|
154
|
+
gl.bufferData(gl.ARRAY_BUFFER, runtime.spriteBatchMaterialData.byteLength, gl.DYNAMIC_DRAW);
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, runtime.spriteBatchMaterialBuffer);
|
|
158
|
+
}
|
|
159
|
+
gl.bufferSubData(gl.ARRAY_BUFFER, 0, runtime.spriteBatchMaterialData, 0, count * floats);
|
|
160
|
+
}
|
|
161
|
+
// Resolved renderer owns program selection, uniforms, and all attribute setup (base + its own).
|
|
162
|
+
renderer.bind(state, material);
|
|
163
|
+
}
|
|
157
164
|
gl.bindBuffer(gl.ELEMENT_ARRAY_BUFFER, runtime.quadIndexBuffer);
|
|
158
165
|
gl.drawElementsInstanced(gl.TRIANGLES, 6, gl.UNSIGNED_SHORT, 0, count);
|
|
159
166
|
for (let loc = 1; loc <= MAX_INSTANCE_ATTRIB_LOCATION; loc++) {
|
|
@@ -162,7 +169,8 @@ export function flushGlSpriteBatch(state) {
|
|
|
162
169
|
}
|
|
163
170
|
// Writes one instance's per-instance material floats into the active material buffer at the given
|
|
164
171
|
// instance index, converting the supplied per-instance materialData. No-op for uniform-only
|
|
165
|
-
// materials (no packInstance / floats === 0).
|
|
172
|
+
// materials (no packInstance / floats === 0). Color transform is folded separately by
|
|
173
|
+
// recordGlSpriteBatchColorTransform — it is not a material.
|
|
166
174
|
export function packGlSpriteBatchMaterialInstance(state, materialData, instanceIndex) {
|
|
167
175
|
const runtime = getGlRenderStateRuntime(state);
|
|
168
176
|
const renderer = runtime.spriteBatchMaterialRenderer;
|
|
@@ -172,9 +180,9 @@ export function packGlSpriteBatchMaterialInstance(state, materialData, instanceI
|
|
|
172
180
|
}
|
|
173
181
|
// Ensures the sprite batch can accept up to `maxInstances` more instances for the given texture,
|
|
174
182
|
// blend mode, and material. Flushes the current batch when any of the three changes (material is
|
|
175
|
-
// compared by reference) or capacity is exceeded.
|
|
176
|
-
// spriteBatchInstanceData where the caller should begin writing
|
|
177
|
-
// increments state.spriteBatchCount and
|
|
183
|
+
// compared by reference) or capacity is exceeded. The color transform is orthogonal — it never keys
|
|
184
|
+
// the batch. Returns the float index in spriteBatchInstanceData where the caller should begin writing
|
|
185
|
+
// base instance data; the caller increments state.spriteBatchCount and records per-instance data.
|
|
178
186
|
export function prepareGlSpriteBatchWrite(state, texture, blendMode, material, materialRenderer, maxInstances) {
|
|
179
187
|
const runtime = getGlRenderStateRuntime(state);
|
|
180
188
|
if (texture !== runtime.spriteBatchTexture ||
|
|
@@ -212,6 +220,21 @@ export function prepareGlSpriteBatchWrite(state, texture, blendMode, material, m
|
|
|
212
220
|
}
|
|
213
221
|
return runtime.spriteBatchCount * SPRITE_INSTANCE_FLOATS;
|
|
214
222
|
}
|
|
223
|
+
// Folds instance `instanceIndex`'s effective color transform into the active batch through the opt-in
|
|
224
|
+
// color-adjustment fold, without ever splitting the batch. When the capability was not enabled
|
|
225
|
+
// (enableGlColorAdjustment), the fold slot is null and the tint is skipped — the batch draws untinted
|
|
226
|
+
// (the sentinel behavior); an installed guard reports the miss. `colorTransform` is null for an
|
|
227
|
+
// untinted instance, which is a no-op whether or not the fold is enabled.
|
|
228
|
+
export function recordGlSpriteBatchColorTransform(state, colorTransform, instanceIndex) {
|
|
229
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
230
|
+
const fold = runtime.glColorAdjustmentFold;
|
|
231
|
+
if (fold != null) {
|
|
232
|
+
fold.record(runtime, colorTransform, instanceIndex);
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
if (colorTransform != null)
|
|
236
|
+
runtime.glColorAdjustmentGuard?.(state, colorTransform);
|
|
237
|
+
}
|
|
215
238
|
export function setGlQuadBatchWorldAndTexture(state, locWorldMatrix, locTexture) {
|
|
216
239
|
const runtime = getGlRenderStateRuntime(state);
|
|
217
240
|
const gl = state.gl;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glSpriteBatch.js","sourceRoot":"","sources":["../src/glSpriteBatch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"glSpriteBatch.js","sourceRoot":"","sources":["../src/glSpriteBatch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glSpriteRenderer.d.ts","sourceRoot":"","sources":["../src/glSpriteRenderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAwC,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"glSpriteRenderer.d.ts","sourceRoot":"","sources":["../src/glSpriteRenderer.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAwC,cAAc,EAAE,MAAM,iBAAiB,CAAC;AA2D5F,eAAO,MAAM,uBAAuB,EAAE,cAIrC,CAAC"}
|
package/dist/glSpriteRenderer.js
CHANGED
|
@@ -2,7 +2,7 @@ import { noopRendererData } from '@flighthq/render';
|
|
|
2
2
|
import { resolveGlMaterialRenderer } from '@flighthq/render-gl';
|
|
3
3
|
import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
4
4
|
import { BatchFormat } from '@flighthq/types';
|
|
5
|
-
import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite } from './glSpriteBatch';
|
|
5
|
+
import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite, recordGlSpriteBatchColorTransform, } from './glSpriteBatch';
|
|
6
6
|
function submitGlSpriteNode(state, spriteNode) {
|
|
7
7
|
const runtime = getGlRenderStateRuntime(state);
|
|
8
8
|
const source = spriteNode.source;
|
|
@@ -40,6 +40,7 @@ function submitGlSpriteNode(state, spriteNode) {
|
|
|
40
40
|
d[base + 11] = (region.y + region.height) * ih;
|
|
41
41
|
d[base + 12] = spriteNode.alpha;
|
|
42
42
|
packGlSpriteBatchMaterialInstance(state, spriteNode.materialData, instanceIndex);
|
|
43
|
+
recordGlSpriteBatchColorTransform(state, spriteNode.colorTransform, instanceIndex);
|
|
43
44
|
runtime.spriteBatchCount++;
|
|
44
45
|
}
|
|
45
46
|
export const defaultGlSpriteRenderer = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glSpriteRenderer.js","sourceRoot":"","sources":["../src/glSpriteRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"glSpriteRenderer.js","sourceRoot":"","sources":["../src/glSpriteRenderer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glTextLabel.d.ts","sourceRoot":"","sources":["../src/glTextLabel.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EAGb,aAAa,EAId,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"glTextLabel.d.ts","sourceRoot":"","sources":["../src/glTextLabel.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EACV,qBAAqB,EACrB,aAAa,EAGb,aAAa,EAId,MAAM,iBAAiB,CAAC;AAqDzB,wBAAgB,eAAe,CAAC,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,GAAG,IAAI,CAkGtF;AAED,eAAO,MAAM,0BAA0B,EAAE,qBAKxC,CAAC"}
|
package/dist/glTextLabel.js
CHANGED
|
@@ -6,7 +6,7 @@ import { computeTextFormatFontString } from '@flighthq/text';
|
|
|
6
6
|
import { getTextLabelRuntime } from '@flighthq/text';
|
|
7
7
|
import { computeTextLayout, createTextFormatRange, getTextLayoutResult } from '@flighthq/textlayout';
|
|
8
8
|
import { BatchFormat } from '@flighthq/types';
|
|
9
|
-
import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite } from './glSpriteBatch';
|
|
9
|
+
import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite, recordGlSpriteBatchColorTransform, } from './glSpriteBatch';
|
|
10
10
|
function getGlTextLabelData(data) {
|
|
11
11
|
return data;
|
|
12
12
|
}
|
|
@@ -57,6 +57,7 @@ export function drawGlTextLabel(state, renderProxy) {
|
|
|
57
57
|
width: fieldWidth,
|
|
58
58
|
height: fieldHeight,
|
|
59
59
|
measure,
|
|
60
|
+
verticalAlign: source.data.autoSize === 'none' ? source.data.verticalAlign : 'top',
|
|
60
61
|
});
|
|
61
62
|
textData.lastContentId = version;
|
|
62
63
|
textData.lastPixelRatio = pixelRatio;
|
|
@@ -119,6 +120,7 @@ export function drawGlTextLabel(state, renderProxy) {
|
|
|
119
120
|
d[base + 11] = 1;
|
|
120
121
|
d[base + 12] = renderProxy.alpha;
|
|
121
122
|
packGlSpriteBatchMaterialInstance(state, renderProxy.materialData, startCount);
|
|
123
|
+
recordGlSpriteBatchColorTransform(state, renderProxy.colorTransform, startCount);
|
|
122
124
|
runtime.spriteBatchCount++;
|
|
123
125
|
}
|
|
124
126
|
export const defaultGlTextLabelRenderer = {
|
package/dist/glTextLabel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glTextLabel.js","sourceRoot":"","sources":["../src/glTextLabel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAE,2BAA2B,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAWrG,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"glTextLabel.js","sourceRoot":"","sources":["../src/glTextLabel.ts"],"names":[],"mappings":"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"}
|
package/dist/glTilemap.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glTilemap.d.ts","sourceRoot":"","sources":["../src/glTilemap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"glTilemap.d.ts","sourceRoot":"","sources":["../src/glTilemap.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAgD,cAAc,EAAW,MAAM,iBAAiB,CAAC;AA6F7G,eAAO,MAAM,wBAAwB,EAAE,cAItC,CAAC"}
|
package/dist/glTilemap.js
CHANGED
|
@@ -2,7 +2,7 @@ import { noopRendererData } from '@flighthq/render';
|
|
|
2
2
|
import { resolveGlMaterialRenderer } from '@flighthq/render-gl';
|
|
3
3
|
import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
4
4
|
import { BatchFormat } from '@flighthq/types';
|
|
5
|
-
import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite } from './glSpriteBatch';
|
|
5
|
+
import { ensureGlQuadBatchShader, packGlSpriteBatchMaterialInstance, prepareGlSpriteBatchWrite, recordGlSpriteBatchColorTransform, } from './glSpriteBatch';
|
|
6
6
|
const INSTANCE_FLOATS = 13;
|
|
7
7
|
function submitGlTilemap(state, tilemapNode) {
|
|
8
8
|
const runtime = getGlRenderStateRuntime(state);
|
|
@@ -21,7 +21,9 @@ function submitGlTilemap(state, tilemapNode) {
|
|
|
21
21
|
if (materialRenderer === null)
|
|
22
22
|
return;
|
|
23
23
|
const nodeMaterialData = tilemapNode.materialData;
|
|
24
|
-
|
|
24
|
+
// Per-tile color transforms, overriding the node-level tint for the tiles that carry one.
|
|
25
|
+
const perTileColorTransform = source.data.materialData;
|
|
26
|
+
const nodeColorTransform = tilemapNode.colorTransform;
|
|
25
27
|
const startCount = runtime.spriteBatchCount;
|
|
26
28
|
const base = prepareGlSpriteBatchWrite(state, atlas.image.source, tilemapNode.blendMode, material, materialRenderer, columns * rows);
|
|
27
29
|
const regions = atlas.regions;
|
|
@@ -58,8 +60,10 @@ function submitGlTilemap(state, tilemapNode) {
|
|
|
58
60
|
instanceData[writeBase + 10] = (region.x + region.width) * iw;
|
|
59
61
|
instanceData[writeBase + 11] = (region.y + region.height) * ih;
|
|
60
62
|
instanceData[writeBase + 12] = alpha;
|
|
61
|
-
|
|
62
|
-
|
|
63
|
+
packGlSpriteBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
|
|
64
|
+
// Per-tile tint overrides the node-level tint (null → the node's, itself possibly null → untinted).
|
|
65
|
+
const colorTransform = perTileColorTransform?.[row * columns + col] ?? nodeColorTransform;
|
|
66
|
+
recordGlSpriteBatchColorTransform(state, colorTransform, startCount + drawCount);
|
|
63
67
|
writeBase += INSTANCE_FLOATS;
|
|
64
68
|
drawCount++;
|
|
65
69
|
}
|
package/dist/glTilemap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glTilemap.js","sourceRoot":"","sources":["../src/glTilemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,
|
|
1
|
+
{"version":3,"file":"glTilemap.js","sourceRoot":"","sources":["../src/glTilemap.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
export * from './enableGlColorAdjustmentGuards';
|
|
1
2
|
export * from './glBitmap';
|
|
2
3
|
export * from './glCache';
|
|
3
4
|
export * from './glClip';
|
|
4
5
|
export * from './glClipContours';
|
|
5
6
|
export * from './glClipRectangle';
|
|
6
|
-
export * from './
|
|
7
|
+
export * from './glColorAdjustment';
|
|
7
8
|
export * from './glDefaultMaterial';
|
|
8
9
|
export * from './glDisplayObject';
|
|
9
10
|
export * from './glDisplayObjectRegistration';
|
|
10
|
-
export * from './glMaterials';
|
|
11
11
|
export * from './glParticleEmitter';
|
|
12
12
|
export * from './glQuadBatch';
|
|
13
13
|
export * from './glRichText';
|
|
@@ -21,7 +21,6 @@ export * from './glSpriteRenderer';
|
|
|
21
21
|
export * from './glTextInput';
|
|
22
22
|
export * from './glTextLabel';
|
|
23
23
|
export * from './glTilemap';
|
|
24
|
-
export * from './glUniformColorTransformMaterial';
|
|
25
24
|
export * from './glVelocity';
|
|
26
25
|
export * from './glVideo';
|
|
27
26
|
export { defaultCanvasBeginBitmapFill as defaultGlBeginBitmapFill, defaultCanvasBeginFill as defaultGlBeginFill, defaultCanvasBeginGradientFill as defaultGlBeginGradientFill, defaultCanvasCubicCurveTo as defaultGlCubicCurveTo, defaultCanvasCurveTo as defaultGlCurveTo, defaultCanvasDrawCircle as defaultGlDrawCircle, defaultCanvasDrawEllipse as defaultGlDrawEllipse, defaultCanvasDrawRectangle as defaultGlDrawRectangle, defaultCanvasDrawRoundRectangle as defaultGlDrawRoundRectangle, defaultCanvasEndFill as defaultGlEndFill, defaultCanvasLineStyle as defaultGlLineStyle, defaultCanvasLineTo as defaultGlLineTo, defaultCanvasMoveTo as defaultGlMoveTo, defaultCanvasShapeCommands as defaultGlShapeCommands, registerCanvasShapeCommands as registerGlShapeCommands, } from '@flighthq/displayobject-canvas';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAG1B,OAAO,EACL,4BAA4B,IAAI,wBAAwB,EACxD,sBAAsB,IAAI,kBAAkB,EAC5C,8BAA8B,IAAI,0BAA0B,EAC5D,yBAAyB,IAAI,qBAAqB,EAClD,oBAAoB,IAAI,gBAAgB,EACxC,uBAAuB,IAAI,mBAAmB,EAC9C,wBAAwB,IAAI,oBAAoB,EAChD,0BAA0B,IAAI,sBAAsB,EACpD,+BAA+B,IAAI,2BAA2B,EAC9D,oBAAoB,IAAI,gBAAgB,EACxC,sBAAsB,IAAI,kBAAkB,EAC5C,mBAAmB,IAAI,eAAe,EACtC,mBAAmB,IAAI,eAAe,EACtC,0BAA0B,IAAI,sBAAsB,EACpD,2BAA2B,IAAI,uBAAuB,GACvD,MAAM,gCAAgC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
export * from './enableGlColorAdjustmentGuards';
|
|
1
2
|
export * from './glBitmap';
|
|
2
3
|
export * from './glCache';
|
|
3
4
|
export * from './glClip';
|
|
4
5
|
export * from './glClipContours';
|
|
5
6
|
export * from './glClipRectangle';
|
|
6
|
-
export * from './
|
|
7
|
+
export * from './glColorAdjustment';
|
|
7
8
|
export * from './glDefaultMaterial';
|
|
8
9
|
export * from './glDisplayObject';
|
|
9
10
|
export * from './glDisplayObjectRegistration';
|
|
10
|
-
export * from './glMaterials';
|
|
11
11
|
export * from './glParticleEmitter';
|
|
12
12
|
export * from './glQuadBatch';
|
|
13
13
|
export * from './glRichText';
|
|
@@ -21,7 +21,6 @@ export * from './glSpriteRenderer';
|
|
|
21
21
|
export * from './glTextInput';
|
|
22
22
|
export * from './glTextLabel';
|
|
23
23
|
export * from './glTilemap';
|
|
24
|
-
export * from './glUniformColorTransformMaterial';
|
|
25
24
|
export * from './glVelocity';
|
|
26
25
|
export * from './glVideo';
|
|
27
26
|
// Re-export shape commands from canvas (shapes deferred to canvas for now)
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAE1B,2EAA2E;AAC3E,OAAO,EACL,4BAA4B,IAAI,wBAAwB,EACxD,sBAAsB,IAAI,kBAAkB,EAC5C,8BAA8B,IAAI,0BAA0B,EAC5D,yBAAyB,IAAI,qBAAqB,EAClD,oBAAoB,IAAI,gBAAgB,EACxC,uBAAuB,IAAI,mBAAmB,EAC9C,wBAAwB,IAAI,oBAAoB,EAChD,0BAA0B,IAAI,sBAAsB,EACpD,+BAA+B,IAAI,2BAA2B,EAC9D,oBAAoB,IAAI,gBAAgB,EACxC,sBAAsB,IAAI,kBAAkB,EAC5C,mBAAmB,IAAI,eAAe,EACtC,mBAAmB,IAAI,eAAe,EACtC,0BAA0B,IAAI,sBAAsB,EACpD,2BAA2B,IAAI,uBAAuB,GACvD,MAAM,gCAAgC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/displayobject-gl",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
|
+
"repository": {
|
|
5
|
+
"type": "git",
|
|
6
|
+
"url": "https://github.com/flighthq/flight.git",
|
|
7
|
+
"directory": "packages/displayobject-gl"
|
|
8
|
+
},
|
|
4
9
|
"type": "module",
|
|
5
10
|
"main": "dist/index.js",
|
|
6
11
|
"types": "dist/index.d.ts",
|
|
@@ -27,22 +32,24 @@
|
|
|
27
32
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
28
33
|
},
|
|
29
34
|
"dependencies": {
|
|
30
|
-
"@flighthq/displayobject": "0.
|
|
31
|
-
"@flighthq/displayobject-canvas": "0.
|
|
32
|
-
"@flighthq/geometry": "0.
|
|
33
|
-
"@flighthq/
|
|
34
|
-
"@flighthq/
|
|
35
|
-
"@flighthq/
|
|
36
|
-
"@flighthq/
|
|
37
|
-
"@flighthq/render
|
|
38
|
-
"@flighthq/
|
|
39
|
-
"@flighthq/
|
|
40
|
-
"@flighthq/
|
|
41
|
-
"@flighthq/
|
|
42
|
-
"@flighthq/
|
|
43
|
-
"@flighthq/
|
|
35
|
+
"@flighthq/displayobject": "0.2.0",
|
|
36
|
+
"@flighthq/displayobject-canvas": "0.2.0",
|
|
37
|
+
"@flighthq/geometry": "0.2.0",
|
|
38
|
+
"@flighthq/log": "0.2.0",
|
|
39
|
+
"@flighthq/materials": "0.2.0",
|
|
40
|
+
"@flighthq/node": "0.2.0",
|
|
41
|
+
"@flighthq/path": "0.2.0",
|
|
42
|
+
"@flighthq/render": "0.2.0",
|
|
43
|
+
"@flighthq/render-gl": "0.2.0",
|
|
44
|
+
"@flighthq/shape": "0.2.0",
|
|
45
|
+
"@flighthq/text": "0.2.0",
|
|
46
|
+
"@flighthq/textinput": "0.2.0",
|
|
47
|
+
"@flighthq/textlayout": "0.2.0",
|
|
48
|
+
"@flighthq/types": "0.2.0",
|
|
49
|
+
"@flighthq/velocity": "0.2.0"
|
|
44
50
|
},
|
|
45
51
|
"devDependencies": {
|
|
52
|
+
"@flighthq/particleemitter": "*",
|
|
46
53
|
"@flighthq/sprite": "*",
|
|
47
54
|
"typescript": "^5.3.0"
|
|
48
55
|
},
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { addLogSink, createMemoryLogSink, getMemoryLogSinkEntries, removeLogSink } from '@flighthq/log';
|
|
2
|
+
import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
3
|
+
import type { ColorTransform } from '@flighthq/types';
|
|
4
|
+
|
|
5
|
+
import { areGlColorAdjustmentGuardsEnabled, enableGlColorAdjustmentGuards } from './enableGlColorAdjustmentGuards';
|
|
6
|
+
import { recordGlSpriteBatchColorTransform } from './glSpriteBatch';
|
|
7
|
+
import { createGlState } from './glTestHelper';
|
|
8
|
+
|
|
9
|
+
function ct(): ColorTransform {
|
|
10
|
+
return {
|
|
11
|
+
redMultiplier: 0.5,
|
|
12
|
+
greenMultiplier: 0.5,
|
|
13
|
+
blueMultiplier: 0.5,
|
|
14
|
+
alphaMultiplier: 1,
|
|
15
|
+
redOffset: 0,
|
|
16
|
+
greenOffset: 0,
|
|
17
|
+
blueOffset: 0,
|
|
18
|
+
alphaOffset: 0,
|
|
19
|
+
} as ColorTransform;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
describe('areGlColorAdjustmentGuardsEnabled', () => {
|
|
23
|
+
it('reports false until guards are installed, then true', () => {
|
|
24
|
+
const { state } = createGlState();
|
|
25
|
+
expect(areGlColorAdjustmentGuardsEnabled(state)).toBe(false);
|
|
26
|
+
enableGlColorAdjustmentGuards(state);
|
|
27
|
+
expect(areGlColorAdjustmentGuardsEnabled(state)).toBe(true);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
describe('enableGlColorAdjustmentGuards', () => {
|
|
32
|
+
it('warns once when a color transform is recorded but color adjustment was never enabled', () => {
|
|
33
|
+
const { state } = createGlState();
|
|
34
|
+
const sink = createMemoryLogSink(8);
|
|
35
|
+
addLogSink(sink.sink);
|
|
36
|
+
try {
|
|
37
|
+
enableGlColorAdjustmentGuards(state);
|
|
38
|
+
recordGlSpriteBatchColorTransform(state, ct(), 0);
|
|
39
|
+
const entries = getMemoryLogSinkEntries(sink);
|
|
40
|
+
expect(entries.length).toBe(1);
|
|
41
|
+
const data = entries[0].data as Record<string, unknown>;
|
|
42
|
+
expect(String(data.message)).toContain('enableGlColorAdjustment');
|
|
43
|
+
} finally {
|
|
44
|
+
removeLogSink(sink.sink);
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('stays silent for an untinted instance', () => {
|
|
49
|
+
const { state } = createGlState();
|
|
50
|
+
const sink = createMemoryLogSink(8);
|
|
51
|
+
addLogSink(sink.sink);
|
|
52
|
+
try {
|
|
53
|
+
enableGlColorAdjustmentGuards(state);
|
|
54
|
+
recordGlSpriteBatchColorTransform(state, null, 0);
|
|
55
|
+
expect(getMemoryLogSinkEntries(sink).length).toBe(0);
|
|
56
|
+
} finally {
|
|
57
|
+
removeLogSink(sink.sink);
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it('does not warn when the guard slot is present but color adjustment is also enabled', () => {
|
|
62
|
+
const { state } = createGlState();
|
|
63
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
64
|
+
const sink = createMemoryLogSink(8);
|
|
65
|
+
addLogSink(sink.sink);
|
|
66
|
+
try {
|
|
67
|
+
enableGlColorAdjustmentGuards(state);
|
|
68
|
+
// Simulate the fold being installed so the dispatcher never reaches the guard branch.
|
|
69
|
+
runtime.glColorAdjustmentFold = { flush: () => false, record: () => {} };
|
|
70
|
+
recordGlSpriteBatchColorTransform(state, ct(), 0);
|
|
71
|
+
expect(getMemoryLogSinkEntries(sink).length).toBe(0);
|
|
72
|
+
} finally {
|
|
73
|
+
removeLogSink(sink.sink);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|