@flighthq/scene2d-gl 0.2.1-next.841.373388f → 0.3.0-next.1032.e2b99fc
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/contract.d.ts +25 -0
- package/dist/contract.d.ts.map +1 -0
- package/dist/contract.js +26 -0
- package/dist/contract.js.map +1 -0
- package/dist/enableGlColorAdjustmentGuards.d.ts +1 -1
- package/dist/enableGlColorAdjustmentGuards.d.ts.map +1 -1
- package/dist/enableGlColorAdjustmentGuards.js +8 -8
- package/dist/enableGlColorAdjustmentGuards.js.map +1 -1
- package/dist/glBitmapText.d.ts +3 -0
- package/dist/glBitmapText.d.ts.map +1 -0
- package/dist/glBitmapText.js +91 -0
- package/dist/glBitmapText.js.map +1 -0
- package/dist/glCache.d.ts +2 -1
- package/dist/glCache.d.ts.map +1 -1
- package/dist/glCache.js +57 -42
- package/dist/glCache.js.map +1 -1
- package/dist/glClip.d.ts +1 -1
- package/dist/glClip.d.ts.map +1 -1
- package/dist/glClip.js +1 -1
- package/dist/glClip.js.map +1 -1
- package/dist/glClipContours.d.ts +1 -1
- package/dist/glClipContours.d.ts.map +1 -1
- package/dist/glClipContours.js +5 -5
- package/dist/glClipContours.js.map +1 -1
- package/dist/glClipRectangle.d.ts +1 -1
- package/dist/glClipRectangle.d.ts.map +1 -1
- package/dist/glClipRectangle.js +11 -9
- package/dist/glClipRectangle.js.map +1 -1
- package/dist/glColorAdjustmentMaterialFeature.d.ts +3 -0
- package/dist/glColorAdjustmentMaterialFeature.d.ts.map +1 -0
- package/dist/glColorAdjustmentMaterialFeature.js +854 -0
- package/dist/glColorAdjustmentMaterialFeature.js.map +1 -0
- package/dist/glNode2D.d.ts +1 -1
- package/dist/glNode2D.d.ts.map +1 -1
- package/dist/glNode2D.js +5 -5
- package/dist/glNode2D.js.map +1 -1
- package/dist/glParticleEmitter2D.d.ts +1 -1
- package/dist/glParticleEmitter2D.d.ts.map +1 -1
- package/dist/glParticleEmitter2D.js +11 -11
- package/dist/glParticleEmitter2D.js.map +1 -1
- package/dist/glQuadBatch.d.ts +1 -1
- package/dist/glQuadBatch.d.ts.map +1 -1
- package/dist/glQuadBatch.js +27 -19
- package/dist/glQuadBatch.js.map +1 -1
- package/dist/{glSpriteBatch.d.ts → glQuadBatchWriter.d.ts} +6 -6
- package/dist/glQuadBatchWriter.d.ts.map +1 -0
- package/dist/{glSpriteBatch.js → glQuadBatchWriter.js} +97 -85
- package/dist/glQuadBatchWriter.js.map +1 -0
- package/dist/glRichText.d.ts +1 -1
- package/dist/glRichText.d.ts.map +1 -1
- package/dist/glRichText.js +8 -8
- package/dist/glRichText.js.map +1 -1
- package/dist/glScale9Mapper.d.ts +1 -1
- package/dist/glScale9Mapper.d.ts.map +1 -1
- package/dist/glScale9Shape.d.ts +2 -2
- package/dist/glScale9Shape.d.ts.map +1 -1
- package/dist/glScale9Shape.js +7 -7
- package/dist/glScale9Shape.js.map +1 -1
- package/dist/glShape.d.ts +1 -1
- package/dist/glShape.d.ts.map +1 -1
- package/dist/glShape.js +20 -18
- package/dist/glShape.js.map +1 -1
- package/dist/glShapeMesh.d.ts +1 -1
- package/dist/glShapeMesh.d.ts.map +1 -1
- package/dist/glShapeMesh.js +10 -10
- package/dist/glShapeMesh.js.map +1 -1
- package/dist/glSprite.d.ts +3 -2
- package/dist/glSprite.d.ts.map +1 -1
- package/dist/glSprite.js +57 -26
- package/dist/glSprite.js.map +1 -1
- package/dist/glStandardMaterial.d.ts +4 -0
- package/dist/glStandardMaterial.d.ts.map +1 -0
- package/dist/{glDefaultMaterial.js → glStandardMaterial.js} +9 -9
- package/dist/glStandardMaterial.js.map +1 -0
- package/dist/glTestHelper.d.ts +1 -1
- package/dist/glTestHelper.d.ts.map +1 -1
- package/dist/glTestHelper.js +1 -1
- package/dist/glTestHelper.js.map +1 -1
- package/dist/glTextInput.d.ts +1 -1
- package/dist/glTextInput.d.ts.map +1 -1
- package/dist/glTextInput.js +3 -3
- package/dist/glTextInput.js.map +1 -1
- package/dist/glTextLabel.d.ts +1 -1
- package/dist/glTextLabel.d.ts.map +1 -1
- package/dist/glTextLabel.js +21 -19
- package/dist/glTextLabel.js.map +1 -1
- package/dist/glTilemap.d.ts +1 -1
- package/dist/glTilemap.d.ts.map +1 -1
- package/dist/glTilemap.js +28 -24
- package/dist/glTilemap.js.map +1 -1
- package/dist/glVelocity.d.ts +1 -1
- package/dist/glVelocity.d.ts.map +1 -1
- package/dist/glVelocity.js +6 -6
- package/dist/glVelocity.js.map +1 -1
- package/dist/index.d.ts +1 -26
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -27
- package/dist/index.js.map +1 -1
- package/package.json +25 -19
- package/src/enableGlColorAdjustmentGuards.test.ts +26 -20
- package/src/glBitmapText.test.ts +103 -0
- package/src/glCache.test.ts +31 -19
- package/src/glClip.test.ts +4 -4
- package/src/glClipContours.test.ts +31 -2
- package/src/glClipRectangle.test.ts +11 -2
- package/src/glColorAdjustmentMaterialFeature.test.ts +225 -0
- package/src/glNode2D.test.ts +6 -6
- package/src/glParticleEmitter2D.test.ts +38 -22
- package/src/glQuadBatch.test.ts +41 -29
- package/src/{glSpriteBatch.test.ts → glQuadBatchWriter.test.ts} +104 -73
- package/src/glRichText.test.ts +4 -4
- package/src/glScale9Mapper.test.ts +1 -1
- package/src/glScale9Shape.test.ts +2 -2
- package/src/glShape.test.ts +20 -20
- package/src/glShapeMesh.test.ts +36 -36
- package/src/glSprite.test.ts +55 -67
- package/src/glStandardMaterial.test.ts +19 -0
- package/src/glTextInput.test.ts +3 -3
- package/src/glTextLabel.test.ts +23 -23
- package/src/glTilemap.test.ts +45 -48
- package/src/glVelocity.test.ts +9 -9
- package/dist/glBitmap.d.ts +0 -4
- package/dist/glBitmap.d.ts.map +0 -1
- package/dist/glBitmap.js +0 -93
- package/dist/glBitmap.js.map +0 -1
- package/dist/glColorAdjustment.d.ts +0 -3
- package/dist/glColorAdjustment.d.ts.map +0 -1
- package/dist/glColorAdjustment.js +0 -361
- package/dist/glColorAdjustment.js.map +0 -1
- package/dist/glDefaultMaterial.d.ts +0 -4
- package/dist/glDefaultMaterial.d.ts.map +0 -1
- package/dist/glDefaultMaterial.js.map +0 -1
- package/dist/glNode2DRegistration.d.ts +0 -25
- package/dist/glNode2DRegistration.d.ts.map +0 -1
- package/dist/glNode2DRegistration.js +0 -51
- package/dist/glNode2DRegistration.js.map +0 -1
- package/dist/glSpriteBatch.d.ts.map +0 -1
- package/dist/glSpriteBatch.js.map +0 -1
- package/dist/glSpriteRenderer.d.ts +0 -3
- package/dist/glSpriteRenderer.d.ts.map +0 -1
- package/dist/glSpriteRenderer.js +0 -54
- package/dist/glSpriteRenderer.js.map +0 -1
- package/dist/glVideo.d.ts +0 -6
- package/dist/glVideo.d.ts.map +0 -1
- package/dist/glVideo.js +0 -62
- package/dist/glVideo.js.map +0 -1
- package/src/glBitmap.test.ts +0 -136
- package/src/glColorAdjustment.test.ts +0 -166
- package/src/glDefaultMaterial.test.ts +0 -19
- package/src/glNode2DRegistration.test.ts +0 -132
- package/src/glSpriteRenderer.test.ts +0 -89
- package/src/glVideo.test.ts +0 -98
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export * from './enableGlColorAdjustmentGuards';
|
|
2
|
+
export * from './glSprite';
|
|
3
|
+
export * from './glBitmapText';
|
|
4
|
+
export * from './glCache';
|
|
5
|
+
export * from './glClip';
|
|
6
|
+
export * from './glClipContours';
|
|
7
|
+
export * from './glClipRectangle';
|
|
8
|
+
export * from './glColorAdjustmentMaterialFeature';
|
|
9
|
+
export * from './glStandardMaterial';
|
|
10
|
+
export * from './glNode2D';
|
|
11
|
+
export * from './glParticleEmitter2D';
|
|
12
|
+
export * from './glQuadBatch';
|
|
13
|
+
export * from './glRichText';
|
|
14
|
+
export * from './glScale9Mapper';
|
|
15
|
+
export * from './glScale9Shape';
|
|
16
|
+
export * from './glShape';
|
|
17
|
+
export * from './glShapeMesh';
|
|
18
|
+
export * from './glSprite';
|
|
19
|
+
export * from './glQuadBatchWriter';
|
|
20
|
+
export * from './glTextInput';
|
|
21
|
+
export * from './glTextLabel';
|
|
22
|
+
export * from './glTilemap';
|
|
23
|
+
export * from './glVelocity';
|
|
24
|
+
export { defaultCanvasBeginTextureFill as defaultGlBeginTextureFill, 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, defaultCanvasTextureShapeCommands as defaultGlTextureShapeCommands, registerCanvasShapeCommands as registerGlShapeCommands, } from '@flighthq/scene2d-canvas/contract';
|
|
25
|
+
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,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,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAG7B,OAAO,EACL,6BAA6B,IAAI,yBAAyB,EAC1D,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,iCAAiC,IAAI,6BAA6B,EAClE,2BAA2B,IAAI,uBAAuB,GACvD,MAAM,mCAAmC,CAAC"}
|
package/dist/contract.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export * from './enableGlColorAdjustmentGuards';
|
|
2
|
+
export * from './glSprite';
|
|
3
|
+
export * from './glBitmapText';
|
|
4
|
+
export * from './glCache';
|
|
5
|
+
export * from './glClip';
|
|
6
|
+
export * from './glClipContours';
|
|
7
|
+
export * from './glClipRectangle';
|
|
8
|
+
export * from './glColorAdjustmentMaterialFeature';
|
|
9
|
+
export * from './glStandardMaterial';
|
|
10
|
+
export * from './glNode2D';
|
|
11
|
+
export * from './glParticleEmitter2D';
|
|
12
|
+
export * from './glQuadBatch';
|
|
13
|
+
export * from './glRichText';
|
|
14
|
+
export * from './glScale9Mapper';
|
|
15
|
+
export * from './glScale9Shape';
|
|
16
|
+
export * from './glShape';
|
|
17
|
+
export * from './glShapeMesh';
|
|
18
|
+
export * from './glSprite';
|
|
19
|
+
export * from './glQuadBatchWriter';
|
|
20
|
+
export * from './glTextInput';
|
|
21
|
+
export * from './glTextLabel';
|
|
22
|
+
export * from './glTilemap';
|
|
23
|
+
export * from './glVelocity';
|
|
24
|
+
// Re-export shape commands from canvas (shapes deferred to canvas for now)
|
|
25
|
+
export { defaultCanvasBeginTextureFill as defaultGlBeginTextureFill, 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, defaultCanvasTextureShapeCommands as defaultGlTextureShapeCommands, registerCanvasShapeCommands as registerGlShapeCommands, } from '@flighthq/scene2d-canvas/contract';
|
|
26
|
+
//# sourceMappingURL=contract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,iCAAiC,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,sBAAsB,CAAC;AACrC,cAAc,YAAY,CAAC;AAC3B,cAAc,uBAAuB,CAAC;AACtC,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,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAE7B,2EAA2E;AAC3E,OAAO,EACL,6BAA6B,IAAI,yBAAyB,EAC1D,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,iCAAiC,IAAI,6BAA6B,EAClE,2BAA2B,IAAI,uBAAuB,GACvD,MAAM,mCAAmC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GlRenderState } from '@flighthq/types';
|
|
1
|
+
import type { GlRenderState } from '@flighthq/types/contract';
|
|
2
2
|
export declare function areGlColorAdjustmentGuardsEnabled(state: GlRenderState): boolean;
|
|
3
3
|
export declare function enableGlColorAdjustmentGuards(state: GlRenderState): void;
|
|
4
4
|
//# sourceMappingURL=enableGlColorAdjustmentGuards.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableGlColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableGlColorAdjustmentGuards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"enableGlColorAdjustmentGuards.d.ts","sourceRoot":"","sources":["../src/enableGlColorAdjustmentGuards.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAI9D,wBAAgB,iCAAiC,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAE/E;AAOD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAExE"}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { logOnce } from '@flighthq/log';
|
|
2
|
-
import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
3
|
-
import { LogLevel } from '@flighthq/types';
|
|
1
|
+
import { logOnce } from '@flighthq/log/contract';
|
|
2
|
+
import { getGlRenderStateRuntime } from '@flighthq/render-gl/contract';
|
|
3
|
+
import { LogLevel } from '@flighthq/types/contract';
|
|
4
4
|
// Returns whether color-adjustment guards are installed on `state` (enableGlColorAdjustmentGuards).
|
|
5
5
|
export function areGlColorAdjustmentGuardsEnabled(state) {
|
|
6
|
-
return getGlRenderStateRuntime(state).
|
|
6
|
+
return getGlRenderStateRuntime(state).glColorAdjustmentMaterialFeatureGuard != null;
|
|
7
7
|
}
|
|
8
|
-
// Installs the shakeable color-adjustment guard on `state`: when a node carries a color
|
|
9
|
-
//
|
|
8
|
+
// Installs the shakeable color-adjustment guard on `state`: when a node carries a color adjustment but
|
|
9
|
+
// registerGlColorAdjustmentMaterialFeature was never called, recordGlQuadBatchColorScaleBias reaches this guard
|
|
10
10
|
// through its nullable runtime slot and warns once (the tint is skipped, drawn untinted — the sentinel
|
|
11
11
|
// behavior, never a throw). Not calling this — the production default — costs the batch nothing, since
|
|
12
12
|
// the message and @flighthq/log dependency live only in this separately-imported module. Idempotent.
|
|
13
13
|
export function enableGlColorAdjustmentGuards(state) {
|
|
14
|
-
getGlRenderStateRuntime(state).
|
|
14
|
+
getGlRenderStateRuntime(state).glColorAdjustmentMaterialFeatureGuard = warnGlColorAdjustmentNotEnabled;
|
|
15
15
|
}
|
|
16
16
|
function warnGlColorAdjustmentNotEnabled() {
|
|
17
17
|
logOnce('scene2d-gl:color-adjustment-not-enabled', LogLevel.Warn, {
|
|
18
|
-
message: '
|
|
18
|
+
message: 'recordGlQuadBatchColorScaleBias: color adjustment present but GL color adjustment not enabled — call registerGlColorAdjustmentMaterialFeature(state)',
|
|
19
19
|
}, 'scene2d-gl');
|
|
20
20
|
}
|
|
21
21
|
//# sourceMappingURL=enableGlColorAdjustmentGuards.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"enableGlColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableGlColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"enableGlColorAdjustmentGuards.js","sourceRoot":"","sources":["../src/enableGlColorAdjustmentGuards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AAEpD,oGAAoG;AACpG,MAAM,UAAU,iCAAiC,CAAC,KAAoB;IACpE,OAAO,uBAAuB,CAAC,KAAK,CAAC,CAAC,qCAAqC,IAAI,IAAI,CAAC;AACtF,CAAC;AAED,uGAAuG;AACvG,gHAAgH;AAChH,uGAAuG;AACvG,uGAAuG;AACvG,qGAAqG;AACrG,MAAM,UAAU,6BAA6B,CAAC,KAAoB;IAChE,uBAAuB,CAAC,KAAK,CAAC,CAAC,qCAAqC,GAAG,+BAA+B,CAAC;AACzG,CAAC;AAED,SAAS,+BAA+B;IACtC,OAAO,CACL,yCAAyC,EACzC,QAAQ,CAAC,IAAI,EACb;QACE,OAAO,EACL,sJAAsJ;KACzJ,EACD,YAAY,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glBitmapText.d.ts","sourceRoot":"","sources":["../src/glBitmapText.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAsGlC,eAAO,MAAM,2BAA2B,EAAE,cAIzC,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { getGlRenderStateRuntime, resolveGlMaterialRenderer, resolveGlTexture } from '@flighthq/render-gl/contract';
|
|
2
|
+
import { noopRendererData } from '@flighthq/render/contract';
|
|
3
|
+
import { getNode2DRuntime } from '@flighthq/scene2d/contract';
|
|
4
|
+
import { getTextureHeight, getTextureWidth, hasTextureBacking } from '@flighthq/texture/contract';
|
|
5
|
+
import { BatchFormat } from '@flighthq/types/contract';
|
|
6
|
+
import { ensureGlQuadBatchShader, packGlQuadBatchMaterialInstance, prepareGlQuadBatchWrite, recordGlQuadBatchColorScaleBias, } from './glQuadBatchWriter';
|
|
7
|
+
// Per-instance stride, matching the QuadBatch/Tilemap sprite path (13 floats: world transform + region +
|
|
8
|
+
// uv + alpha). See glQuadBatch.
|
|
9
|
+
const INSTANCE_FLOATS = 13;
|
|
10
|
+
// Draws a BitmapText leaf: one batched sprite pass per glyph-atlas page (each page binds its own atlas
|
|
11
|
+
// image, so a multi-page source issues one draw per page). The node's resolved color adjustment folds in
|
|
12
|
+
// as a whole-node tint on every glyph — the same `recordGlQuadBatchColorScaleBias` path a tinted
|
|
13
|
+
// QuadBatch uses — realized only when `registerGlColorAdjustmentMaterialFeature` has installed the fold. Mirrors
|
|
14
|
+
// `submitGlQuadBatch`'s vector2 inner loop, sourced from the page's own `ids`/`transforms` arrays.
|
|
15
|
+
function submitGlBitmapText(state, node) {
|
|
16
|
+
const runtime = getGlRenderStateRuntime(state);
|
|
17
|
+
const source = node.source;
|
|
18
|
+
const pages = getNode2DRuntime(source).pages;
|
|
19
|
+
const material = node.material;
|
|
20
|
+
const materialRenderer = resolveGlMaterialRenderer(state, material);
|
|
21
|
+
if (materialRenderer === null)
|
|
22
|
+
return;
|
|
23
|
+
const nodeMaterialData = node.materialData;
|
|
24
|
+
const nodeColorScaleBias = node.colorMatrix ?? node.colorScaleBias;
|
|
25
|
+
const pt = node.transform2D;
|
|
26
|
+
const pa = pt.a;
|
|
27
|
+
const pb = pt.b;
|
|
28
|
+
const pc = pt.c;
|
|
29
|
+
const pd = pt.d;
|
|
30
|
+
const ptx = pt.tx;
|
|
31
|
+
const pty = pt.ty;
|
|
32
|
+
const alpha = node.alpha;
|
|
33
|
+
for (const page of pages) {
|
|
34
|
+
const atlas = page.atlas;
|
|
35
|
+
const texture = atlas.texture;
|
|
36
|
+
if (texture === null || !hasTextureBacking(texture) || page.instanceCount === 0)
|
|
37
|
+
continue;
|
|
38
|
+
const glTexture = resolveGlTexture(state, texture, true);
|
|
39
|
+
if (glTexture === null)
|
|
40
|
+
continue;
|
|
41
|
+
const straightAlpha = runtime.currentTextureStraightAlpha;
|
|
42
|
+
ensureGlQuadBatchShader(state);
|
|
43
|
+
// prepareGlQuadBatchWrite may flush the prior page's batch (each page binds a different image), so
|
|
44
|
+
// read the running instance count AFTER it so material/color-adjustment indices align with `base`.
|
|
45
|
+
const base = prepareGlQuadBatchWrite(state, glTexture, straightAlpha, texture.sampler, node.blendMode, material, materialRenderer, page.instanceCount);
|
|
46
|
+
const startCount = runtime.quadBatchWriterCount;
|
|
47
|
+
const regions = atlas.regions;
|
|
48
|
+
const numRegions = regions.length;
|
|
49
|
+
const iw = 1 / Math.max(1, getTextureWidth(texture));
|
|
50
|
+
const ih = 1 / Math.max(1, getTextureHeight(texture));
|
|
51
|
+
const instanceData = runtime.quadBatchWriterInstanceData;
|
|
52
|
+
const ids = page.ids;
|
|
53
|
+
const transforms = page.transforms;
|
|
54
|
+
let writeBase = base;
|
|
55
|
+
let drawCount = 0;
|
|
56
|
+
for (let i = 0; i < page.instanceCount; i++) {
|
|
57
|
+
const id = ids[i];
|
|
58
|
+
if (id < 0 || id >= numRegions)
|
|
59
|
+
continue;
|
|
60
|
+
const region = regions[id];
|
|
61
|
+
if (region.width <= 0 || region.height <= 0)
|
|
62
|
+
continue;
|
|
63
|
+
const dx = transforms[i * 2];
|
|
64
|
+
const dy = transforms[i * 2 + 1];
|
|
65
|
+
instanceData[writeBase] = pa;
|
|
66
|
+
instanceData[writeBase + 1] = pb;
|
|
67
|
+
instanceData[writeBase + 2] = pc;
|
|
68
|
+
instanceData[writeBase + 3] = pd;
|
|
69
|
+
instanceData[writeBase + 4] = pa * dx + pc * dy + ptx;
|
|
70
|
+
instanceData[writeBase + 5] = pb * dx + pd * dy + pty;
|
|
71
|
+
instanceData[writeBase + 6] = region.width;
|
|
72
|
+
instanceData[writeBase + 7] = region.height;
|
|
73
|
+
instanceData[writeBase + 8] = region.x * iw;
|
|
74
|
+
instanceData[writeBase + 9] = region.y * ih;
|
|
75
|
+
instanceData[writeBase + 10] = (region.x + region.width) * iw;
|
|
76
|
+
instanceData[writeBase + 11] = (region.y + region.height) * ih;
|
|
77
|
+
instanceData[writeBase + 12] = alpha;
|
|
78
|
+
packGlQuadBatchMaterialInstance(state, nodeMaterialData, startCount + drawCount);
|
|
79
|
+
recordGlQuadBatchColorScaleBias(state, nodeColorScaleBias, startCount + drawCount);
|
|
80
|
+
writeBase += INSTANCE_FLOATS;
|
|
81
|
+
drawCount++;
|
|
82
|
+
}
|
|
83
|
+
runtime.quadBatchWriterCount += drawCount;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export const defaultGlBitmapTextRenderer = {
|
|
87
|
+
format: BatchFormat.Quad,
|
|
88
|
+
createData: noopRendererData,
|
|
89
|
+
submit: submitGlBitmapText,
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=glBitmapText.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"glBitmapText.js","sourceRoot":"","sources":["../src/glBitmapText.ts"],"names":[],"mappings":"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"}
|
package/dist/glCache.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Node2D, Scene2DRenderer, GlRenderState, GlRenderTarget, RenderCache, RenderCacheRefreshOptions } from '@flighthq/types';
|
|
1
|
+
import type { Node2D, Scene2DRenderer, GlRenderState, GlRenderTarget, RenderCache, RenderCacheRefreshOptions } from '@flighthq/types/contract';
|
|
2
2
|
/**
|
|
3
3
|
* Creates an offscreen render state for baking render caches consumed by `screenState`.
|
|
4
4
|
*
|
|
@@ -16,6 +16,7 @@ export declare function enableGlRenderCache(state: GlRenderState): void;
|
|
|
16
16
|
* content prefer refreshGlRenderCache.
|
|
17
17
|
*/
|
|
18
18
|
export declare function ensureGlRenderCacheTarget(state: GlRenderState, cache: RenderCache, width: number, height: number): GlRenderTarget;
|
|
19
|
+
export declare function getGlRenderCacheScreenState(state: GlRenderState): GlRenderState;
|
|
19
20
|
export declare function getGlRenderCacheTarget(state: GlRenderState, cache: RenderCache): GlRenderTarget | null;
|
|
20
21
|
/**
|
|
21
22
|
* Bakes `source`'s subtree into its cache target using the offscreen `cacheState`, then records
|
package/dist/glCache.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glCache.d.ts","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,aAAa,EACb,cAAc,EAEd,WAAW,EACX,yBAAyB,EAE1B,MAAM,
|
|
1
|
+
{"version":3,"file":"glCache.d.ts","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,MAAM,EACN,eAAe,EACf,aAAa,EACb,cAAc,EAEd,WAAW,EACX,yBAAyB,EAE1B,MAAM,0BAA0B,CAAC;AAMlC;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,aAAa,GAAG,aAAa,CAsE5E;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAE9D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,cAAc,CAUhB;AAID,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa,CAE/E;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,IAAI,CAEtG;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,QAAQ,CAAC,yBAAyB,CAAC,GAC5C,OAAO,CAkDT;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAOnF;AA0BD,eAAO,MAAM,4BAA4B,EAAE,eAG1C,CAAC"}
|
package/dist/glCache.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { createMatrix, createRectangle } from '@flighthq/geometry';
|
|
2
|
-
import { computeNodeBoundsRectangle } from '@flighthq/node';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { EntityRuntimeKey } from '@flighthq/types';
|
|
1
|
+
import { createMatrix, createRectangle } from '@flighthq/geometry/contract';
|
|
2
|
+
import { computeNodeBoundsRectangle } from '@flighthq/node/contract';
|
|
3
|
+
import { createGlRenderStateRuntime, getGlRenderStateRuntime } from '@flighthq/render-gl/contract';
|
|
4
|
+
import { beginGlRenderPass, createGlRenderTarget, destroyGlRenderTarget, drawGlRenderTargetResult, endGlRenderPass, resizeGlRenderTarget, setGlRenderTransform2D, } from '@flighthq/render-gl/contract';
|
|
5
|
+
import { computeScene2DRenderTargetTransform, computeRenderCacheTransform, computeRenderTargetSize, copyAllRenderersFromRenderState, createRenderState, getRenderProxyCache, noopRendererData, prepareScene2DRender, registerRenderCacheRenderer, } from '@flighthq/render/contract';
|
|
6
|
+
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
7
7
|
import { renderGlScene2D } from './glNode2D';
|
|
8
|
-
import {
|
|
8
|
+
import { flushGlQuadBatchWriter } from './glQuadBatchWriter';
|
|
9
9
|
/**
|
|
10
10
|
* Creates an offscreen render state for baking render caches consumed by `screenState`.
|
|
11
11
|
*
|
|
@@ -39,16 +39,18 @@ export function createGlCacheState(screenState) {
|
|
|
39
39
|
cacheRuntime.particleInstanceData = screenRuntime.particleInstanceData;
|
|
40
40
|
cacheRuntime.quadBatchShader = screenRuntime.quadBatchShader;
|
|
41
41
|
cacheRuntime.quadBatchCornerBuffer = screenRuntime.quadBatchCornerBuffer;
|
|
42
|
-
cacheRuntime.
|
|
43
|
-
cacheRuntime.
|
|
42
|
+
cacheRuntime.colorScaleBiasInstancedShader = screenRuntime.colorScaleBiasInstancedShader;
|
|
43
|
+
cacheRuntime.uniformColorScaleBiasShader = screenRuntime.uniformColorScaleBiasShader;
|
|
44
44
|
// Propagate the opt-in color-adjustment fold + guard so tinted nodes inside a cached subtree fold
|
|
45
45
|
// the same way when baked offscreen. Their per-batch CT data lives on cacheRuntime, lazily grown.
|
|
46
|
-
cacheRuntime.
|
|
47
|
-
cacheRuntime.
|
|
46
|
+
cacheRuntime.glColorAdjustmentMaterialFeature = screenRuntime.glColorAdjustmentMaterialFeature;
|
|
47
|
+
cacheRuntime.glColorAdjustmentMaterialFeatureGuard = screenRuntime.glColorAdjustmentMaterialFeatureGuard;
|
|
48
48
|
cacheRuntime.materialRendererMap = screenRuntime.materialRendererMap;
|
|
49
49
|
cacheRuntime.materialBitmapShaderMap = screenRuntime.materialBitmapShaderMap;
|
|
50
50
|
cacheRuntime.shaderLoc = screenRuntime.shaderLoc;
|
|
51
51
|
cacheRuntime.textureCache = screenRuntime.textureCache;
|
|
52
|
+
cacheRuntime.glRenderTextureCache = screenRuntime.glRenderTextureCache ??= new WeakMap();
|
|
53
|
+
cacheRuntime.glRenderTextureGuard = screenRuntime.glRenderTextureGuard;
|
|
52
54
|
cacheRuntime.quadVertexBuffer = screenRuntime.quadVertexBuffer;
|
|
53
55
|
cacheRuntime.quadIndexBuffer = screenRuntime.quadIndexBuffer;
|
|
54
56
|
cacheRuntime.quadVertexData = screenRuntime.quadVertexData;
|
|
@@ -60,19 +62,22 @@ export function createGlCacheState(screenState) {
|
|
|
60
62
|
cacheRuntime.currentScissorRect = null;
|
|
61
63
|
cacheRuntime.currentTexture = null;
|
|
62
64
|
cacheRuntime.currentTextureStraightAlpha = false;
|
|
65
|
+
cacheRuntime.flushPendingDraws = null;
|
|
63
66
|
cacheRuntime.renderTargetViewport = null;
|
|
64
67
|
cacheRuntime.scissorStack = [];
|
|
65
|
-
cacheRuntime.
|
|
66
|
-
cacheRuntime.
|
|
67
|
-
cacheRuntime.
|
|
68
|
-
cacheRuntime.
|
|
69
|
-
cacheRuntime.
|
|
70
|
-
cacheRuntime.
|
|
71
|
-
cacheRuntime.
|
|
72
|
-
cacheRuntime.
|
|
73
|
-
cacheRuntime.
|
|
74
|
-
cacheRuntime.
|
|
75
|
-
cacheRuntime.
|
|
68
|
+
cacheRuntime.quadBatchWriterBlendMode = null;
|
|
69
|
+
cacheRuntime.quadBatchWriterMaterial = null;
|
|
70
|
+
cacheRuntime.quadBatchWriterMaterialRenderer = null;
|
|
71
|
+
cacheRuntime.quadBatchWriterMaterialFloats = 0;
|
|
72
|
+
cacheRuntime.quadBatchWriterMaterialData = new Float32Array(0);
|
|
73
|
+
cacheRuntime.quadBatchWriterMaterialBuffer = null;
|
|
74
|
+
cacheRuntime.quadBatchWriterCount = 0;
|
|
75
|
+
cacheRuntime.quadBatchWriterInstanceBuffer = null;
|
|
76
|
+
cacheRuntime.quadBatchWriterInstanceData = new Float32Array(0);
|
|
77
|
+
cacheRuntime.quadBatchWriterTexture = null;
|
|
78
|
+
cacheRuntime.quadBatchWriterSampler = null;
|
|
79
|
+
cacheRuntime.quadBatchWriterStraightAlpha = false;
|
|
80
|
+
cacheRuntime.quadBatchWriterSmoothing = null;
|
|
76
81
|
_cacheStateScreen.set(cacheState, screenState);
|
|
77
82
|
return cacheState;
|
|
78
83
|
}
|
|
@@ -96,6 +101,11 @@ export function ensureGlRenderCacheTarget(state, cache, width, height) {
|
|
|
96
101
|
}
|
|
97
102
|
return target;
|
|
98
103
|
}
|
|
104
|
+
// Cache rendering uses a second render state over the screen state's GL context. Backend resources
|
|
105
|
+
// that must remain visible while that cache state walks a subtree are owned by the screen state.
|
|
106
|
+
export function getGlRenderCacheScreenState(state) {
|
|
107
|
+
return _cacheStateScreen.get(state) ?? state;
|
|
108
|
+
}
|
|
99
109
|
export function getGlRenderCacheTarget(state, cache) {
|
|
100
110
|
return getTargets(state).get(cache) ?? null;
|
|
101
111
|
}
|
|
@@ -107,7 +117,7 @@ export function getGlRenderCacheTarget(state, cache) {
|
|
|
107
117
|
* cached GL state is reset afterward so it re-establishes cleanly on its next draw.
|
|
108
118
|
*/
|
|
109
119
|
export function refreshGlRenderCache(cacheState, cache, source, options) {
|
|
110
|
-
const screenState =
|
|
120
|
+
const screenState = getGlRenderCacheScreenState(cacheState);
|
|
111
121
|
const padding = options?.padding ?? 0;
|
|
112
122
|
const minWidth = options?.minWidth ?? 1;
|
|
113
123
|
const minHeight = options?.minHeight ?? 1;
|
|
@@ -122,24 +132,29 @@ export function refreshGlRenderCache(cacheState, cache, source, options) {
|
|
|
122
132
|
// retained cache content on the not-dirty path. The cache's local-space transform is set explicitly,
|
|
123
133
|
// since a pass no longer carries one.
|
|
124
134
|
beginGlRenderPass(cacheState, target, { preserveColor: true, preserveDepth: true });
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
135
|
+
let dirty = false;
|
|
136
|
+
try {
|
|
137
|
+
setGlRenderTransform2D(cacheState, _renderTransform);
|
|
138
|
+
dirty = prepareScene2DRender(cacheState, source);
|
|
139
|
+
if (dirty || resized) {
|
|
140
|
+
const cacheRuntime = getGlRenderStateRuntime(cacheState);
|
|
141
|
+
// The cache state shares the screen's GL context, so the actual GL program/blend/scissor are
|
|
142
|
+
// whatever the screen render (or a prior blur pass) last left — state this cache state does not
|
|
143
|
+
// track. Reset its cached GL state so the bake re-establishes everything instead of skipping a
|
|
144
|
+
// rebind and setting uniforms on the wrong program.
|
|
145
|
+
cacheRuntime.currentProgram = null;
|
|
146
|
+
cacheRuntime.currentTexture = null;
|
|
147
|
+
cacheRuntime.currentTextureStraightAlpha = false;
|
|
148
|
+
cacheRuntime.currentBlendMode = null;
|
|
149
|
+
cacheRuntime.currentScissorRect = null;
|
|
150
|
+
cacheState.gl.clearColor(0, 0, 0, 0);
|
|
151
|
+
cacheState.gl.clear(cacheState.gl.COLOR_BUFFER_BIT);
|
|
152
|
+
renderGlScene2D(cacheState, source);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
finally {
|
|
156
|
+
endGlRenderPass(cacheState);
|
|
141
157
|
}
|
|
142
|
-
endGlRenderPass(cacheState);
|
|
143
158
|
const screenRuntime = getGlRenderStateRuntime(screenState);
|
|
144
159
|
screenRuntime.currentBlendMode = null;
|
|
145
160
|
screenRuntime.currentProgram = null;
|
|
@@ -165,10 +180,10 @@ function drawGlRenderCache(state, renderProxy) {
|
|
|
165
180
|
if (target === undefined)
|
|
166
181
|
return;
|
|
167
182
|
// Drain pending batched geometry before the immediate composite quad. Like every other
|
|
168
|
-
// immediate-draw renderer (RichText,
|
|
183
|
+
// immediate-draw renderer (RichText, Scale9), this bypasses the quad-batch writer; without the
|
|
169
184
|
// flush the cached result draws ahead of geometry submitted earlier in the walk, which only
|
|
170
185
|
// flushes at the end — producing out-of-order replay (a doubled image on Gl).
|
|
171
|
-
|
|
186
|
+
flushGlQuadBatchWriter(state);
|
|
172
187
|
// renderProxy.transform2D already carries the cache placement transform (folded in by the
|
|
173
188
|
// adapter), so the target composites with an identity offset.
|
|
174
189
|
drawGlRenderTargetResult(state, renderProxy, target, _identity);
|
package/dist/glCache.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glCache.js","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"glCache.js","sourceRoot":"","sources":["../src/glCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACnG,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EACf,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,mCAAmC,EACnC,2BAA2B,EAC3B,uBAAuB,EACvB,+BAA+B,EAC/B,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAC;AAWnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAA0B;IAC3D,MAAM,aAAa,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC3D,MAAM,UAAU,GAAG,iBAAiB,CAAC;QACnC,cAAc,EAAE,WAAW,CAAC,cAAc;QAC1C,UAAU,EAAE,WAAW,CAAC,UAAU;QAClC,iBAAiB,EAAE,YAAY,EAAE;QACjC,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,oBAAoB,EAAE,WAAW,CAAC,oBAAoB;KACvD,CAAkB,CAAC;IAEpB,+FAA+F;IAC/F,oFAAoF;IACpF,MAAM,YAAY,GAAG,0BAA0B,EAAE,CAAC;IAClD,UAAU,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC;IAE5C,+BAA+B,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAEzD,UAAU,CAAC,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;IACtD,UAA4C,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACzE,UAA6C,CAAC,EAAE,GAAG,WAAW,CAAC,EAAE,CAAC;IACnE,YAAY,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IACrE,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IAC3D,YAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACvE,YAAY,CAAC,sBAAsB,GAAG,aAAa,CAAC,sBAAsB,CAAC;IAC3E,YAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACvE,YAAY,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;IAC7D,YAAY,CAAC,qBAAqB,GAAG,aAAa,CAAC,qBAAqB,CAAC;IACzE,YAAY,CAAC,6BAA6B,GAAG,aAAa,CAAC,6BAA6B,CAAC;IACzF,YAAY,CAAC,2BAA2B,GAAG,aAAa,CAAC,2BAA2B,CAAC;IACrF,kGAAkG;IAClG,kGAAkG;IAClG,YAAY,CAAC,gCAAgC,GAAG,aAAa,CAAC,gCAAgC,CAAC;IAC/F,YAAY,CAAC,qCAAqC,GAAG,aAAa,CAAC,qCAAqC,CAAC;IACzG,YAAY,CAAC,mBAAmB,GAAG,aAAa,CAAC,mBAAmB,CAAC;IACrE,YAAY,CAAC,uBAAuB,GAAG,aAAa,CAAC,uBAAuB,CAAC;IAC7E,YAAY,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC;IACjD,YAAY,CAAC,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC;IACvD,YAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,KAAK,IAAI,OAAO,EAAE,CAAC;IACzF,YAAY,CAAC,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC;IACvE,YAAY,CAAC,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC;IAC/D,YAAY,CAAC,eAAe,GAAG,aAAa,CAAC,eAAe,CAAC;IAC7D,YAAY,CAAC,cAAc,GAAG,aAAa,CAAC,cAAc,CAAC;IAC3D,YAAY,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAErD,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACrC,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAClC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACvC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;IACnC,YAAY,CAAC,2BAA2B,GAAG,KAAK,CAAC;IACjD,YAAY,CAAC,iBAAiB,GAAG,IAAI,CAAC;IACtC,YAAY,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACzC,YAAY,CAAC,YAAY,GAAG,EAAE,CAAC;IAC/B,YAAY,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAC7C,YAAY,CAAC,uBAAuB,GAAG,IAAI,CAAC;IAC5C,YAAY,CAAC,+BAA+B,GAAG,IAAI,CAAC;IACpD,YAAY,CAAC,6BAA6B,GAAG,CAAC,CAAC;IAC/C,YAAY,CAAC,2BAA2B,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/D,YAAY,CAAC,6BAA6B,GAAG,IAAI,CAAC;IAClD,YAAY,CAAC,oBAAoB,GAAG,CAAC,CAAC;IACtC,YAAY,CAAC,6BAA6B,GAAG,IAAI,CAAC;IAClD,YAAY,CAAC,2BAA2B,GAAG,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;IAC/D,YAAY,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAC3C,YAAY,CAAC,4BAA4B,GAAG,KAAK,CAAC;IAClD,YAAY,CAAC,wBAAwB,GAAG,IAAI,CAAC;IAE7C,iBAAiB,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,2BAA2B,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAC;AACnE,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAAoB,EACpB,KAAkB,EAClB,KAAa,EACb,MAAc;IAEd,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,GAAG,oBAAoB,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,mGAAmG;AACnG,iGAAiG;AACjG,MAAM,UAAU,2BAA2B,CAAC,KAAoB;IAC9D,OAAO,iBAAiB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,KAAoB,EAAE,KAAkB;IAC7E,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,UAAyB,EACzB,KAAkB,EAClB,MAAc,EACd,OAA6C;IAE7C,MAAM,WAAW,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;IAE1C,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACpD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEzF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,IAAI,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC;IAC5F,MAAM,MAAM,GAAG,yBAAyB,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE5E,mCAAmC,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACzF,2BAA2B,CAAC,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAExE,sGAAsG;IACtG,qGAAqG;IACrG,sCAAsC;IACtC,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACpF,IAAI,KAAK,GAAG,KAAK,CAAC;IAClB,IAAI,CAAC;QACH,sBAAsB,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;QACrD,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACjD,IAAI,KAAK,IAAI,OAAO,EAAE,CAAC;YACrB,MAAM,YAAY,GAAG,uBAAuB,CAAC,UAAU,CAAC,CAAC;YACzD,6FAA6F;YAC7F,gGAAgG;YAChG,+FAA+F;YAC/F,oDAAoD;YACpD,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;YACnC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC;YACnC,YAAY,CAAC,2BAA2B,GAAG,KAAK,CAAC;YACjD,YAAY,CAAC,gBAAgB,GAAG,IAAI,CAAC;YACrC,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;YACvC,UAAU,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,UAAU,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC;YACpD,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;YAAS,CAAC;QACT,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,aAAa,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC3D,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC;IACtC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;IACpC,aAAa,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACxC,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC;IACpC,aAAa,CAAC,2BAA2B,GAAG,KAAK,CAAC;IAClD,OAAO,KAAK,IAAI,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAoB,EAAE,KAAkB;IAC3E,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,0EAA0E;IAC1E,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB,EAAE,WAA0B;IACzE,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7D,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO;IAC3B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IACjC,uFAAuF;IACvF,+FAA+F;IAC/F,4FAA4F;IAC5F,8EAA8E;IAC9E,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAC9B,0FAA0F;IAC1F,8DAA8D;IAC9D,wBAAwB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,UAAU,CAAC,KAAoB;IACtC,IAAI,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,mBAAmB,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,MAAM,4BAA4B,GAAoB;IAC3D,UAAU,EAAE,gBAAgB;IAC5B,MAAM,EAAE,iBAAiB;CAC1B,CAAC;AAEF,uFAAuF;AACvF,+EAA+E;AAC/E,MAAM,mBAAmB,GAAG,IAAI,OAAO,EAAuD,CAAC;AAC/F,uFAAuF;AACvF,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAgC,CAAC;AACtE,MAAM,OAAO,GAAG,eAAe,EAAE,CAAC;AAClC,MAAM,gBAAgB,GAAG,YAAY,EAAY,CAAC;AAClD,MAAM,SAAS,GAAG,YAAY,EAAY,CAAC"}
|
package/dist/glClip.d.ts
CHANGED
package/dist/glClip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glClip.d.ts","sourceRoot":"","sources":["../src/glClip.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA4B,aAAa,EAAiB,MAAM,
|
|
1
|
+
{"version":3,"file":"glClip.d.ts","sourceRoot":"","sources":["../src/glClip.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAA4B,aAAa,EAAiB,MAAM,0BAA0B,CAAC;AAOvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAE9D"}
|
package/dist/glClip.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
1
|
+
import { getGlRenderStateRuntime } from '@flighthq/render-gl/contract';
|
|
2
2
|
import { popGlClipContours, pushGlClipContours } from './glClipContours';
|
|
3
3
|
import { popGlClipRectangle, pushGlClipRectangle } from './glClipRectangle';
|
|
4
4
|
// Clip support installs the unified clip hooks. Masks are RETIRED — a former mask is now a path
|
package/dist/glClip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glClip.js","sourceRoot":"","sources":["../src/glClip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"glClip.js","sourceRoot":"","sources":["../src/glClip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAE5E,gGAAgG;AAChG,gGAAgG;AAChG,MAAM,UAAU,mBAAmB,CAAC,KAAoB;IACtD,KAAK,CAAC,sBAAsB,GAAG,cAAc,CAAC;AAChD,CAAC;AAED,8FAA8F;AAC9F,mGAAmG;AACnG,8DAA8D;AAC9D,SAAS,YAAY,CAAC,KAAoB;IACxC,MAAM,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;IAC5D,IAAI,IAAI,KAAK,SAAS;QAAE,iBAAiB,CAAC,KAAK,CAAC,CAAC;;QAC5C,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,cAAc,GAAqB;IACvC,QAAQ,CAAC,KAAoB;QAC3B,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/C,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,CAAC,KAAoB,EAAE,IAAmB,EAAE,MAAc;QAC/D,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,MAAM;YAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,QAAQ,CAAC,KAAoB,EAAE,IAAmB,EAAE,MAAc;QAChE,MAAM,OAAO,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO;QAC1B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;YAC3B,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACxD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACzE,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF,CAAC"}
|
package/dist/glClipContours.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GlRenderState, Matrix, PathWinding } from '@flighthq/types';
|
|
1
|
+
import type { GlRenderState, Matrix, PathWinding } from '@flighthq/types/contract';
|
|
2
2
|
export declare function popGlClipContours(state: GlRenderState): void;
|
|
3
3
|
export declare function pushGlClipContours(state: GlRenderState, contours: readonly (readonly number[])[], winding: PathWinding, worldTransform: Readonly<Matrix>): void;
|
|
4
4
|
//# sourceMappingURL=glClipContours.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glClipContours.d.ts","sourceRoot":"","sources":["../src/glClipContours.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"glClipContours.d.ts","sourceRoot":"","sources":["../src/glClipContours.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAsCnF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAa5D;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,SAAS,CAAC,SAAS,MAAM,EAAE,CAAC,EAAE,EACxC,OAAO,EAAE,WAAW,EACpB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC/B,IAAI,CAiDN"}
|
package/dist/glClipContours.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { createGlProgram } from '@flighthq/render-gl';
|
|
2
|
-
import { getGlRenderStateRuntime } from '@flighthq/render-gl';
|
|
3
|
-
import {
|
|
1
|
+
import { createGlProgram } from '@flighthq/render-gl/contract';
|
|
2
|
+
import { getGlRenderStateRuntime } from '@flighthq/render-gl/contract';
|
|
3
|
+
import { flushGlQuadBatchWriter } from './glQuadBatchWriter';
|
|
4
4
|
// Stencil-then-cover fill of arbitrary flattened contours, used to realize a *path* ClipRegion exactly
|
|
5
5
|
// (crisp at any zoom — the contours are transformed in the vertex shader each frame, never cached as a
|
|
6
6
|
// texture). This is the contour counterpart to webglClipRectangle's scissor and replaces the old mask
|
|
@@ -33,7 +33,7 @@ precision mediump float;
|
|
|
33
33
|
void main() { gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); }
|
|
34
34
|
`;
|
|
35
35
|
export function popGlClipContours(state) {
|
|
36
|
-
|
|
36
|
+
flushGlQuadBatchWriter(state);
|
|
37
37
|
const runtime = getGlRenderStateRuntime(state);
|
|
38
38
|
const gl = state.gl;
|
|
39
39
|
const nextDepth = Math.max(0, (runtime.currentMaskDepth ?? 0) - 1);
|
|
@@ -47,7 +47,7 @@ export function popGlClipContours(state) {
|
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
49
|
export function pushGlClipContours(state, contours, winding, worldTransform) {
|
|
50
|
-
|
|
50
|
+
flushGlQuadBatchWriter(state);
|
|
51
51
|
const runtime = getGlRenderStateRuntime(state);
|
|
52
52
|
const gl = state.gl;
|
|
53
53
|
const depth = runtime.currentMaskDepth ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glClipContours.js","sourceRoot":"","sources":["../src/glClipContours.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"glClipContours.js","sourceRoot":"","sources":["../src/glClipContours.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GlRenderState, MatrixLike, RectangleLike } from '@flighthq/types';
|
|
1
|
+
import type { GlRenderState, MatrixLike, RectangleLike } from '@flighthq/types/contract';
|
|
2
2
|
export declare function popGlClipRectangle(state: GlRenderState): void;
|
|
3
3
|
export declare function pushGlClipRectangle(state: GlRenderState, rect: Readonly<RectangleLike>, transform: Readonly<MatrixLike>): void;
|
|
4
4
|
//# sourceMappingURL=glClipRectangle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glClipRectangle.d.ts","sourceRoot":"","sources":["../src/glClipRectangle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"glClipRectangle.d.ts","sourceRoot":"","sources":["../src/glClipRectangle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAc7D;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,aAAa,EACpB,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,EAC7B,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,GAC9B,IAAI,CAUN"}
|