@kurot/core 1.0.13 → 1.0.15
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 +63 -1
- package/dist/kurot/display/Bitmap.d.ts +0 -1
- package/dist/kurot/display/Bitmap.d.ts.map +1 -1
- package/dist/kurot/display/Bitmap.js +0 -3
- package/dist/kurot/display/Bitmap.js.map +1 -1
- package/dist/kurot/display/DisplayObject.d.ts +16 -35
- package/dist/kurot/display/DisplayObject.d.ts.map +1 -1
- package/dist/kurot/display/DisplayObject.js +6 -41
- package/dist/kurot/display/DisplayObject.js.map +1 -1
- package/dist/kurot/display/DisplayObjectContainer.d.ts +0 -10
- package/dist/kurot/display/DisplayObjectContainer.d.ts.map +1 -1
- package/dist/kurot/display/DisplayObjectContainer.js +0 -14
- package/dist/kurot/display/DisplayObjectContainer.js.map +1 -1
- package/dist/kurot/display/Graphics.d.ts +0 -1
- package/dist/kurot/display/Graphics.d.ts.map +1 -1
- package/dist/kurot/display/Graphics.js +0 -3
- package/dist/kurot/display/Graphics.js.map +1 -1
- package/dist/kurot/display/Mesh.d.ts +9 -3
- package/dist/kurot/display/Mesh.d.ts.map +1 -1
- package/dist/kurot/display/Mesh.js +9 -3
- package/dist/kurot/display/Mesh.js.map +1 -1
- package/dist/kurot/display/Stage.d.ts +0 -1
- package/dist/kurot/display/Stage.d.ts.map +1 -1
- package/dist/kurot/display/Stage.js +0 -2
- package/dist/kurot/display/Stage.js.map +1 -1
- package/dist/kurot/display/enums/BlendMode.d.ts.map +1 -1
- package/dist/kurot/display/enums/BlendMode.js +0 -2
- package/dist/kurot/display/enums/BlendMode.js.map +1 -1
- package/dist/kurot/display/texture/BitmapData.d.ts +1 -0
- package/dist/kurot/display/texture/BitmapData.d.ts.map +1 -1
- package/dist/kurot/display/texture/BitmapData.js +2 -0
- package/dist/kurot/display/texture/BitmapData.js.map +1 -1
- package/dist/kurot/display/texture/RenderTexture.d.ts +0 -1
- package/dist/kurot/display/texture/RenderTexture.d.ts.map +1 -1
- package/dist/kurot/display/texture/RenderTexture.js +0 -4
- package/dist/kurot/display/texture/RenderTexture.js.map +1 -1
- package/dist/kurot/display/texture/Texture.d.ts +9 -3
- package/dist/kurot/display/texture/Texture.d.ts.map +1 -1
- package/dist/kurot/display/texture/Texture.js +9 -3
- package/dist/kurot/display/texture/Texture.js.map +1 -1
- package/dist/kurot/events/Event.d.ts +3 -1
- package/dist/kurot/events/Event.d.ts.map +1 -1
- package/dist/kurot/events/Event.js +0 -2
- package/dist/kurot/events/Event.js.map +1 -1
- package/dist/kurot/events/EventDispatcher.d.ts.map +1 -1
- package/dist/kurot/events/EventDispatcher.js +0 -2
- package/dist/kurot/events/EventDispatcher.js.map +1 -1
- package/dist/kurot/events/TimerEvent.d.ts +0 -1
- package/dist/kurot/events/TimerEvent.d.ts.map +1 -1
- package/dist/kurot/events/TimerEvent.js +0 -1
- package/dist/kurot/events/TimerEvent.js.map +1 -1
- package/dist/kurot/events/TouchEvent.d.ts +0 -1
- package/dist/kurot/events/TouchEvent.d.ts.map +1 -1
- package/dist/kurot/events/TouchEvent.js +0 -1
- package/dist/kurot/events/TouchEvent.js.map +1 -1
- package/dist/kurot/filters/BlurFilter.d.ts.map +1 -1
- package/dist/kurot/filters/BlurFilter.js +0 -3
- package/dist/kurot/filters/BlurFilter.js.map +1 -1
- package/dist/kurot/filters/DropShadowFilter.d.ts.map +1 -1
- package/dist/kurot/filters/DropShadowFilter.js +0 -2
- package/dist/kurot/filters/DropShadowFilter.js.map +1 -1
- package/dist/kurot/geom/Matrix.d.ts +3 -9
- package/dist/kurot/geom/Matrix.d.ts.map +1 -1
- package/dist/kurot/geom/Matrix.js +3 -9
- package/dist/kurot/geom/Matrix.js.map +1 -1
- package/dist/kurot/geom/Point.d.ts +3 -1
- package/dist/kurot/geom/Point.d.ts.map +1 -1
- package/dist/kurot/geom/Point.js +3 -1
- package/dist/kurot/geom/Point.js.map +1 -1
- package/dist/kurot/geom/Rectangle.d.ts +3 -3
- package/dist/kurot/geom/Rectangle.d.ts.map +1 -1
- package/dist/kurot/geom/Rectangle.js +3 -3
- package/dist/kurot/geom/Rectangle.js.map +1 -1
- package/dist/kurot/media/Sound.d.ts.map +1 -1
- package/dist/kurot/media/Sound.js +1 -8
- package/dist/kurot/media/Sound.js.map +1 -1
- package/dist/kurot/media/SoundChannel.d.ts +0 -1
- package/dist/kurot/media/SoundChannel.d.ts.map +1 -1
- package/dist/kurot/media/SoundChannel.js +0 -3
- package/dist/kurot/media/SoundChannel.js.map +1 -1
- package/dist/kurot/media/Video.d.ts +21 -17
- package/dist/kurot/media/Video.d.ts.map +1 -1
- package/dist/kurot/media/Video.js +137 -106
- package/dist/kurot/media/Video.js.map +1 -1
- package/dist/kurot/player/InstructionSet.d.ts +4 -17
- package/dist/kurot/player/InstructionSet.d.ts.map +1 -1
- package/dist/kurot/player/InstructionSet.js +3 -20
- package/dist/kurot/player/InstructionSet.js.map +1 -1
- package/dist/kurot/player/KurotOptions.d.ts +24 -9
- package/dist/kurot/player/KurotOptions.d.ts.map +1 -1
- package/dist/kurot/player/Player.d.ts +15 -9
- package/dist/kurot/player/Player.d.ts.map +1 -1
- package/dist/kurot/player/Player.js +20 -22
- package/dist/kurot/player/Player.js.map +1 -1
- package/dist/kurot/player/RenderBuffer.d.ts +4 -14
- package/dist/kurot/player/RenderBuffer.d.ts.map +1 -1
- package/dist/kurot/player/RenderContext.d.ts +11 -27
- package/dist/kurot/player/RenderContext.d.ts.map +1 -1
- package/dist/kurot/player/RenderPipe.d.ts +3 -13
- package/dist/kurot/player/RenderPipe.d.ts.map +1 -1
- package/dist/kurot/player/ScreenAdapter.d.ts +6 -5
- package/dist/kurot/player/ScreenAdapter.d.ts.map +1 -1
- package/dist/kurot/player/ScreenAdapter.js +6 -15
- package/dist/kurot/player/ScreenAdapter.js.map +1 -1
- package/dist/kurot/player/SystemTicker.d.ts +13 -9
- package/dist/kurot/player/SystemTicker.d.ts.map +1 -1
- package/dist/kurot/player/SystemTicker.js +10 -13
- package/dist/kurot/player/SystemTicker.js.map +1 -1
- package/dist/kurot/player/TouchHandler.d.ts +3 -4
- package/dist/kurot/player/TouchHandler.d.ts.map +1 -1
- package/dist/kurot/player/TouchHandler.js +3 -12
- package/dist/kurot/player/TouchHandler.js.map +1 -1
- package/dist/kurot/player/canvas/CanvasBuffer.d.ts.map +1 -1
- package/dist/kurot/player/canvas/CanvasBuffer.js +0 -3
- package/dist/kurot/player/canvas/CanvasBuffer.js.map +1 -1
- package/dist/kurot/player/canvas/CanvasRenderer.d.ts +9 -17
- package/dist/kurot/player/canvas/CanvasRenderer.d.ts.map +1 -1
- package/dist/kurot/player/canvas/CanvasRenderer.js +182 -74
- package/dist/kurot/player/canvas/CanvasRenderer.js.map +1 -1
- package/dist/kurot/player/canvas/DisplayList.d.ts +1 -5
- package/dist/kurot/player/canvas/DisplayList.d.ts.map +1 -1
- package/dist/kurot/player/canvas/DisplayList.js +1 -5
- package/dist/kurot/player/canvas/DisplayList.js.map +1 -1
- package/dist/kurot/player/createPlayer.d.ts.map +1 -1
- package/dist/kurot/player/createPlayer.js +0 -2
- package/dist/kurot/player/createPlayer.js.map +1 -1
- package/dist/kurot/player/pipes/BitmapPipe.d.ts +3 -9
- package/dist/kurot/player/pipes/BitmapPipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/BitmapPipe.js +19 -33
- package/dist/kurot/player/pipes/BitmapPipe.js.map +1 -1
- package/dist/kurot/player/pipes/FilterPipe.d.ts +11 -28
- package/dist/kurot/player/pipes/FilterPipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/FilterPipe.js +8 -51
- package/dist/kurot/player/pipes/FilterPipe.js.map +1 -1
- package/dist/kurot/player/pipes/GraphicsPipe.d.ts +2 -7
- package/dist/kurot/player/pipes/GraphicsPipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/GraphicsPipe.js +28 -38
- package/dist/kurot/player/pipes/GraphicsPipe.js.map +1 -1
- package/dist/kurot/player/pipes/MaskPipe.d.ts +9 -14
- package/dist/kurot/player/pipes/MaskPipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/MaskPipe.js +24 -46
- package/dist/kurot/player/pipes/MaskPipe.js.map +1 -1
- package/dist/kurot/player/pipes/MeshPipe.d.ts +4 -1
- package/dist/kurot/player/pipes/MeshPipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/MeshPipe.js +20 -22
- package/dist/kurot/player/pipes/MeshPipe.js.map +1 -1
- package/dist/kurot/player/pipes/ParticlePipe.d.ts +1 -2
- package/dist/kurot/player/pipes/ParticlePipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/ParticlePipe.js +6 -14
- package/dist/kurot/player/pipes/ParticlePipe.js.map +1 -1
- package/dist/kurot/player/pipes/TextPipe.d.ts +3 -23
- package/dist/kurot/player/pipes/TextPipe.d.ts.map +1 -1
- package/dist/kurot/player/pipes/TextPipe.js +31 -74
- package/dist/kurot/player/pipes/TextPipe.js.map +1 -1
- package/dist/kurot/player/webgl/MultiTextureBatcher.d.ts +1 -12
- package/dist/kurot/player/webgl/MultiTextureBatcher.d.ts.map +1 -1
- package/dist/kurot/player/webgl/MultiTextureBatcher.js +2 -11
- package/dist/kurot/player/webgl/MultiTextureBatcher.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLDrawCmdManager.d.ts +4 -4
- package/dist/kurot/player/webgl/WebGLDrawCmdManager.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLDrawCmdManager.js +11 -10
- package/dist/kurot/player/webgl/WebGLDrawCmdManager.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLProgram.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLProgram.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderBuffer.d.ts +2 -0
- package/dist/kurot/player/webgl/WebGLRenderBuffer.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderBuffer.js +9 -6
- package/dist/kurot/player/webgl/WebGLRenderBuffer.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderContext.d.ts +15 -43
- package/dist/kurot/player/webgl/WebGLRenderContext.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderContext.js +39 -116
- package/dist/kurot/player/webgl/WebGLRenderContext.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderTarget.d.ts +2 -0
- package/dist/kurot/player/webgl/WebGLRenderTarget.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderTarget.js +6 -0
- package/dist/kurot/player/webgl/WebGLRenderTarget.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderer.d.ts +3 -147
- package/dist/kurot/player/webgl/WebGLRenderer.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLRenderer.js +6 -210
- package/dist/kurot/player/webgl/WebGLRenderer.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLUtils.d.ts +4 -4
- package/dist/kurot/player/webgl/WebGLUtils.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLUtils.js +3 -2
- package/dist/kurot/player/webgl/WebGLUtils.js.map +1 -1
- package/dist/kurot/player/webgl/WebGLVertexArrayObject.d.ts +6 -2
- package/dist/kurot/player/webgl/WebGLVertexArrayObject.d.ts.map +1 -1
- package/dist/kurot/player/webgl/WebGLVertexArrayObject.js +6 -11
- package/dist/kurot/player/webgl/WebGLVertexArrayObject.js.map +1 -1
- package/dist/kurot/player/webgl/shaders/ShaderLib.d.ts +1 -2
- package/dist/kurot/player/webgl/shaders/ShaderLib.d.ts.map +1 -1
- package/dist/kurot/player/webgl/shaders/ShaderLib.js +1 -6
- package/dist/kurot/player/webgl/shaders/ShaderLib.js.map +1 -1
- package/dist/kurot/player/webgl/shaders/ShaderLib2.d.ts +1 -2
- package/dist/kurot/player/webgl/shaders/ShaderLib2.d.ts.map +1 -1
- package/dist/kurot/player/webgl/shaders/ShaderLib2.js +1 -13
- package/dist/kurot/player/webgl/shaders/ShaderLib2.js.map +1 -1
- package/dist/kurot/player/webgl/shaders/index.d.ts.map +1 -1
- package/dist/kurot/player/webgl/shaders/index.js +0 -2
- package/dist/kurot/player/webgl/shaders/index.js.map +1 -1
- package/dist/kurot/resource/Resource.d.ts +1 -1
- package/dist/kurot/resource/Resource.d.ts.map +1 -1
- package/dist/kurot/resource/Resource.js +1 -12
- package/dist/kurot/resource/Resource.js.map +1 -1
- package/dist/kurot/resource/ResourceEvent.d.ts +15 -5
- package/dist/kurot/resource/ResourceEvent.d.ts.map +1 -1
- package/dist/kurot/resource/ResourceLoader.d.ts +15 -24
- package/dist/kurot/resource/ResourceLoader.d.ts.map +1 -1
- package/dist/kurot/resource/ResourceLoader.js +17 -35
- package/dist/kurot/resource/ResourceLoader.js.map +1 -1
- package/dist/kurot/resource/analyzers/AnalyzerBase.d.ts +3 -4
- package/dist/kurot/resource/analyzers/AnalyzerBase.d.ts.map +1 -1
- package/dist/kurot/resource/analyzers/AnalyzerBase.js +3 -5
- package/dist/kurot/resource/analyzers/AnalyzerBase.js.map +1 -1
- package/dist/kurot/resource/analyzers/ImageAnalyzer.d.ts.map +1 -1
- package/dist/kurot/resource/analyzers/ImageAnalyzer.js +0 -1
- package/dist/kurot/resource/analyzers/ImageAnalyzer.js.map +1 -1
- package/dist/kurot/resource/analyzers/SheetAnalyzer.d.ts +6 -5
- package/dist/kurot/resource/analyzers/SheetAnalyzer.d.ts.map +1 -1
- package/dist/kurot/resource/analyzers/SheetAnalyzer.js +6 -12
- package/dist/kurot/resource/analyzers/SheetAnalyzer.js.map +1 -1
- package/dist/kurot/resource/analyzers/SoundAnalyzer.d.ts.map +1 -1
- package/dist/kurot/resource/analyzers/SoundAnalyzer.js +0 -1
- package/dist/kurot/resource/analyzers/SoundAnalyzer.js.map +1 -1
- package/dist/kurot/resource/index.d.ts.map +1 -1
- package/dist/kurot/resource/index.js +0 -3
- package/dist/kurot/resource/index.js.map +1 -1
- package/dist/kurot/system/Capabilities.d.ts +11 -13
- package/dist/kurot/system/Capabilities.d.ts.map +1 -1
- package/dist/kurot/system/Capabilities.js +12 -18
- package/dist/kurot/system/Capabilities.js.map +1 -1
- package/dist/kurot/text/BitmapFont.d.ts +0 -1
- package/dist/kurot/text/BitmapFont.d.ts.map +1 -1
- package/dist/kurot/text/BitmapFont.js +0 -2
- package/dist/kurot/text/BitmapFont.js.map +1 -1
- package/dist/kurot/text/BitmapText.d.ts +0 -5
- package/dist/kurot/text/BitmapText.d.ts.map +1 -1
- package/dist/kurot/text/BitmapText.js +0 -6
- package/dist/kurot/text/BitmapText.js.map +1 -1
- package/dist/kurot/text/HtmlTextParser.d.ts +3 -1
- package/dist/kurot/text/HtmlTextParser.d.ts.map +1 -1
- package/dist/kurot/text/HtmlTextParser.js +3 -1
- package/dist/kurot/text/HtmlTextParser.js.map +1 -1
- package/dist/kurot/text/InputController.d.ts.map +1 -1
- package/dist/kurot/text/InputController.js +0 -2
- package/dist/kurot/text/InputController.js.map +1 -1
- package/dist/kurot/text/StageText.d.ts +1 -20
- package/dist/kurot/text/StageText.d.ts.map +1 -1
- package/dist/kurot/text/StageText.js +2 -46
- package/dist/kurot/text/StageText.js.map +1 -1
- package/dist/kurot/text/TextField.d.ts +0 -12
- package/dist/kurot/text/TextField.d.ts.map +1 -1
- package/dist/kurot/text/TextField.js +0 -41
- package/dist/kurot/text/TextField.js.map +1 -1
- package/dist/kurot/text/WordWrap.d.ts +0 -1
- package/dist/kurot/text/WordWrap.d.ts.map +1 -1
- package/dist/kurot/text/WordWrap.js +0 -3
- package/dist/kurot/text/WordWrap.js.map +1 -1
- package/dist/kurot/utils/Base64Util.d.ts +1 -6
- package/dist/kurot/utils/Base64Util.d.ts.map +1 -1
- package/dist/kurot/utils/Base64Util.js +1 -7
- package/dist/kurot/utils/Base64Util.js.map +1 -1
- package/dist/kurot/utils/DebugLog.js +0 -1
- package/dist/kurot/utils/DebugLog.js.map +1 -1
- package/dist/kurot/utils/FontManager.d.ts.map +1 -1
- package/dist/kurot/utils/FontManager.js +3 -1
- package/dist/kurot/utils/FontManager.js.map +1 -1
- package/dist/kurot/utils/NumberUtils.d.ts.map +1 -1
- package/dist/kurot/utils/NumberUtils.js +0 -1
- package/dist/kurot/utils/NumberUtils.js.map +1 -1
- package/package.json +17 -5
- package/dist/kurot/benchmark/BenchmarkRunner.d.ts +0 -60
- package/dist/kurot/benchmark/BenchmarkRunner.d.ts.map +0 -1
- package/dist/kurot/benchmark/BenchmarkRunner.js +0 -112
- package/dist/kurot/benchmark/BenchmarkRunner.js.map +0 -1
- package/dist/kurot/benchmark/MetricsCollector.d.ts +0 -34
- package/dist/kurot/benchmark/MetricsCollector.d.ts.map +0 -1
- package/dist/kurot/benchmark/MetricsCollector.js +0 -123
- package/dist/kurot/benchmark/MetricsCollector.js.map +0 -1
- package/dist/kurot/benchmark/PerfPanel.d.ts +0 -24
- package/dist/kurot/benchmark/PerfPanel.d.ts.map +0 -1
- package/dist/kurot/benchmark/PerfPanel.js +0 -131
- package/dist/kurot/benchmark/PerfPanel.js.map +0 -1
- package/dist/kurot/benchmark/ReportExporter.d.ts +0 -8
- package/dist/kurot/benchmark/ReportExporter.d.ts.map +0 -1
- package/dist/kurot/benchmark/ReportExporter.js +0 -54
- package/dist/kurot/benchmark/ReportExporter.js.map +0 -1
- package/dist/kurot/benchmark/SceneRegistry.d.ts +0 -16
- package/dist/kurot/benchmark/SceneRegistry.d.ts.map +0 -1
- package/dist/kurot/benchmark/SceneRegistry.js +0 -233
- package/dist/kurot/benchmark/SceneRegistry.js.map +0 -1
- package/dist/kurot/benchmark/types.d.ts +0 -47
- package/dist/kurot/benchmark/types.d.ts.map +0 -1
- package/dist/kurot/benchmark/types.js +0 -2
- package/dist/kurot/benchmark/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskPipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/MaskPipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAK9C,OAAO,EAAE,iBAAiB,IAAI,MAAM,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,sBAAsB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"MaskPipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/MaskPipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,14 +9,17 @@ export interface MeshInstruction extends Instruction {
|
|
|
9
9
|
offsetX: number;
|
|
10
10
|
offsetY: number;
|
|
11
11
|
}
|
|
12
|
+
/**
|
|
13
|
+
* Draws textured mesh instructions through a render buffer.
|
|
14
|
+
*/
|
|
12
15
|
export declare class MeshPipe implements RenderPipe<Mesh> {
|
|
13
16
|
static readonly PIPE_ID = "mesh";
|
|
14
17
|
private static readonly _pool;
|
|
15
|
-
private static _alloc;
|
|
16
18
|
static release(inst: MeshInstruction): void;
|
|
17
19
|
addToInstructionSet(mesh: Mesh, set: InstructionSet): void;
|
|
18
20
|
updateRenderable(_mesh: Mesh): void;
|
|
19
21
|
destroyRenderable(_mesh: Mesh): void;
|
|
20
22
|
execute(inst: MeshInstruction, buffer: RenderBuffer): void;
|
|
23
|
+
private static _alloc;
|
|
21
24
|
}
|
|
22
25
|
//# sourceMappingURL=MeshPipe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshPipe.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/MeshPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"MeshPipe.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/MeshPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IACnD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,QAAS,YAAW,UAAU,CAAC,IAAI,CAAC;IAGhD,gBAAuB,OAAO,UAAU;IAExC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyB;WAIxC,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI3C,mBAAmB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAO1D,gBAAgB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAEnC,iBAAiB,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAEpC,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAsCjE,OAAO,CAAC,MAAM,CAAC,MAAM;CAYrB"}
|
|
@@ -1,36 +1,22 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Draws textured mesh instructions through a render buffer.
|
|
3
|
+
*/
|
|
2
4
|
export class MeshPipe {
|
|
5
|
+
// ── Static fields ─────────────────────────────────────────────────────────
|
|
3
6
|
static PIPE_ID = 'mesh';
|
|
4
7
|
static _pool = [];
|
|
5
|
-
|
|
6
|
-
const inst = MeshPipe._pool.pop() ?? {
|
|
7
|
-
renderPipeId: 'mesh',
|
|
8
|
-
renderable: mesh,
|
|
9
|
-
offsetX: ox,
|
|
10
|
-
offsetY: oy,
|
|
11
|
-
};
|
|
12
|
-
inst.renderable = mesh;
|
|
13
|
-
inst.offsetX = ox;
|
|
14
|
-
inst.offsetY = oy;
|
|
15
|
-
return inst;
|
|
16
|
-
}
|
|
8
|
+
// ── Public methods ────────────────────────────────────────────────────────
|
|
17
9
|
static release(inst) {
|
|
18
10
|
MeshPipe._pool.push(inst);
|
|
19
11
|
}
|
|
20
|
-
// ── RenderPipe impl ───────────────────────────────────────────────────────
|
|
21
12
|
addToInstructionSet(mesh, set) {
|
|
22
13
|
if (!mesh.bitmapData?.source || mesh.vertices.length === 0 || mesh.indices.length === 0) {
|
|
23
14
|
return;
|
|
24
15
|
}
|
|
25
16
|
set.add(MeshPipe._alloc(mesh, 0, 0));
|
|
26
17
|
}
|
|
27
|
-
updateRenderable(_mesh) {
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
destroyRenderable(_mesh) {
|
|
31
|
-
// GPU textures managed by BitmapData lifecycle.
|
|
32
|
-
}
|
|
33
|
-
// ── Execute ───────────────────────────────────────────────────────────────
|
|
18
|
+
updateRenderable(_mesh) { }
|
|
19
|
+
destroyRenderable(_mesh) { }
|
|
34
20
|
execute(inst, buffer) {
|
|
35
21
|
const mesh = inst.renderable;
|
|
36
22
|
const bd = mesh.bitmapData;
|
|
@@ -39,12 +25,24 @@ export class MeshPipe {
|
|
|
39
25
|
}
|
|
40
26
|
const destW = !isNaN(mesh.width) ? mesh.width : mesh.textureWidth;
|
|
41
27
|
const destH = !isNaN(mesh.height) ? mesh.height : mesh.textureHeight;
|
|
42
|
-
// offsetX/Y are already baked into globalMatrix via _applyTransform.
|
|
43
28
|
buffer.offsetX = 0;
|
|
44
29
|
buffer.offsetY = 0;
|
|
45
30
|
buffer.context.drawMesh(bd, mesh.bitmapX, mesh.bitmapY, mesh.bitmapWidth, mesh.bitmapHeight, mesh.bitmapOffsetX, mesh.bitmapOffsetY, destW, destH, mesh.sourceWidth, mesh.sourceHeight, mesh.uvs, mesh.vertices, mesh.indices, mesh.texture?.rotated ?? false, mesh.smoothing);
|
|
46
31
|
buffer.offsetX = 0;
|
|
47
32
|
buffer.offsetY = 0;
|
|
48
33
|
}
|
|
34
|
+
// ── Private methods ───────────────────────────────────────────────────────
|
|
35
|
+
static _alloc(mesh, ox, oy) {
|
|
36
|
+
const inst = MeshPipe._pool.pop() ?? {
|
|
37
|
+
renderPipeId: 'mesh',
|
|
38
|
+
renderable: mesh,
|
|
39
|
+
offsetX: ox,
|
|
40
|
+
offsetY: oy,
|
|
41
|
+
};
|
|
42
|
+
inst.renderable = mesh;
|
|
43
|
+
inst.offsetX = ox;
|
|
44
|
+
inst.offsetY = oy;
|
|
45
|
+
return inst;
|
|
46
|
+
}
|
|
49
47
|
}
|
|
50
48
|
//# sourceMappingURL=MeshPipe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MeshPipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/MeshPipe.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MeshPipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/MeshPipe.ts"],"names":[],"mappings":"AAcA;;GAEG;AACH,MAAM,OAAO,QAAQ;IAEjB,6EAA6E;IACzE,MAAM,CAAU,OAAO,GAAG,MAAM,CAAC;IAEhC,MAAM,CAAU,KAAK,GAAsB,EAAE,CAAC;IAEtD,6EAA6E;IAEtE,MAAM,CAAC,OAAO,CAAC,IAAqB;QAC1C,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3B,CAAC;IAEM,mBAAmB,CAAC,IAAU,EAAE,GAAmB;QACzD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzF,OAAO;QACR,CAAC;QACD,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;IAEM,gBAAgB,CAAC,KAAW,IAAS,CAAC;IAEtC,iBAAiB,CAAC,KAAW,IAAS,CAAC;IAEvC,OAAO,CAAC,IAAqB,EAAE,MAAoB;QACzD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,EAAE,EAAE,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5E,OAAO;QACR,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;QAClE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;QAErE,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACnB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QAEnB,MAAM,CAAC,OAAO,CAAC,QAAQ,CACtB,EAAE,EACF,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,EAClB,IAAI,CAAC,aAAa,EAClB,KAAK,EACL,KAAK,EACL,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,EACb,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,KAAK,EAC9B,IAAI,CAAC,SAAS,CACd,CAAC;QAEF,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;QACnB,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IACpB,CAAC;IAED,6EAA6E;IAErE,MAAM,CAAC,MAAM,CAAC,IAAU,EAAE,EAAU,EAAE,EAAU;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI;YACpC,YAAY,EAAE,MAAM;YACpB,UAAU,EAAE,IAAI;YAChB,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,EAAE;SACX,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC;IACb,CAAC"}
|
|
@@ -10,8 +10,7 @@ export interface ParticleInstruction extends Instruction {
|
|
|
10
10
|
offsetY: number;
|
|
11
11
|
}
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
* The ParticleSystem lives in @kurot/game; core accesses it via duck-typing.
|
|
13
|
+
* Draws particle systems supplied through the game package's structural contract.
|
|
15
14
|
*/
|
|
16
15
|
export declare class ParticlePipe implements RenderPipe<DisplayObject> {
|
|
17
16
|
static readonly PIPE_ID = "particle";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticlePipe.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/ParticlePipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ParticlePipe.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/ParticlePipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAInD,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,UAAU,CAAC,aAAa,CAAC;IAG7D,gBAAuB,OAAO,cAAc;IAIrC,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI;IAEnE,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAE1C,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAE3C,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;CA6DrE"}
|
|
@@ -1,22 +1,14 @@
|
|
|
1
1
|
import { Matrix } from '../../geom/Matrix.js';
|
|
2
|
-
// ── Pipe ──────────────────────────────────────────────────────────────────────
|
|
3
2
|
/**
|
|
4
|
-
*
|
|
5
|
-
* The ParticleSystem lives in @kurot/game; core accesses it via duck-typing.
|
|
3
|
+
* Draws particle systems supplied through the game package's structural contract.
|
|
6
4
|
*/
|
|
7
5
|
export class ParticlePipe {
|
|
6
|
+
// ── Static fields ─────────────────────────────────────────────────────────
|
|
8
7
|
static PIPE_ID = 'particle';
|
|
9
|
-
// ──
|
|
10
|
-
addToInstructionSet(_ps, _set) {
|
|
11
|
-
|
|
12
|
-
}
|
|
13
|
-
updateRenderable(_ps) {
|
|
14
|
-
/* no-op */
|
|
15
|
-
}
|
|
16
|
-
destroyRenderable(_ps) {
|
|
17
|
-
/* no-op */
|
|
18
|
-
}
|
|
19
|
-
// ── Execute ───────────────────────────────────────────────────────────────
|
|
8
|
+
// ── Public methods ────────────────────────────────────────────────────────
|
|
9
|
+
addToInstructionSet(_ps, _set) { }
|
|
10
|
+
updateRenderable(_ps) { }
|
|
11
|
+
destroyRenderable(_ps) { }
|
|
20
12
|
execute(inst, buffer) {
|
|
21
13
|
const ps = inst.renderable;
|
|
22
14
|
if (ps.numParticles === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticlePipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/ParticlePipe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"ParticlePipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/ParticlePipe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAS9C;;GAEG;AACH,MAAM,OAAO,YAAY;IAErB,6EAA6E;IACzE,MAAM,CAAU,OAAO,GAAG,UAAU,CAAC;IAE5C,6EAA6E;IAEtE,mBAAmB,CAAC,GAAkB,EAAE,IAAoB,IAAS,CAAC;IAEtE,gBAAgB,CAAC,GAAkB,IAAS,CAAC;IAE7C,iBAAiB,CAAC,GAAkB,IAAS,CAAC;IAE9C,OAAO,CAAC,IAAyB,EAAE,MAAoB;QAC7D,MAAM,EAAE,GAAG,IAAI,CAAC,UAYf,CAAC;QAEF,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,EAAE,EAAE,MAAM;YAAE,OAAO;QAExB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEzF,MAAM,CAAC,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;YAEhD,MAAM,CAAC,OAAO,CAAC,SAAS,CACvB,EAAE,EACF,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,OAAO,IAAI,KAAK,EACxB,KAAK,CACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC"}
|
|
@@ -11,20 +11,7 @@ export interface TextInstruction extends Instruction {
|
|
|
11
11
|
offsetY: number;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* **Architecture** (following Egret's `WebGLRenderer.renderText`):
|
|
17
|
-
*
|
|
18
|
-
* 1. Compute the text draw area (width × height).
|
|
19
|
-
* 2. Scale by the device pixel ratio (`canvasScaleX/Y`), clamped to
|
|
20
|
-
* `maxTextureSize` so we never exceed the GPU's limit.
|
|
21
|
-
* 3. Rasterize the text onto an offscreen `<canvas>` via `CanvasRenderer`.
|
|
22
|
-
* 4. Upload the canvas as a WebGL texture (create once, update on change).
|
|
23
|
-
* 5. Draw the texture via `buffer.context.drawTexture()`, scaling back down
|
|
24
|
-
* by `canvasScale` so the on-screen size is correct.
|
|
25
|
-
*
|
|
26
|
-
* The cache is invalidated when `tf.$renderDirty` is true or when the
|
|
27
|
-
* dimensions / DPR change.
|
|
14
|
+
* Rasterizes text fields into cached textures for render-buffer drawing.
|
|
28
15
|
*/
|
|
29
16
|
export declare class TextPipe implements RenderPipe<TextField> {
|
|
30
17
|
static readonly PIPE_ID = "text";
|
|
@@ -34,21 +21,14 @@ export declare class TextPipe implements RenderPipe<TextField> {
|
|
|
34
21
|
private readonly _registryTokens;
|
|
35
22
|
private _context?;
|
|
36
23
|
constructor(canvasRenderer: CanvasRenderer);
|
|
37
|
-
private static _alloc;
|
|
38
24
|
static release(inst: TextInstruction): void;
|
|
39
25
|
addToInstructionSet(tf: TextField, set: InstructionSet): void;
|
|
40
26
|
updateRenderable(_tf: TextField): void;
|
|
41
27
|
destroyRenderable(tf: TextField): void;
|
|
42
28
|
/**
|
|
43
|
-
*
|
|
44
|
-
* Follows Egret's `WebGLRenderer.renderText` pattern:
|
|
45
|
-
*
|
|
46
|
-
* 1. Compute logical width/height from the TextField.
|
|
47
|
-
* 2. Scale by canvasScale (DPR), clamped to maxTextureSize.
|
|
48
|
-
* 3. Rasterize to offscreen canvas (if dirty).
|
|
49
|
-
* 4. Upload as WebGL texture.
|
|
50
|
-
* 5. Draw with drawTexture, scaling back by canvasScale.
|
|
29
|
+
* Draws a text instruction unless a focused native input owns its display.
|
|
51
30
|
*/
|
|
52
31
|
execute(inst: TextInstruction, buffer: RenderBuffer): void;
|
|
32
|
+
private static _alloc;
|
|
53
33
|
}
|
|
54
34
|
//# sourceMappingURL=TextPipe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextPipe.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/TextPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextPipe.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/TextPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,MAAM,WAAW,eAAgB,SAAQ,WAAW;IACnD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAYD;;GAEG;AACH,qBAAa,QAAS,YAAW,UAAU,CAAC,SAAS,CAAC;IAGrD,gBAAuB,OAAO,UAAU;IAErC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAGzD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IAEjE,OAAO,CAAC,QAAQ,CAAC,CAAgB;gBAGjB,cAAc,EAAE,cAAc;WAMnC,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAI3C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAI7D,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAEtC,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAa7C;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IAqHjE,OAAO,CAAC,MAAM,CAAC,MAAM;CAYrB"}
|
|
@@ -1,21 +1,7 @@
|
|
|
1
1
|
import { TextFieldType } from '../../text/enums/TextFieldType.js';
|
|
2
2
|
import { CanvasBuffer } from '../canvas/index.js';
|
|
3
|
-
// ── Pipe ──────────────────────────────────────────────────────────────────────
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* **Architecture** (following Egret's `WebGLRenderer.renderText`):
|
|
8
|
-
*
|
|
9
|
-
* 1. Compute the text draw area (width × height).
|
|
10
|
-
* 2. Scale by the device pixel ratio (`canvasScaleX/Y`), clamped to
|
|
11
|
-
* `maxTextureSize` so we never exceed the GPU's limit.
|
|
12
|
-
* 3. Rasterize the text onto an offscreen `<canvas>` via `CanvasRenderer`.
|
|
13
|
-
* 4. Upload the canvas as a WebGL texture (create once, update on change).
|
|
14
|
-
* 5. Draw the texture via `buffer.context.drawTexture()`, scaling back down
|
|
15
|
-
* by `canvasScale` so the on-screen size is correct.
|
|
16
|
-
*
|
|
17
|
-
* The cache is invalidated when `tf.$renderDirty` is true or when the
|
|
18
|
-
* dimensions / DPR change.
|
|
4
|
+
* Rasterizes text fields into cached textures for render-buffer drawing.
|
|
19
5
|
*/
|
|
20
6
|
export class TextPipe {
|
|
21
7
|
// ── Static fields ─────────────────────────────────────────────────────────
|
|
@@ -30,33 +16,17 @@ export class TextPipe {
|
|
|
30
16
|
constructor(canvasRenderer) {
|
|
31
17
|
this._canvasRenderer = canvasRenderer;
|
|
32
18
|
}
|
|
33
|
-
|
|
34
|
-
const inst = TextPipe._pool.pop() ?? {
|
|
35
|
-
renderPipeId: 'text',
|
|
36
|
-
renderable: tf,
|
|
37
|
-
offsetX: ox,
|
|
38
|
-
offsetY: oy,
|
|
39
|
-
};
|
|
40
|
-
inst.renderable = tf;
|
|
41
|
-
inst.offsetX = ox;
|
|
42
|
-
inst.offsetY = oy;
|
|
43
|
-
return inst;
|
|
44
|
-
}
|
|
19
|
+
// ── Public methods ────────────────────────────────────────────────────────
|
|
45
20
|
static release(inst) {
|
|
46
21
|
TextPipe._pool.push(inst);
|
|
47
22
|
}
|
|
48
|
-
// ── RenderPipe impl ───────────────────────────────────────────────────────
|
|
49
23
|
addToInstructionSet(tf, set) {
|
|
50
24
|
set.add(TextPipe._alloc(tf, 0, 0));
|
|
51
25
|
}
|
|
52
|
-
updateRenderable(_tf) {
|
|
53
|
-
// Cache invalidation is driven by tf.$renderDirty,
|
|
54
|
-
// which is checked at execute time — nothing to pre-upload here.
|
|
55
|
-
}
|
|
26
|
+
updateRenderable(_tf) { }
|
|
56
27
|
destroyRenderable(tf) {
|
|
57
28
|
const cache = this._cache.get(tf);
|
|
58
29
|
if (cache?.texture) {
|
|
59
|
-
// Unregister from GC registry and delete texture immediately.
|
|
60
30
|
const token = this._registryTokens.get(tf);
|
|
61
31
|
if (token) {
|
|
62
32
|
this._context?.unregisterTextureGC(token);
|
|
@@ -66,31 +36,17 @@ export class TextPipe {
|
|
|
66
36
|
}
|
|
67
37
|
this._cache.delete(tf);
|
|
68
38
|
}
|
|
69
|
-
// ── Execute ───────────────────────────────────────────────────────────────
|
|
70
39
|
/**
|
|
71
|
-
*
|
|
72
|
-
* Follows Egret's `WebGLRenderer.renderText` pattern:
|
|
73
|
-
*
|
|
74
|
-
* 1. Compute logical width/height from the TextField.
|
|
75
|
-
* 2. Scale by canvasScale (DPR), clamped to maxTextureSize.
|
|
76
|
-
* 3. Rasterize to offscreen canvas (if dirty).
|
|
77
|
-
* 4. Upload as WebGL texture.
|
|
78
|
-
* 5. Draw with drawTexture, scaling back by canvasScale.
|
|
40
|
+
* Draws a text instruction unless a focused native input owns its display.
|
|
79
41
|
*/
|
|
80
42
|
execute(inst, buffer) {
|
|
81
43
|
const tf = inst.renderable;
|
|
82
|
-
tf.getLinesArr();
|
|
83
|
-
// Cache the render context for use in destroyRenderable.
|
|
44
|
+
tf.getLinesArr();
|
|
84
45
|
if (!this._context)
|
|
85
46
|
this._context = buffer.context;
|
|
86
|
-
// ── INPUT mode while focused: HTML input element owns the display ────
|
|
87
|
-
// Don't render the canvas texture — the native <input>/<textarea>
|
|
88
|
-
// is overlaid on top and already shows the text. Rendering here too
|
|
89
|
-
// would produce a double-text artefact.
|
|
90
47
|
if (tf.type === TextFieldType.INPUT && tf.isTyping) {
|
|
91
48
|
return;
|
|
92
49
|
}
|
|
93
|
-
// ── 1. Compute logical dimensions ────────────────────────────────────
|
|
94
50
|
const logicalW = Math.ceil(!isNaN(tf.$explicitWidth) ? tf.$explicitWidth : tf.textWidth);
|
|
95
51
|
const logicalH = Math.ceil(!isNaN(tf.$explicitHeight) ? tf.$explicitHeight : tf.textHeight);
|
|
96
52
|
if (logicalW <= 0 || logicalH <= 0) {
|
|
@@ -98,11 +54,8 @@ export class TextPipe {
|
|
|
98
54
|
}
|
|
99
55
|
buffer.offsetX = 0;
|
|
100
56
|
buffer.offsetY = 0;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
// on HiDPI screens, but clamp to maxTextureSize to avoid GPU limits.
|
|
104
|
-
let canvasScaleX = /* devicePixelRatio || */ 1;
|
|
105
|
-
let canvasScaleY = /* devicePixelRatio || */ 1;
|
|
57
|
+
let canvasScaleX = 1;
|
|
58
|
+
let canvasScaleY = 1;
|
|
106
59
|
const maxTexSize = buffer.context.maxTextureSize;
|
|
107
60
|
if (logicalW * canvasScaleX > maxTexSize) {
|
|
108
61
|
canvasScaleX *= maxTexSize / (logicalW * canvasScaleX);
|
|
@@ -110,14 +63,20 @@ export class TextPipe {
|
|
|
110
63
|
if (logicalH * canvasScaleY > maxTexSize) {
|
|
111
64
|
canvasScaleY *= maxTexSize / (logicalH * canvasScaleY);
|
|
112
65
|
}
|
|
113
|
-
// Scaled pixel dimensions for the offscreen canvas.
|
|
114
66
|
const pixelW = Math.ceil(logicalW * canvasScaleX);
|
|
115
67
|
const pixelH = Math.ceil(logicalH * canvasScaleY);
|
|
116
|
-
// ── 3. Cache lookup / rebuild ────────────────────────────────────────
|
|
117
68
|
let cache = this._cache.get(tf);
|
|
69
|
+
if (cache && cache.contextVersion !== buffer.context.contextVersion) {
|
|
70
|
+
const oldToken = this._registryTokens.get(tf);
|
|
71
|
+
if (oldToken)
|
|
72
|
+
buffer.context.unregisterTextureGC(oldToken);
|
|
73
|
+
this._registryTokens.delete(tf);
|
|
74
|
+
cache.texture = undefined;
|
|
75
|
+
cache.contextVersion = buffer.context.contextVersion;
|
|
76
|
+
tf.$renderDirty = true;
|
|
77
|
+
}
|
|
118
78
|
let scaleChanged = false;
|
|
119
79
|
if (cache) {
|
|
120
|
-
// Check if canvasScale changed (e.g. window moved between displays).
|
|
121
80
|
scaleChanged = cache.canvasScaleX !== canvasScaleX || cache.canvasScaleY !== canvasScaleY;
|
|
122
81
|
if (scaleChanged) {
|
|
123
82
|
cache.canvasScaleX = canvasScaleX;
|
|
@@ -132,36 +91,29 @@ export class TextPipe {
|
|
|
132
91
|
textureHeight: 0,
|
|
133
92
|
canvasScaleX,
|
|
134
93
|
canvasScaleY,
|
|
94
|
+
contextVersion: buffer.context.contextVersion,
|
|
135
95
|
};
|
|
136
96
|
this._cache.set(tf, cache);
|
|
137
97
|
}
|
|
138
|
-
// Dirty when: text content changed, dimensions changed, or DPR changed.
|
|
139
98
|
const needsRebuild = tf.$renderDirty || cache.textureWidth !== pixelW || cache.textureHeight !== pixelH || scaleChanged;
|
|
140
99
|
if (needsRebuild) {
|
|
141
|
-
// Resize the offscreen canvas if needed.
|
|
142
100
|
if (cache.canvasBuffer.width !== pixelW || cache.canvasBuffer.height !== pixelH) {
|
|
143
101
|
cache.canvasBuffer.resize(pixelW, pixelH);
|
|
144
102
|
}
|
|
145
|
-
// Clear the buffer first (note: clear() resets the transform to identity).
|
|
146
103
|
cache.canvasBuffer.clear();
|
|
147
|
-
// Apply canvas scale transform so text renders at the higher resolution.
|
|
148
104
|
const ctx = cache.canvasBuffer.context;
|
|
149
105
|
if (canvasScaleX !== 1 || canvasScaleY !== 1) {
|
|
150
106
|
ctx.setTransform(canvasScaleX, 0, 0, canvasScaleY, 0, 0);
|
|
151
107
|
}
|
|
152
|
-
// Rasterize the text onto the offscreen canvas.
|
|
153
108
|
this._canvasRenderer.renderTextFieldToContext(tf, ctx, 0, 0);
|
|
154
|
-
// Upload to WebGL texture.
|
|
155
109
|
const surface = cache.canvasBuffer.surface;
|
|
156
110
|
if (!cache.texture) {
|
|
157
111
|
cache.texture = buffer.context.createTexture(surface);
|
|
158
|
-
// Register for GC-based cleanup.
|
|
159
112
|
const token = {};
|
|
160
113
|
buffer.context.registerTextureForGC(tf, cache.texture, token);
|
|
161
114
|
this._registryTokens.set(tf, token);
|
|
162
115
|
}
|
|
163
116
|
else {
|
|
164
|
-
// Unregister old texture, create new registration for updated texture.
|
|
165
117
|
const oldToken = this._registryTokens.get(tf);
|
|
166
118
|
if (oldToken)
|
|
167
119
|
buffer.context.unregisterTextureGC(oldToken);
|
|
@@ -175,15 +127,20 @@ export class TextPipe {
|
|
|
175
127
|
}
|
|
176
128
|
if (!cache.texture)
|
|
177
129
|
return;
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
130
|
+
buffer.context.drawTexture(cache.texture, 0, 0, cache.textureWidth, cache.textureHeight, 0, 0, cache.textureWidth / canvasScaleX, cache.textureHeight / canvasScaleY, cache.textureWidth, cache.textureHeight);
|
|
131
|
+
}
|
|
132
|
+
// ── Private methods ───────────────────────────────────────────────────────
|
|
133
|
+
static _alloc(tf, ox, oy) {
|
|
134
|
+
const inst = TextPipe._pool.pop() ?? {
|
|
135
|
+
renderPipeId: 'text',
|
|
136
|
+
renderable: tf,
|
|
137
|
+
offsetX: ox,
|
|
138
|
+
offsetY: oy,
|
|
139
|
+
};
|
|
140
|
+
inst.renderable = tf;
|
|
141
|
+
inst.offsetX = ox;
|
|
142
|
+
inst.offsetY = oy;
|
|
143
|
+
return inst;
|
|
187
144
|
}
|
|
188
145
|
}
|
|
189
146
|
//# sourceMappingURL=TextPipe.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextPipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/TextPipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAOlE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextPipe.js","sourceRoot":"","sources":["../../../../src/kurot/player/pipes/TextPipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { Filter } from '../../filters/Filter.js';
|
|
2
1
|
/**
|
|
3
2
|
* A draw command that references a multi-texture batch.
|
|
4
3
|
*/
|
|
@@ -7,20 +6,10 @@ export interface MultiTextureDrawCmd {
|
|
|
7
6
|
count: number;
|
|
8
7
|
readonly textures: WebGLTexture[];
|
|
9
8
|
textureCount: number;
|
|
10
|
-
filter: Filter | undefined;
|
|
11
9
|
}
|
|
12
10
|
export declare function makeMultiCmd(count: number, slots: (WebGLTexture | undefined)[], slotCount: number): MultiTextureDrawCmd;
|
|
13
11
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* Inspired by Pixi.js 8's Batcher: instead of breaking a batch every time
|
|
17
|
-
* the texture changes, we assign each unique texture a slot (0–7) and pack
|
|
18
|
-
* all quads into a single draw call. When all slots are occupied we flush.
|
|
19
|
-
*
|
|
20
|
-
* Limitations:
|
|
21
|
-
* - Only plain (no-filter) texture draws can be batched.
|
|
22
|
-
* - Filters, masks, blend-mode changes, and mesh draws always break the batch.
|
|
23
|
-
* - Maximum 8 textures per batch (WebGL1 minimum guaranteed texture units).
|
|
12
|
+
* Allocates up to eight texture slots for one batched draw command.
|
|
24
13
|
*/
|
|
25
14
|
export declare class MultiTextureBatcher {
|
|
26
15
|
static readonly MAX_TEXTURES = 8;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiTextureBatcher.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/webgl/MultiTextureBatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiTextureBatcher.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/webgl/MultiTextureBatcher.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,YAAY,CAC3B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,EACnC,SAAS,EAAE,MAAM,GACf,mBAAmB,CAOrB;AAID;;GAEG;AACH,qBAAa,mBAAmB;IAE/B,gBAAuB,YAAY,KAAK;IAGxC,SAAgB,KAAK,EAAE,CAAC,YAAY,GAAG,SAAS,CAAC,EAAE,CAA+D;IAElH,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmC;IAI5D,IAAW,YAAY,IAAI,MAAM,CAEhC;IAID;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM;IAc9C,MAAM,IAAI,OAAO;IAIjB,KAAK,IAAI,IAAI;CAOpB"}
|
|
@@ -1,24 +1,15 @@
|
|
|
1
|
+
// ── MultiTextureDrawCmd ───────────────────────────────────────────────────────
|
|
1
2
|
export function makeMultiCmd(count, slots, slotCount) {
|
|
2
3
|
return {
|
|
3
4
|
isMulti: true,
|
|
4
5
|
count,
|
|
5
6
|
textures: slots.slice(0, slotCount),
|
|
6
7
|
textureCount: slotCount,
|
|
7
|
-
filter: undefined,
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
10
|
// ── MultiTextureBatcher ───────────────────────────────────────────────────────
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* Inspired by Pixi.js 8's Batcher: instead of breaking a batch every time
|
|
15
|
-
* the texture changes, we assign each unique texture a slot (0–7) and pack
|
|
16
|
-
* all quads into a single draw call. When all slots are occupied we flush.
|
|
17
|
-
*
|
|
18
|
-
* Limitations:
|
|
19
|
-
* - Only plain (no-filter) texture draws can be batched.
|
|
20
|
-
* - Filters, masks, blend-mode changes, and mesh draws always break the batch.
|
|
21
|
-
* - Maximum 8 textures per batch (WebGL1 minimum guaranteed texture units).
|
|
12
|
+
* Allocates up to eight texture slots for one batched draw command.
|
|
22
13
|
*/
|
|
23
14
|
export class MultiTextureBatcher {
|
|
24
15
|
// ── Static fields ─────────────────────────────────────────────────────────
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiTextureBatcher.js","sourceRoot":"","sources":["../../../../src/kurot/player/webgl/MultiTextureBatcher.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiTextureBatcher.js","sourceRoot":"","sources":["../../../../src/kurot/player/webgl/MultiTextureBatcher.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAYjF,MAAM,UAAU,YAAY,CAC3B,KAAa,EACb,KAAmC,EACnC,SAAiB;IAEjB,OAAO;QACN,OAAO,EAAE,IAAI;QACb,KAAK;QACL,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAmB;QACrD,YAAY,EAAE,SAAS;KACvB,CAAC;AACH,CAAC;AAED,iFAAiF;AAEjF;;GAEG;AACH,MAAM,OAAO,mBAAmB;IAC/B,6EAA6E;IACtE,MAAM,CAAU,YAAY,GAAG,CAAC,CAAC;IAExC,6EAA6E;IAC7D,KAAK,GAAiC,IAAI,KAAK,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAE1G,UAAU,GAAG,CAAC,CAAC;IAEN,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAE5D,6EAA6E;IAE7E,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,6EAA6E;IAE7E;;;OAGG;IACI,eAAe,CAAC,OAAqB;QAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC;QACjB,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,YAAY,EAAE,CAAC;YACzD,OAAO,CAAC,CAAC,CAAC;QACX,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;QAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,MAAM;QACZ,OAAO,IAAI,CAAC,UAAU,IAAI,mBAAmB,CAAC,YAAY,CAAC;IAC5D,CAAC;IAEM,KAAK;QACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3B,CAAC;QACD,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC"}
|
|
@@ -18,10 +18,10 @@ export declare const enum DrawCmdType {
|
|
|
18
18
|
export interface DrawCmd {
|
|
19
19
|
type: DrawCmdType;
|
|
20
20
|
count: number;
|
|
21
|
-
texture
|
|
22
|
-
filter
|
|
21
|
+
texture?: WebGLTexture;
|
|
22
|
+
filter?: Filter;
|
|
23
23
|
value: string;
|
|
24
|
-
buffer
|
|
24
|
+
buffer?: WebGLRenderBuffer;
|
|
25
25
|
width: number;
|
|
26
26
|
height: number;
|
|
27
27
|
textureWidth: number;
|
|
@@ -29,7 +29,7 @@ export interface DrawCmd {
|
|
|
29
29
|
smoothing: boolean;
|
|
30
30
|
x: number;
|
|
31
31
|
y: number;
|
|
32
|
-
multiCmd
|
|
32
|
+
multiCmd?: MultiTextureDrawCmd;
|
|
33
33
|
}
|
|
34
34
|
export declare class WebGLDrawCmdManager {
|
|
35
35
|
readonly drawData: DrawCmd[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebGLDrawCmdManager.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/webgl/WebGLDrawCmdManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,0BAAkB,WAAW;IAC5B,OAAO,IAAI;IACX,IAAI,IAAI;IACR,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,aAAa,IAAI;IACjB,WAAW,IAAI;IACf,UAAU,IAAI;IACd,cAAc,IAAI;IAClB,eAAe,IAAI;IACnB,SAAS,KAAK;IACd,aAAa,KAAK;CAClB;AAID,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"WebGLDrawCmdManager.d.ts","sourceRoot":"","sources":["../../../../src/kurot/player/webgl/WebGLDrawCmdManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,0BAAkB,WAAW;IAC5B,OAAO,IAAI;IACX,IAAI,IAAI;IACR,SAAS,IAAI;IACb,QAAQ,IAAI;IACZ,KAAK,IAAI;IACT,aAAa,IAAI;IACjB,WAAW,IAAI;IACf,UAAU,IAAI;IACd,cAAc,IAAI;IAClB,eAAe,IAAI;IACnB,SAAS,KAAK;IACd,aAAa,KAAK;CAClB;AAID,MAAM,WAAW,OAAO;IACvB,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAC/B;AAmBD,qBAAa,mBAAmB;IAG/B,SAAgB,QAAQ,EAAE,OAAO,EAAE,CAAM;IAElC,WAAW,SAAK;IAIhB,YAAY,IAAI,IAAI;IAYpB,eAAe,CACrB,OAAO,EAAE,YAAY,EACrB,KAAK,SAAI,EACT,MAAM,CAAC,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,aAAa,CAAC,EAAE,MAAM,GACpB,IAAI;IAyBP;;;;OAIG;IACI,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAuBzD,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI;IASpE,YAAY,CAAC,KAAK,SAAI,GAAG,IAAI;IAO7B,WAAW,CAAC,KAAK,SAAI,GAAG,IAAI;IAO5B,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IA2BjC,UAAU,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAS1E,cAAc,IAAI,IAAI;IAMtB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI;IAmBnD,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAU5E,kBAAkB,IAAI,IAAI;IAQ1B,KAAK,IAAI,IAAI;IAuBpB,OAAO,CAAC,IAAI;CAGZ"}
|