@next2d/webgpu 3.0.4 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/AtlasManager.d.ts +75 -6
- package/src/AtlasManager.js +106 -30
- package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.d.ts +2 -2
- package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.js +3 -3
- package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.d.ts +4 -4
- package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.js +4 -4
- package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.d.ts +5 -5
- package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.js +6 -6
- package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.d.ts +6 -6
- package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.js +7 -7
- package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.d.ts +6 -6
- package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.js +9 -9
- package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.d.ts +6 -6
- package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.js +10 -10
- package/src/AttachmentManager/service/AttachmentManagerGetTextureService.d.ts +7 -7
- package/src/AttachmentManager/service/AttachmentManagerGetTextureService.js +10 -10
- package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.d.ts +3 -3
- package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.js +7 -7
- package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.d.ts +10 -10
- package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.js +16 -16
- package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.d.ts +6 -6
- package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.js +10 -10
- package/src/AttachmentManager.d.ts +28 -6
- package/src/AttachmentManager.js +28 -23
- package/src/BezierConverter/BezierConverter.d.ts +9 -3
- package/src/BezierConverter/BezierConverter.js +5 -3
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +2 -13
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +13 -25
- package/src/Blend/BlendInstancedManager.d.ts +19 -15
- package/src/Blend/BlendInstancedManager.js +35 -22
- package/src/Blend/usecase/BlendApplyComplexBlendUseCase.d.ts +9 -2
- package/src/Blend/usecase/BlendApplyComplexBlendUseCase.js +28 -17
- package/src/Blend.d.ts +20 -2
- package/src/Blend.js +20 -4
- package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.js +2 -2
- package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.js +2 -2
- package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.d.ts +1 -0
- package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.js +1 -0
- package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.d.ts +1 -0
- package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.js +1 -0
- package/src/BufferManager.d.ts +108 -43
- package/src/BufferManager.js +113 -153
- package/src/Context/service/ContextComputeBitmapMatrixService.d.ts +7 -0
- package/src/Context/service/ContextComputeBitmapMatrixService.js +7 -0
- package/src/Context/service/ContextComputeGradientMatrixService.d.ts +9 -1
- package/src/Context/service/ContextComputeGradientMatrixService.js +15 -7
- package/src/Context/service/ContextFillSimpleService.d.ts +14 -0
- package/src/Context/service/ContextFillSimpleService.js +14 -0
- package/src/Context/service/ContextFillWithStencilMainService.d.ts +11 -0
- package/src/Context/service/ContextFillWithStencilMainService.js +11 -0
- package/src/Context/service/ContextFillWithStencilService.d.ts +11 -0
- package/src/Context/service/ContextFillWithStencilService.js +11 -0
- package/src/Context/usecase/ContextApplyFilterUseCase.d.ts +17 -0
- package/src/Context/usecase/ContextApplyFilterUseCase.js +201 -62
- package/src/Context/usecase/ContextBitmapFillUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextBitmapFillUseCase.js +47 -0
- package/src/Context/usecase/ContextBitmapStrokeUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextBitmapStrokeUseCase.js +35 -0
- package/src/Context/usecase/ContextClipUseCase.d.ts +15 -0
- package/src/Context/usecase/ContextClipUseCase.js +19 -0
- package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +21 -1
- package/src/Context/usecase/ContextContainerEndLayerUseCase.js +195 -104
- package/src/Context/usecase/ContextDrawArraysInstancedUseCase.d.ts +13 -0
- package/src/Context/usecase/ContextDrawArraysInstancedUseCase.js +41 -20
- package/src/Context/usecase/ContextDrawIndirectUseCase.d.ts +16 -1
- package/src/Context/usecase/ContextDrawIndirectUseCase.js +53 -30
- package/src/Context/usecase/ContextGradientFillUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextGradientFillUseCase.js +47 -0
- package/src/Context/usecase/ContextGradientStrokeUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextGradientStrokeUseCase.js +35 -0
- package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.d.ts +13 -1
- package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.js +126 -60
- package/src/Context.d.ts +445 -63
- package/src/Context.js +566 -144
- package/src/FillTexturePool.d.ts +39 -0
- package/src/FillTexturePool.js +70 -7
- package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.d.ts +21 -2
- package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.js +33 -26
- package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.d.ts +5 -5
- package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.js +81 -64
- package/src/Filter/BlurFilterUseCase.d.ts +15 -11
- package/src/Filter/BlurFilterUseCase.js +22 -17
- package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.d.ts +2 -2
- package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.js +5 -5
- package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.d.ts +15 -1
- package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.js +23 -17
- package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.d.ts +20 -1
- package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.js +37 -26
- package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.d.ts +7 -7
- package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.js +19 -31
- package/src/Filter/FilterGradientLUTCache.js +2 -0
- package/src/Filter/FilterUtil.d.ts +23 -0
- package/src/Filter/FilterUtil.js +33 -0
- package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.d.ts +5 -5
- package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.js +12 -21
- package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.d.ts +6 -6
- package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.js +16 -19
- package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.d.ts +5 -5
- package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.js +13 -16
- package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.d.ts +13 -1
- package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.js +30 -3
- package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.d.ts +11 -1
- package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.js +36 -6
- package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.d.ts +10 -10
- package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.js +15 -15
- package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.d.ts +4 -4
- package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.js +5 -5
- package/src/FrameBufferManager.d.ts +95 -3
- package/src/FrameBufferManager.js +97 -8
- package/src/Gradient/GradientLUTCache.d.ts +36 -4
- package/src/Gradient/GradientLUTCache.js +61 -5
- package/src/Gradient/GradientLUTGenerator.d.ts +26 -14
- package/src/Gradient/GradientLUTGenerator.js +74 -43
- package/src/Mask/service/MaskUnionMaskService.d.ts +16 -1
- package/src/Mask/service/MaskUnionMaskService.js +45 -31
- package/src/Mask.d.ts +57 -3
- package/src/Mask.js +75 -11
- package/src/Mesh/service/MeshFillGenerateService.d.ts +4 -4
- package/src/Mesh/service/MeshFillGenerateService.js +4 -4
- package/src/Mesh/service/MeshStrokeFillGenerateService.d.ts +4 -4
- package/src/Mesh/service/MeshStrokeFillGenerateService.js +4 -4
- package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.d.ts +3 -3
- package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.js +10 -3
- package/src/Mesh/usecase/MeshFillGenerateUseCase.d.ts +2 -2
- package/src/Mesh/usecase/MeshFillGenerateUseCase.js +9 -2
- package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.d.ts +3 -3
- package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.js +10 -3
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.d.ts +8 -14
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +214 -129
- package/src/PathCommand.d.ts +24 -23
- package/src/PathCommand.js +25 -79
- package/src/Shader/PipelineManager.d.ts +223 -6
- package/src/Shader/PipelineManager.js +308 -66
- package/src/Shader/ShaderInstancedManager.d.ts +17 -0
- package/src/Shader/ShaderInstancedManager.js +17 -0
- package/src/Shader/ShaderSource.d.ts +317 -12
- package/src/Shader/ShaderSource.js +328 -39
- package/src/Shader/wgsl/common/SharedWgsl.d.ts +28 -1
- package/src/Shader/wgsl/common/SharedWgsl.js +28 -9
- package/src/Shader/wgsl/fragment/BasicFragment.d.ts +14 -0
- package/src/Shader/wgsl/fragment/BasicFragment.js +14 -0
- package/src/Shader/wgsl/fragment/BitmapFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/BitmapFragment.js +7 -0
- package/src/Shader/wgsl/fragment/EffectFragment.d.ts +42 -0
- package/src/Shader/wgsl/fragment/EffectFragment.js +42 -0
- package/src/Shader/wgsl/fragment/FillFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/FillFragment.js +7 -0
- package/src/Shader/wgsl/fragment/FilterFragment.d.ts +70 -0
- package/src/Shader/wgsl/fragment/FilterFragment.js +70 -0
- package/src/Shader/wgsl/fragment/GradientFragment.d.ts +21 -0
- package/src/Shader/wgsl/fragment/GradientFragment.js +43 -8
- package/src/Shader/wgsl/fragment/InstancedFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/InstancedFragment.js +7 -0
- package/src/Shader/wgsl/fragment/MaskFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/MaskFragment.js +7 -0
- package/src/Shader/wgsl/fragment/StencilFragment.d.ts +14 -0
- package/src/Shader/wgsl/fragment/StencilFragment.js +14 -0
- package/src/Shader/wgsl/vertex/BasicVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/BasicVertex.js +7 -0
- package/src/Shader/wgsl/vertex/BitmapVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/BitmapVertex.js +7 -0
- package/src/Shader/wgsl/vertex/FillVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/FillVertex.js +7 -0
- package/src/Shader/wgsl/vertex/FilterVertex.d.ts +77 -1
- package/src/Shader/wgsl/vertex/FilterVertex.js +135 -42
- package/src/Shader/wgsl/vertex/GradientVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/GradientVertex.js +7 -0
- package/src/Shader/wgsl/vertex/InstancedVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/InstancedVertex.js +7 -0
- package/src/Shader/wgsl/vertex/MaskVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/MaskVertex.js +7 -0
- package/src/Shader/wgsl/vertex/StencilVertex.d.ts +14 -0
- package/src/Shader/wgsl/vertex/StencilVertex.js +14 -0
- package/src/TextureManager/service/TextureManagerInitializeSamplersService.d.ts +2 -2
- package/src/TextureManager/service/TextureManagerInitializeSamplersService.js +2 -2
- package/src/TextureManager.d.ts +36 -5
- package/src/TextureManager.js +36 -24
- package/src/TexturePool/service/TexturePoolCleanupService.d.ts +4 -4
- package/src/TexturePool/service/TexturePoolCleanupService.js +6 -6
- package/src/TexturePool/service/TexturePoolReleaseService.d.ts +4 -4
- package/src/TexturePool/service/TexturePoolReleaseService.js +5 -5
- package/src/TexturePool/usecase/TexturePoolAcquireUseCase.d.ts +10 -10
- package/src/TexturePool/usecase/TexturePoolAcquireUseCase.js +19 -18
- package/src/TexturePool.d.ts +36 -35
- package/src/TexturePool.js +44 -65
- package/src/WebGPUUtil.d.ts +79 -34
- package/src/WebGPUUtil.js +79 -36
- package/src/interface/IAttachmentObject.d.ts +36 -0
- package/src/interface/IBlendMode.d.ts +7 -0
- package/src/interface/IBlendState.d.ts +8 -0
- package/src/interface/IBounds.d.ts +23 -0
- package/src/interface/IColorBufferObject.d.ts +28 -0
- package/src/interface/IComplexBlendItem.d.ts +48 -0
- package/src/interface/IFilterConfig.d.ts +28 -2
- package/src/interface/IGradientStop.d.ts +20 -0
- package/src/interface/ILocalFilterConfig.d.ts +32 -2
- package/src/interface/IMeshResult.d.ts +8 -0
- package/src/interface/IPoint.d.ts +12 -0
- package/src/interface/IPooledTexture.d.ts +24 -0
- package/src/interface/IQuadraticSegment.d.ts +8 -0
- package/src/interface/IStencilBufferObject.d.ts +28 -0
- package/src/interface/IStorageBufferConfig.d.ts +8 -1
- package/src/interface/ITextureObject.d.ts +28 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.d.ts +0 -5
- package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.js +0 -42
- package/src/Blend/service/BlendAddService.d.ts +0 -1
- package/src/Blend/service/BlendAddService.js +0 -8
- package/src/Blend/service/BlendAlphaService.d.ts +0 -1
- package/src/Blend/service/BlendAlphaService.js +0 -8
- package/src/Blend/service/BlendEraseService.d.ts +0 -1
- package/src/Blend/service/BlendEraseService.js +0 -8
- package/src/Blend/service/BlendGetStateService.d.ts +0 -12
- package/src/Blend/service/BlendGetStateService.js +0 -13
- package/src/Blend/service/BlendOneZeroService.d.ts +0 -1
- package/src/Blend/service/BlendOneZeroService.js +0 -8
- package/src/Blend/service/BlendResetService.d.ts +0 -1
- package/src/Blend/service/BlendResetService.js +0 -8
- package/src/Blend/service/BlendScreenService.d.ts +0 -1
- package/src/Blend/service/BlendScreenService.js +0 -8
- package/src/Blend/service/BlendSetModeService.d.ts +0 -2
- package/src/Blend/service/BlendSetModeService.js +0 -4
- package/src/Blend/usecase/BlendOperationUseCase.d.ts +0 -11
- package/src/Blend/usecase/BlendOperationUseCase.js +0 -31
- package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.d.ts +0 -9
- package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.js +0 -15
- package/src/Compute/ComputePipelineManager.d.ts +0 -61
- package/src/Compute/ComputePipelineManager.js +0 -313
- package/src/Compute/service/ComputeExecuteBlurService.d.ts +0 -21
- package/src/Compute/service/ComputeExecuteBlurService.js +0 -81
- package/src/Filter/BevelFilterShader.d.ts +0 -2
- package/src/Filter/BevelFilterShader.js +0 -107
- package/src/Filter/BitmapFilterShader.d.ts +0 -2
- package/src/Filter/BitmapFilterShader.js +0 -207
- package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.d.ts +0 -40
- package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.js +0 -51
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.d.ts +0 -25
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.js +0 -180
- package/src/Filter/BlurFilterShader.d.ts +0 -5
- package/src/Filter/BlurFilterShader.js +0 -109
- package/src/Filter/ColorMatrixFilterShader.d.ts +0 -4
- package/src/Filter/ColorMatrixFilterShader.js +0 -51
- package/src/Filter/ConvolutionFilterShader.d.ts +0 -2
- package/src/Filter/ConvolutionFilterShader.js +0 -115
- package/src/Filter/DisplacementMapFilterShader.d.ts +0 -2
- package/src/Filter/DisplacementMapFilterShader.js +0 -114
- package/src/Filter/DropShadowFilterShader.d.ts +0 -4
- package/src/Filter/DropShadowFilterShader.js +0 -93
- package/src/Filter/GlowFilterShader.d.ts +0 -4
- package/src/Filter/GlowFilterShader.js +0 -66
- package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.d.ts +0 -11
- package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.js +0 -19
- package/src/Mask/usecase/MaskBindUseCase.d.ts +0 -10
- package/src/Mask/usecase/MaskBindUseCase.js +0 -20
- package/src/Mesh/service/MeshLerpService.d.ts +0 -13
- package/src/Mesh/service/MeshLerpService.js +0 -17
- package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.d.ts +0 -14
- package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.js +0 -28
- package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.d.ts +0 -18
- package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.js +0 -54
- package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.d.ts +0 -11
- package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.js +0 -35
- package/src/SamplerCache/service/SamplerCacheGenerateKeyService.d.ts +0 -13
- package/src/SamplerCache/service/SamplerCacheGenerateKeyService.js +0 -15
- package/src/SamplerCache/service/SamplerCacheGetOrCreateService.d.ts +0 -15
- package/src/SamplerCache/service/SamplerCacheGetOrCreateService.js +0 -30
- package/src/SamplerCache.d.ts +0 -18
- package/src/SamplerCache.js +0 -61
- package/src/Shader/BlendModeShader.d.ts +0 -51
- package/src/Shader/BlendModeShader.js +0 -71
- package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.d.ts +0 -12
- package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.js +0 -28
- package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.d.ts +0 -13
- package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.js +0 -61
- package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.d.ts +0 -19
- package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.js +0 -37
- package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.d.ts +0 -11
- package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.js +0 -24
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.d.ts +0 -14
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.js +0 -24
- package/src/Shader/wgsl/fragment/BlendFragment.d.ts +0 -8
- package/src/Shader/wgsl/fragment/BlendFragment.js +0 -63
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.d.ts +0 -13
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.js +0 -30
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.d.ts +0 -15
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.js +0 -26
- package/src/TexturePool/service/TexturePoolEvictOldestService.d.ts +0 -11
- package/src/TexturePool/service/TexturePoolEvictOldestService.js +0 -24
- package/src/interface/ICachedBindGroup.d.ts +0 -8
- package/src/interface/ICachedBindGroup.js +0 -1
- package/src/interface/IGradientLUTData.d.ts +0 -8
- package/src/interface/IGradientLUTData.js +0 -1
- package/src/interface/IPooledBuffer.d.ts +0 -8
- package/src/interface/IPooledBuffer.js +0 -1
- package/src/interface/IRectangleInfo.d.ts +0 -13
- package/src/interface/IRectangleInfo.js +0 -1
package/src/PathCommand.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { IPoint } from "./interface/IPoint";
|
|
2
1
|
import type { IPath } from "./interface/IPath";
|
|
3
2
|
/**
|
|
4
3
|
* @description WebGPU用パスコマンド(WebGL互換形式)
|
|
@@ -9,11 +8,35 @@ import type { IPath } from "./interface/IPath";
|
|
|
9
8
|
* - isControlPoint = false: 通常の頂点または終点
|
|
10
9
|
*/
|
|
11
10
|
export declare class PathCommand {
|
|
11
|
+
/**
|
|
12
|
+
* @description 現在のパスデータ
|
|
13
|
+
* Current path data array
|
|
14
|
+
*/
|
|
12
15
|
private $currentPath;
|
|
16
|
+
/**
|
|
17
|
+
* @description 確定済みパスの配列
|
|
18
|
+
* Array of finalized path vertices
|
|
19
|
+
*/
|
|
13
20
|
private $vertices;
|
|
21
|
+
/**
|
|
22
|
+
* @description 現在のX座標
|
|
23
|
+
* Current X coordinate
|
|
24
|
+
*/
|
|
14
25
|
private $currentX;
|
|
26
|
+
/**
|
|
27
|
+
* @description 現在のY座標
|
|
28
|
+
* Current Y coordinate
|
|
29
|
+
*/
|
|
15
30
|
private $currentY;
|
|
31
|
+
/**
|
|
32
|
+
* @description サブパスの開始X座標
|
|
33
|
+
* Start X coordinate of current sub-path
|
|
34
|
+
*/
|
|
16
35
|
private $startX;
|
|
36
|
+
/**
|
|
37
|
+
* @description サブパスの開始Y座標
|
|
38
|
+
* Start Y coordinate of current sub-path
|
|
39
|
+
*/
|
|
17
40
|
private $startY;
|
|
18
41
|
/**
|
|
19
42
|
* @constructor
|
|
@@ -53,13 +76,6 @@ export declare class PathCommand {
|
|
|
53
76
|
* 0.25 = 0.5px squared(滑らかなストローク描画用)
|
|
54
77
|
*/
|
|
55
78
|
private $flatnessThreshold;
|
|
56
|
-
/**
|
|
57
|
-
* @description フラットネス閾値を設定
|
|
58
|
-
* Set flatness threshold for adaptive bezier tessellation
|
|
59
|
-
* @param {number} scale - 現在のスケール(行列のスケール成分)
|
|
60
|
-
* @return {void}
|
|
61
|
-
*/
|
|
62
|
-
setScale(scale: number): void;
|
|
63
79
|
/**
|
|
64
80
|
* @description 三次ベジェ曲線を二次ベジェ曲線に適応的に近似
|
|
65
81
|
* Adaptively approximate cubic bezier with quadratic beziers
|
|
@@ -94,21 +110,6 @@ export declare class PathCommand {
|
|
|
94
110
|
* @return {IPath[]}
|
|
95
111
|
*/
|
|
96
112
|
get $getVertices(): IPath[];
|
|
97
|
-
/**
|
|
98
|
-
* @description パスから頂点配列を生成(従来互換用・単純なfan triangulation)
|
|
99
|
-
* @return {Float32Array}
|
|
100
|
-
*/
|
|
101
|
-
generateVertices(): Float32Array;
|
|
102
|
-
/**
|
|
103
|
-
* @description 現在のパスを取得(ストローク用)
|
|
104
|
-
* @return {IPoint[]}
|
|
105
|
-
*/
|
|
106
|
-
getCurrentPath(): IPoint[];
|
|
107
|
-
/**
|
|
108
|
-
* @description すべてのパスを取得(ストローク用)
|
|
109
|
-
* @return {IPoint[][]}
|
|
110
|
-
*/
|
|
111
|
-
getAllPaths(): IPoint[][];
|
|
112
113
|
/**
|
|
113
114
|
* @description WebGL互換形式でパスを取得(ストローク用)
|
|
114
115
|
* [x, y, isCurve, x, y, isCurve, ...] 形式
|
package/src/PathCommand.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { adaptiveCubicToQuad
|
|
1
|
+
import { adaptiveCubicToQuad } from "./BezierConverter/BezierConverter";
|
|
2
2
|
/**
|
|
3
3
|
* @description WebGPU用パスコマンド(WebGL互換形式)
|
|
4
4
|
* Path commands for WebGPU (WebGL compatible format)
|
|
@@ -12,36 +12,60 @@ export class PathCommand {
|
|
|
12
12
|
* @constructor
|
|
13
13
|
*/
|
|
14
14
|
constructor() {
|
|
15
|
+
/**
|
|
16
|
+
* @description 現在のパスデータ
|
|
17
|
+
* Current path data array
|
|
18
|
+
*/
|
|
15
19
|
Object.defineProperty(this, "$currentPath", {
|
|
16
20
|
enumerable: true,
|
|
17
21
|
configurable: true,
|
|
18
22
|
writable: true,
|
|
19
23
|
value: void 0
|
|
20
24
|
});
|
|
25
|
+
/**
|
|
26
|
+
* @description 確定済みパスの配列
|
|
27
|
+
* Array of finalized path vertices
|
|
28
|
+
*/
|
|
21
29
|
Object.defineProperty(this, "$vertices", {
|
|
22
30
|
enumerable: true,
|
|
23
31
|
configurable: true,
|
|
24
32
|
writable: true,
|
|
25
33
|
value: void 0
|
|
26
34
|
});
|
|
35
|
+
/**
|
|
36
|
+
* @description 現在のX座標
|
|
37
|
+
* Current X coordinate
|
|
38
|
+
*/
|
|
27
39
|
Object.defineProperty(this, "$currentX", {
|
|
28
40
|
enumerable: true,
|
|
29
41
|
configurable: true,
|
|
30
42
|
writable: true,
|
|
31
43
|
value: void 0
|
|
32
44
|
});
|
|
45
|
+
/**
|
|
46
|
+
* @description 現在のY座標
|
|
47
|
+
* Current Y coordinate
|
|
48
|
+
*/
|
|
33
49
|
Object.defineProperty(this, "$currentY", {
|
|
34
50
|
enumerable: true,
|
|
35
51
|
configurable: true,
|
|
36
52
|
writable: true,
|
|
37
53
|
value: void 0
|
|
38
54
|
});
|
|
55
|
+
/**
|
|
56
|
+
* @description サブパスの開始X座標
|
|
57
|
+
* Start X coordinate of current sub-path
|
|
58
|
+
*/
|
|
39
59
|
Object.defineProperty(this, "$startX", {
|
|
40
60
|
enumerable: true,
|
|
41
61
|
configurable: true,
|
|
42
62
|
writable: true,
|
|
43
63
|
value: void 0
|
|
44
64
|
});
|
|
65
|
+
/**
|
|
66
|
+
* @description サブパスの開始Y座標
|
|
67
|
+
* Start Y coordinate of current sub-path
|
|
68
|
+
*/
|
|
45
69
|
Object.defineProperty(this, "$startY", {
|
|
46
70
|
enumerable: true,
|
|
47
71
|
configurable: true,
|
|
@@ -127,15 +151,6 @@ export class PathCommand {
|
|
|
127
151
|
this.$currentX = x;
|
|
128
152
|
this.$currentY = y;
|
|
129
153
|
}
|
|
130
|
-
/**
|
|
131
|
-
* @description フラットネス閾値を設定
|
|
132
|
-
* Set flatness threshold for adaptive bezier tessellation
|
|
133
|
-
* @param {number} scale - 現在のスケール(行列のスケール成分)
|
|
134
|
-
* @return {void}
|
|
135
|
-
*/
|
|
136
|
-
setScale(scale) {
|
|
137
|
-
this.$flatnessThreshold = calculateAdaptiveThreshold(scale);
|
|
138
|
-
}
|
|
139
154
|
/**
|
|
140
155
|
* @description 三次ベジェ曲線を二次ベジェ曲線に適応的に近似
|
|
141
156
|
* Adaptively approximate cubic bezier with quadratic beziers
|
|
@@ -221,75 +236,6 @@ export class PathCommand {
|
|
|
221
236
|
}
|
|
222
237
|
return vertices;
|
|
223
238
|
}
|
|
224
|
-
/**
|
|
225
|
-
* @description パスから頂点配列を生成(従来互換用・単純なfan triangulation)
|
|
226
|
-
* @return {Float32Array}
|
|
227
|
-
*/
|
|
228
|
-
generateVertices() {
|
|
229
|
-
const vertices = this.$getVertices;
|
|
230
|
-
const triangles = [];
|
|
231
|
-
for (const path of vertices) {
|
|
232
|
-
if (path.length < 9) {
|
|
233
|
-
continue;
|
|
234
|
-
} // 最低3点(9要素)必要
|
|
235
|
-
// 点を抽出
|
|
236
|
-
const points = [];
|
|
237
|
-
for (let i = 0; i < path.length; i += 3) {
|
|
238
|
-
points.push({ "x": path[i], "y": path[i + 1] });
|
|
239
|
-
}
|
|
240
|
-
// Fan triangulation
|
|
241
|
-
for (let i = 1; i < points.length - 1; i++) {
|
|
242
|
-
triangles.push(points[0].x, points[0].y, points[i].x, points[i].y, points[i + 1].x, points[i + 1].y);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
return new Float32Array(triangles);
|
|
246
|
-
}
|
|
247
|
-
/**
|
|
248
|
-
* @description 現在のパスを取得(ストローク用)
|
|
249
|
-
* @return {IPoint[]}
|
|
250
|
-
*/
|
|
251
|
-
getCurrentPath() {
|
|
252
|
-
const points = [];
|
|
253
|
-
for (let i = 0; i < this.$currentPath.length; i += 3) {
|
|
254
|
-
points.push({
|
|
255
|
-
"x": this.$currentPath[i],
|
|
256
|
-
"y": this.$currentPath[i + 1]
|
|
257
|
-
});
|
|
258
|
-
}
|
|
259
|
-
return points;
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* @description すべてのパスを取得(ストローク用)
|
|
263
|
-
* @return {IPoint[][]}
|
|
264
|
-
*/
|
|
265
|
-
getAllPaths() {
|
|
266
|
-
const allPaths = [];
|
|
267
|
-
for (const path of this.$vertices) {
|
|
268
|
-
const points = [];
|
|
269
|
-
for (let i = 0; i < path.length; i += 3) {
|
|
270
|
-
points.push({
|
|
271
|
-
"x": path[i],
|
|
272
|
-
"y": path[i + 1]
|
|
273
|
-
});
|
|
274
|
-
}
|
|
275
|
-
if (points.length > 0) {
|
|
276
|
-
allPaths.push(points);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
if (this.$currentPath.length >= 3) {
|
|
280
|
-
const points = [];
|
|
281
|
-
for (let i = 0; i < this.$currentPath.length; i += 3) {
|
|
282
|
-
points.push({
|
|
283
|
-
"x": this.$currentPath[i],
|
|
284
|
-
"y": this.$currentPath[i + 1]
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
if (points.length > 0) {
|
|
288
|
-
allPaths.push(points);
|
|
289
|
-
}
|
|
290
|
-
}
|
|
291
|
-
return allPaths;
|
|
292
|
-
}
|
|
293
239
|
/**
|
|
294
240
|
* @description WebGL互換形式でパスを取得(ストローク用)
|
|
295
241
|
* [x, y, isCurve, x, y, isCurve, ...] 形式
|
|
@@ -1,57 +1,274 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description WebGPUレンダーパイプラインの管理クラス。パイプラインとバインドグループレイアウトの生成・キャッシュを行う
|
|
3
|
+
* Manager class for WebGPU render pipelines. Creates, caches, and manages pipelines and bind group layouts
|
|
4
|
+
*/
|
|
1
5
|
export declare class PipelineManager {
|
|
6
|
+
/**
|
|
7
|
+
* @description GPUデバイスの参照
|
|
8
|
+
* Reference to the GPU device
|
|
9
|
+
*/
|
|
2
10
|
private device;
|
|
11
|
+
/**
|
|
12
|
+
* @description 出力テクスチャフォーマット
|
|
13
|
+
* Output texture format
|
|
14
|
+
*/
|
|
3
15
|
private format;
|
|
16
|
+
/**
|
|
17
|
+
* @description パイプライン名からGPURenderPipelineへのキャッシュマップ
|
|
18
|
+
* Cache map from pipeline name to GPURenderPipeline
|
|
19
|
+
*/
|
|
4
20
|
private pipelines;
|
|
21
|
+
/**
|
|
22
|
+
* @description バインドグループレイアウト名からGPUBindGroupLayoutへのキャッシュマップ
|
|
23
|
+
* Cache map from layout name to GPUBindGroupLayout
|
|
24
|
+
*/
|
|
5
25
|
private bindGroupLayouts;
|
|
26
|
+
/**
|
|
27
|
+
* @description MSAAサンプル数
|
|
28
|
+
* MSAA sample count
|
|
29
|
+
*/
|
|
6
30
|
private sampleCount;
|
|
31
|
+
/**
|
|
32
|
+
* @description シェーダーモジュールのキャッシュ
|
|
33
|
+
* Shader module cache by key
|
|
34
|
+
*/
|
|
7
35
|
private shaderModuleCache;
|
|
36
|
+
/**
|
|
37
|
+
* @description フィルター用バインドグループレイアウトキャッシュ(テクスチャ数別)
|
|
38
|
+
* Filter bind group layout cache indexed by texture count
|
|
39
|
+
*/
|
|
8
40
|
private filterBindGroupLayouts;
|
|
41
|
+
/**
|
|
42
|
+
* @description PipelineManagerのコンストラクタ。GPUデバイスとフォーマットを設定し、パイプラインを初期化する
|
|
43
|
+
* Construct PipelineManager. Sets GPU device, format, and initializes pipelines
|
|
44
|
+
* @param {GPUDevice} device - GPUデバイス / GPU device instance
|
|
45
|
+
* @param {GPUTextureFormat} format - テクスチャフォーマット / Texture format for output
|
|
46
|
+
*/
|
|
9
47
|
constructor(device: GPUDevice, format: GPUTextureFormat);
|
|
48
|
+
/**
|
|
49
|
+
* @description シェーダーモジュールをキャッシュから取得、または新規作成する
|
|
50
|
+
* Get a shader module from cache, or create and cache a new one
|
|
51
|
+
* @param {string} key - キャッシュキー / Cache key
|
|
52
|
+
* @param {string} code - WGSLシェーダーコード / WGSL shader source code
|
|
53
|
+
* @return {GPUShaderModule} シェーダーモジュール / The shader module
|
|
54
|
+
*/
|
|
10
55
|
private getOrCreateShaderModule;
|
|
56
|
+
/**
|
|
57
|
+
* @description 初期パイプライン群を一括作成する
|
|
58
|
+
* Create all initial render pipelines
|
|
59
|
+
*/
|
|
11
60
|
private initialize;
|
|
61
|
+
/**
|
|
62
|
+
* @description 初期化済みの遅延グループ名セット
|
|
63
|
+
* Set of initialized lazy group names
|
|
64
|
+
*/
|
|
12
65
|
private lazyInitGroups;
|
|
66
|
+
/**
|
|
67
|
+
* @description パイプライン名から遅延初期化グループ名への読み取り専用マップ
|
|
68
|
+
* Read-only map from pipeline name to lazy initialization group name
|
|
69
|
+
*/
|
|
13
70
|
private readonly lazyGroupMap;
|
|
71
|
+
/**
|
|
72
|
+
* @description 指定された名前に対応する遅延初期化グループをまだ初期化されていなければ初期化する
|
|
73
|
+
* Ensure the lazy initialization group for the given name is initialized
|
|
74
|
+
* @param {string} name - パイプライン名 / Pipeline name to look up its lazy group
|
|
75
|
+
*/
|
|
14
76
|
private ensureLazyGroup;
|
|
77
|
+
/**
|
|
78
|
+
* @description すべての遅延初期化グループを事前にロードする
|
|
79
|
+
* Preload all lazy initialization groups eagerly
|
|
80
|
+
*/
|
|
15
81
|
preloadLazyGroups(): void;
|
|
82
|
+
/**
|
|
83
|
+
* @description 塗りつぶし描画用パイプラインを作成する(RGBA/BGRA/ステンシル対応)
|
|
84
|
+
* Create fill render pipelines (RGBA, BGRA, and stencil variants)
|
|
85
|
+
*/
|
|
16
86
|
private createFillPipeline;
|
|
87
|
+
/**
|
|
88
|
+
* @description ステンシル塗りつぶし用パイプラインを作成する(書き込み・塗りつぶし・アトラス・メイン・マスク対応)
|
|
89
|
+
* Create stencil fill pipelines (write, fill, atlas, main, and masked variants)
|
|
90
|
+
*/
|
|
17
91
|
private createStencilFillPipelines;
|
|
92
|
+
/**
|
|
93
|
+
* @description クリッピング用パイプラインを作成する(レベル別の書き込み・クリア)
|
|
94
|
+
* Create clip pipelines (level-based write and clear variants)
|
|
95
|
+
*/
|
|
18
96
|
private createClipPipeline;
|
|
97
|
+
/**
|
|
98
|
+
* @description マスク合成用パイプラインを作成する(レベル別のマージ・クリア)
|
|
99
|
+
* Create mask union pipelines (level-based merge and clear variants)
|
|
100
|
+
*/
|
|
19
101
|
private createMaskUnionPipelines;
|
|
102
|
+
/**
|
|
103
|
+
* @description マスク描画用パイプラインを作成する
|
|
104
|
+
* Create mask render pipeline
|
|
105
|
+
*/
|
|
20
106
|
private createMaskPipeline;
|
|
107
|
+
/**
|
|
108
|
+
* @description 基本描画パイプラインを作成する(RGBA/BGRA)
|
|
109
|
+
* Create basic render pipelines (RGBA and BGRA variants)
|
|
110
|
+
*/
|
|
21
111
|
private createBasicPipeline;
|
|
112
|
+
/**
|
|
113
|
+
* @description テクスチャ描画用パイプラインを作成する
|
|
114
|
+
* Create texture render pipeline
|
|
115
|
+
*/
|
|
22
116
|
private createTexturePipeline;
|
|
117
|
+
/**
|
|
118
|
+
* @description インスタンス描画用パイプラインを作成する(ブレンドバリアント・マスク対応)
|
|
119
|
+
* Create instanced render pipelines (blend variants and masked)
|
|
120
|
+
*/
|
|
23
121
|
private createInstancedPipeline;
|
|
122
|
+
/**
|
|
123
|
+
* @description グラデーション塗りつぶし用パイプラインを作成する(RGBA/BGRA/ステンシル対応)
|
|
124
|
+
* Create gradient fill pipelines (RGBA, BGRA, stencil, and stroke variants)
|
|
125
|
+
*/
|
|
24
126
|
private createGradientPipeline;
|
|
127
|
+
/**
|
|
128
|
+
* @description ビットマップ塗りつぶし用パイプラインを作成する(RGBA/BGRA/ステンシル・ストローク対応)
|
|
129
|
+
* Create bitmap fill pipelines (RGBA, BGRA, stencil, and stroke variants)
|
|
130
|
+
*/
|
|
25
131
|
private createBitmapFillPipeline;
|
|
132
|
+
/**
|
|
133
|
+
* @description ブレンド描画用パイプラインを作成する(デュアルテクスチャブレンド)
|
|
134
|
+
* Create blend render pipeline for dual-texture blending
|
|
135
|
+
*/
|
|
26
136
|
private createBlendPipeline;
|
|
137
|
+
/**
|
|
138
|
+
* @description ブラーフィルター用パイプラインを作成する(halfBlur 1〜16のバリアント)
|
|
139
|
+
* Create blur filter pipelines (halfBlur 1-16 variants)
|
|
140
|
+
*/
|
|
27
141
|
private createBlurFilterPipeline;
|
|
142
|
+
/**
|
|
143
|
+
* @description テクスチャコピー用パイプラインを作成する(各種ブレンド・フィルター出力・MSAA対応)
|
|
144
|
+
* Create texture copy pipelines (various blend modes, filter output, MSAA variants)
|
|
145
|
+
*/
|
|
28
146
|
private createTextureCopyPipeline;
|
|
147
|
+
/**
|
|
148
|
+
* @description 位置指定テクスチャ描画用パイプラインを作成する(RGBA/ビットマップレンダー対応)
|
|
149
|
+
* Create positioned texture pipelines (RGBA, bitmap render, MSAA variants)
|
|
150
|
+
*/
|
|
29
151
|
private createPositionedTexturePipeline;
|
|
152
|
+
/**
|
|
153
|
+
* @description テクスチャスケーリング用パイプラインを作成する
|
|
154
|
+
* Create texture scale pipelines
|
|
155
|
+
*/
|
|
30
156
|
private createTextureScalePipeline;
|
|
157
|
+
/**
|
|
158
|
+
* @description ビットマップ同期描画用パイプラインを作成する(MSAA 4x)
|
|
159
|
+
* Create bitmap sync render pipeline (MSAA 4x)
|
|
160
|
+
*/
|
|
31
161
|
private createBitmapSyncPipeline;
|
|
162
|
+
/**
|
|
163
|
+
* @description カラーマトリクスフィルター・ベベル・グロー・ドロップシャドウ等のフィルターパイプラインを作成する
|
|
164
|
+
* Create filter pipelines (color matrix, bevel, glow, drop shadow, gradient glow/bevel)
|
|
165
|
+
*/
|
|
32
166
|
private createColorMatrixFilterPipeline;
|
|
167
|
+
/**
|
|
168
|
+
* @description 複合ブレンド用パイプラインを作成する
|
|
169
|
+
* Create complex blend pipelines
|
|
170
|
+
*/
|
|
33
171
|
private createComplexBlendPipelines;
|
|
172
|
+
/**
|
|
173
|
+
* @description 複合ブレンドのコピー・スケール用パイプラインを作成する
|
|
174
|
+
* Create complex blend copy and scale pipelines
|
|
175
|
+
*/
|
|
34
176
|
private createComplexBlendCopyPipeline;
|
|
177
|
+
/**
|
|
178
|
+
* @description 複合ブレンドの出力用パイプラインを作成する(MSAA対応含む)
|
|
179
|
+
* Create complex blend output pipelines (including MSAA variants)
|
|
180
|
+
*/
|
|
35
181
|
private createComplexBlendOutputPipeline;
|
|
182
|
+
/**
|
|
183
|
+
* @description 指定されたフラグメントシェーダーとテクスチャ数でフィルターパイプラインを作成する
|
|
184
|
+
* Create a filter pipeline with the specified fragment shader and texture count
|
|
185
|
+
* @param {string} name - パイプライン名 / Pipeline name
|
|
186
|
+
* @param {string} fragment_shader_code - フラグメントシェーダーコード / Fragment shader WGSL source code
|
|
187
|
+
* @param {number} texture_count - テクスチャバインディング数 / Number of texture bindings
|
|
188
|
+
* @param {GPUBlendState} blend - ブレンドステート / Blend state configuration
|
|
189
|
+
*/
|
|
36
190
|
private createFilterPipelineWithLayout;
|
|
191
|
+
/**
|
|
192
|
+
* @description フルスクリーンクアッド描画用の汎用パイプラインを作成する
|
|
193
|
+
* Create a generic fullscreen quad render pipeline
|
|
194
|
+
* @param {GPUPipelineLayout} pipeline_layout - パイプラインレイアウト / Pipeline layout
|
|
195
|
+
* @param {GPUShaderModule} vertex_module - 頂点シェーダーモジュール / Vertex shader module
|
|
196
|
+
* @param {GPUShaderModule} fragment_module - フラグメントシェーダーモジュール / Fragment shader module
|
|
197
|
+
* @param {GPUTextureFormat} format - テクスチャフォーマット / Target texture format
|
|
198
|
+
* @param {GPUBlendState} blend - ブレンドステート / Blend state configuration
|
|
199
|
+
* @param {number} multisample_count - MSAAサンプル数(任意) / Optional MSAA sample count
|
|
200
|
+
* @param {GPUDepthStencilState} depth_stencil - 深度ステンシルステート(任意) / Optional depth-stencil state
|
|
201
|
+
* @return {GPURenderPipeline} レンダーパイプライン / The created render pipeline
|
|
202
|
+
*/
|
|
37
203
|
private createFullscreenQuadPipeline;
|
|
204
|
+
/**
|
|
205
|
+
* @description 名前からレンダーパイプラインを取得する(遅延初期化を含む)
|
|
206
|
+
* Get a render pipeline by name, initializing lazy groups if needed
|
|
207
|
+
* @param {string} name - パイプライン名 / Pipeline name
|
|
208
|
+
* @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
|
|
209
|
+
*/
|
|
38
210
|
getPipeline(name: string): GPURenderPipeline | undefined;
|
|
39
211
|
/**
|
|
40
|
-
* @description フィルターパイプラインのoverride
|
|
41
|
-
* GPU warp divergence
|
|
212
|
+
* @description フィルターパイプラインのoverride定数バリアントを取得する。GPU warp divergenceを排除するコンパイル時分岐特殊化
|
|
213
|
+
* Get a filter pipeline variant with override constants. Compile-time branch specialization to eliminate GPU warp divergence
|
|
214
|
+
* @param {string} base_name - ベースパイプライン名 / Base pipeline name
|
|
215
|
+
* @param {Record<string, number>} constants - オーバーライド定数 / Override constant values
|
|
216
|
+
* @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
|
|
42
217
|
*/
|
|
43
|
-
getFilterPipeline(
|
|
218
|
+
getFilterPipeline(base_name: string, constants: Record<string, number>): GPURenderPipeline | undefined;
|
|
44
219
|
/**
|
|
45
|
-
* @description
|
|
46
|
-
* override
|
|
220
|
+
* @description グラデーションタイプとスプレッドモードに応じた特殊化パイプラインを取得する。override定数でGPU warp divergenceを排除
|
|
221
|
+
* Get a gradient pipeline specialized by gradient type and spread mode. Uses override constants to eliminate GPU warp divergence
|
|
222
|
+
* @param {string} base_name - ベースパイプライン名 / Base pipeline name
|
|
223
|
+
* @param {number} gradient_type - グラデーションタイプ / Gradient type identifier
|
|
224
|
+
* @param {number} spread_mode - スプレッドモード / Spread mode identifier
|
|
225
|
+
* @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
|
|
226
|
+
*/
|
|
227
|
+
getGradientPipeline(base_name: string, gradient_type: number, spread_mode: number): GPURenderPipeline | undefined;
|
|
228
|
+
/**
|
|
229
|
+
* @description グラデーション用パイプラインレイアウト
|
|
230
|
+
* Pipeline layout for gradient pipelines
|
|
47
231
|
*/
|
|
48
|
-
getGradientPipeline(baseName: string, gradientType: number, spreadMode: number): GPURenderPipeline | undefined;
|
|
49
232
|
private gradientPipelineLayout;
|
|
233
|
+
/**
|
|
234
|
+
* @description グラデーション用頂点シェーダーモジュール
|
|
235
|
+
* Vertex shader module for gradient pipelines
|
|
236
|
+
*/
|
|
50
237
|
private gradientVertexShaderModule;
|
|
238
|
+
/**
|
|
239
|
+
* @description グラデーション用フラグメントシェーダーモジュール
|
|
240
|
+
* Fragment shader module for gradient pipelines
|
|
241
|
+
*/
|
|
51
242
|
private gradientFragmentShaderModule;
|
|
243
|
+
/**
|
|
244
|
+
* @description グラデーション用ステンシルフラグメントシェーダーモジュール
|
|
245
|
+
* Stencil fragment shader module for gradient pipelines
|
|
246
|
+
*/
|
|
52
247
|
private gradientStencilFragmentShaderModule;
|
|
248
|
+
/**
|
|
249
|
+
* @description グラデーションバリアントパイプラインを作成する(override定数による特殊化)
|
|
250
|
+
* Create a gradient variant pipeline with override constants for specialization
|
|
251
|
+
* @param {string} base_name - ベースパイプライン名 / Base pipeline name
|
|
252
|
+
* @param {number} gradient_type - グラデーションタイプ / Gradient type identifier
|
|
253
|
+
* @param {number} spread_mode - スプレッドモード / Spread mode identifier
|
|
254
|
+
* @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
|
|
255
|
+
*/
|
|
53
256
|
private createGradientVariant;
|
|
257
|
+
/**
|
|
258
|
+
* @description 名前からバインドグループレイアウトを取得する(遅延初期化を含む)
|
|
259
|
+
* Get a bind group layout by name, initializing lazy groups if needed
|
|
260
|
+
* @param {string} name - バインドグループレイアウト名 / Bind group layout name
|
|
261
|
+
* @return {GPUBindGroupLayout | undefined} レイアウトまたはundefined / The layout or undefined
|
|
262
|
+
*/
|
|
54
263
|
getBindGroupLayout(name: string): GPUBindGroupLayout | undefined;
|
|
264
|
+
/**
|
|
265
|
+
* @description ノードクリア用パイプラインを作成する(カラーとステンシルの同時クリア)
|
|
266
|
+
* Create node clear pipeline for simultaneous color and stencil clear
|
|
267
|
+
*/
|
|
55
268
|
private createNodeClearPipeline;
|
|
269
|
+
/**
|
|
270
|
+
* @description すべてのパイプライン・レイアウト・シェーダーモジュールを解放する
|
|
271
|
+
* Dispose all pipelines, layouts, and shader module caches
|
|
272
|
+
*/
|
|
56
273
|
dispose(): void;
|
|
57
274
|
}
|