@next2d/webgpu 3.0.5 → 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
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import { ShaderSource } from "../../Shader/ShaderSource";
|
|
2
2
|
/**
|
|
3
3
|
* @description プリアロケートされた uniform データ (12 floats = 48 bytes)
|
|
4
|
+
* Pre-allocated uniform data array (12 floats = 48 bytes)
|
|
5
|
+
* @type {Float32Array}
|
|
4
6
|
*/
|
|
5
7
|
const $uniform12 = new Float32Array(12);
|
|
6
8
|
/**
|
|
7
9
|
* @description プリアロケートされた BindGroupEntry 配列 (4 bindings)
|
|
10
|
+
* Pre-allocated BindGroupEntry array (4 bindings)
|
|
11
|
+
* @type {GPUBindGroupEntry[]}
|
|
8
12
|
*/
|
|
9
13
|
const $entries4 = [
|
|
10
14
|
{ "binding": 0, "resource": { "buffer": null } },
|
|
@@ -13,22 +17,29 @@ const $entries4 = [
|
|
|
13
17
|
{ "binding": 3, "resource": null }
|
|
14
18
|
];
|
|
15
19
|
/**
|
|
16
|
-
* @description
|
|
20
|
+
* @description 複雑なブレンドモードを適用し、ブレンド結果のアタッチメントを返す
|
|
21
|
+
* Applies a complex blend mode and returns the resulting attachment
|
|
22
|
+
* @param {IAttachmentObject} src_attachment - ソースアタッチメント / Source attachment
|
|
23
|
+
* @param {IAttachmentObject} dst_attachment - デスティネーションアタッチメント / Destination attachment
|
|
24
|
+
* @param {string} blend_mode - ブレンドモード名 / Blend mode name
|
|
25
|
+
* @param {Float32Array} color_transform - カラートランスフォーム配列 / Color transform array
|
|
26
|
+
* @param {IFilterConfig} config - フィルター設定 / Filter configuration
|
|
27
|
+
* @return {IAttachmentObject}
|
|
17
28
|
*/
|
|
18
|
-
export const execute = (
|
|
29
|
+
export const execute = (src_attachment, dst_attachment, blend_mode, color_transform, config) => {
|
|
19
30
|
const { device, commandEncoder, frameBufferManager, pipelineManager, textureManager } = config;
|
|
20
31
|
// 出力サイズは両方の大きい方を使用
|
|
21
|
-
const width = Math.max(
|
|
22
|
-
const height = Math.max(
|
|
32
|
+
const width = Math.max(src_attachment.width, dst_attachment.width);
|
|
33
|
+
const height = Math.max(src_attachment.height, dst_attachment.height);
|
|
23
34
|
// 出力アタッチメントを作成
|
|
24
35
|
const destAttachment = frameBufferManager.createTemporaryAttachment(width, height);
|
|
25
36
|
// 統一パイプラインを使用
|
|
26
37
|
const pipeline = pipelineManager.getPipeline("complex_blend");
|
|
27
38
|
const bindGroupLayout = pipelineManager.getBindGroupLayout("complex_blend");
|
|
28
39
|
if (!pipeline || !bindGroupLayout) {
|
|
29
|
-
console.error(`[WebGPU ComplexBlend] Pipeline not found for blend mode: ${
|
|
40
|
+
console.error(`[WebGPU ComplexBlend] Pipeline not found for blend mode: ${blend_mode}`);
|
|
30
41
|
// フォールバック: srcをそのまま返す
|
|
31
|
-
return
|
|
42
|
+
return src_attachment;
|
|
32
43
|
}
|
|
33
44
|
// サンプラーを作成
|
|
34
45
|
const sampler = textureManager.createSampler("complex_blend_sampler", true);
|
|
@@ -37,15 +48,15 @@ export const execute = (srcAttachment, dstAttachment, blendMode, colorTransform,
|
|
|
37
48
|
// addColor: vec4<f32> (16 bytes)
|
|
38
49
|
// blendMode: f32 + padding: vec3<f32> (16 bytes)
|
|
39
50
|
// Total: 48 bytes
|
|
40
|
-
const blendModeIndex = ShaderSource.getBlendModeIndex(
|
|
41
|
-
$uniform12[0] =
|
|
42
|
-
$uniform12[1] =
|
|
43
|
-
$uniform12[2] =
|
|
44
|
-
$uniform12[3] =
|
|
45
|
-
$uniform12[4] =
|
|
46
|
-
$uniform12[5] =
|
|
47
|
-
$uniform12[6] =
|
|
48
|
-
$uniform12[7] =
|
|
51
|
+
const blendModeIndex = ShaderSource.getBlendModeIndex(blend_mode);
|
|
52
|
+
$uniform12[0] = color_transform[0];
|
|
53
|
+
$uniform12[1] = color_transform[1];
|
|
54
|
+
$uniform12[2] = color_transform[2];
|
|
55
|
+
$uniform12[3] = color_transform[3];
|
|
56
|
+
$uniform12[4] = color_transform[4];
|
|
57
|
+
$uniform12[5] = color_transform[5];
|
|
58
|
+
$uniform12[6] = color_transform[6];
|
|
59
|
+
$uniform12[7] = color_transform[7];
|
|
49
60
|
$uniform12[8] = blendModeIndex;
|
|
50
61
|
$uniform12[9] = 0;
|
|
51
62
|
$uniform12[10] = 0;
|
|
@@ -62,8 +73,8 @@ export const execute = (srcAttachment, dstAttachment, blendMode, colorTransform,
|
|
|
62
73
|
// バインドグループを作成
|
|
63
74
|
$entries4[0].resource.buffer = uniformBuffer;
|
|
64
75
|
$entries4[1].resource = sampler;
|
|
65
|
-
$entries4[2].resource =
|
|
66
|
-
$entries4[3].resource =
|
|
76
|
+
$entries4[2].resource = dst_attachment.texture.view;
|
|
77
|
+
$entries4[3].resource = src_attachment.texture.view;
|
|
67
78
|
const bindGroup = device.createBindGroup({
|
|
68
79
|
"layout": bindGroupLayout,
|
|
69
80
|
"entries": $entries4
|
package/src/Blend.d.ts
CHANGED
|
@@ -1,8 +1,26 @@
|
|
|
1
1
|
import type { IBlendMode } from "./interface/IBlendMode";
|
|
2
2
|
import type { IBlendState } from "./interface/IBlendState";
|
|
3
3
|
export type { IBlendState };
|
|
4
|
+
/**
|
|
5
|
+
* @description 現在のブレンドモード
|
|
6
|
+
* The current blend mode used for rendering
|
|
7
|
+
*
|
|
8
|
+
* @type {IBlendMode}
|
|
9
|
+
*/
|
|
4
10
|
export declare let $currentBlendMode: IBlendMode;
|
|
5
|
-
|
|
11
|
+
/**
|
|
12
|
+
* @description 現在のブレンドモードを設定する
|
|
13
|
+
* Set the current blend mode
|
|
14
|
+
*
|
|
15
|
+
* @param {IBlendMode} blend_mode - ブレンドモード / blend mode to apply
|
|
16
|
+
* @return {void}
|
|
17
|
+
*/
|
|
6
18
|
export declare const $setCurrentBlendMode: (blend_mode: IBlendMode) => void;
|
|
7
|
-
|
|
19
|
+
/**
|
|
20
|
+
* @description 指定されたブレンドモードに対応するWebGPUブレンドステートを返す
|
|
21
|
+
* Returns the WebGPU blend state configuration for the given blend mode
|
|
22
|
+
*
|
|
23
|
+
* @param {IBlendMode} mode - ブレンドモード / blend mode
|
|
24
|
+
* @return {IBlendState}
|
|
25
|
+
*/
|
|
8
26
|
export declare const $getBlendState: (mode: IBlendMode) => IBlendState;
|
package/src/Blend.js
CHANGED
|
@@ -1,11 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 現在のブレンドモード
|
|
3
|
+
* The current blend mode used for rendering
|
|
4
|
+
*
|
|
5
|
+
* @type {IBlendMode}
|
|
6
|
+
*/
|
|
1
7
|
export let $currentBlendMode = "normal";
|
|
2
|
-
|
|
8
|
+
/**
|
|
9
|
+
* @description 現在のブレンドモードを設定する
|
|
10
|
+
* Set the current blend mode
|
|
11
|
+
*
|
|
12
|
+
* @param {IBlendMode} blend_mode - ブレンドモード / blend mode to apply
|
|
13
|
+
* @return {void}
|
|
14
|
+
*/
|
|
3
15
|
export const $setCurrentBlendMode = (blend_mode) => {
|
|
4
16
|
$currentBlendMode = blend_mode;
|
|
5
17
|
};
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
18
|
+
/**
|
|
19
|
+
* @description 指定されたブレンドモードに対応するWebGPUブレンドステートを返す
|
|
20
|
+
* Returns the WebGPU blend state configuration for the given blend mode
|
|
21
|
+
*
|
|
22
|
+
* @param {IBlendMode} mode - ブレンドモード / blend mode
|
|
23
|
+
* @return {IBlendState}
|
|
24
|
+
*/
|
|
9
25
|
export const $getBlendState = (mode) => {
|
|
10
26
|
switch (mode) {
|
|
11
27
|
case "add":
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @type {number}
|
|
5
5
|
* @const
|
|
6
6
|
*/
|
|
7
|
-
const MAX_BUCKET_SIZE = 32;
|
|
7
|
+
const $MAX_BUCKET_SIZE = 32;
|
|
8
8
|
/**
|
|
9
9
|
* @description ユニフォームバッファをプールに返却
|
|
10
10
|
* Release uniform buffer back to pool
|
|
@@ -23,7 +23,7 @@ export const execute = (buckets, buffer) => {
|
|
|
23
23
|
bucket = [];
|
|
24
24
|
buckets.set(size, bucket);
|
|
25
25
|
}
|
|
26
|
-
if (bucket.length >= MAX_BUCKET_SIZE) {
|
|
26
|
+
if (bucket.length >= $MAX_BUCKET_SIZE) {
|
|
27
27
|
// バケットが満杯の場合、このバッファを破棄
|
|
28
28
|
buffer.destroy();
|
|
29
29
|
return;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @type {number}
|
|
5
5
|
* @const
|
|
6
6
|
*/
|
|
7
|
-
const MAX_BUCKET_SIZE = 32;
|
|
7
|
+
const $MAX_BUCKET_SIZE = 32;
|
|
8
8
|
/**
|
|
9
9
|
* @description 頂点バッファをプールに返却
|
|
10
10
|
* Release vertex buffer back to pool
|
|
@@ -23,7 +23,7 @@ export const execute = (buckets, buffer) => {
|
|
|
23
23
|
bucket = [];
|
|
24
24
|
buckets.set(size, bucket);
|
|
25
25
|
}
|
|
26
|
-
if (bucket.length >= MAX_BUCKET_SIZE) {
|
|
26
|
+
if (bucket.length >= $MAX_BUCKET_SIZE) {
|
|
27
27
|
// バケットが満杯の場合、このバッファを破棄
|
|
28
28
|
buffer.destroy();
|
|
29
29
|
return;
|
|
@@ -8,5 +8,6 @@
|
|
|
8
8
|
* @param {number} instance_count - インスタンス数
|
|
9
9
|
* @param {number} first_vertex - 開始頂点インデックス
|
|
10
10
|
* @param {number} first_instance - 開始インスタンスインデックス
|
|
11
|
+
* @return {void}
|
|
11
12
|
*/
|
|
12
13
|
export declare const execute: (device: GPUDevice, buffer: GPUBuffer, vertex_count: number, instance_count: number, first_vertex?: number, first_instance?: number) => void;
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
* @param {number} instance_count - インスタンス数
|
|
9
9
|
* @param {number} first_vertex - 開始頂点インデックス
|
|
10
10
|
* @param {number} first_instance - 開始インスタンスインデックス
|
|
11
|
+
* @return {void}
|
|
11
12
|
*/
|
|
12
13
|
export const execute = (device, buffer, vertex_count, instance_count, first_vertex = 0, first_instance = 0) => {
|
|
13
14
|
const indirectData = new Uint32Array([
|
|
@@ -8,5 +8,6 @@ import type { IPooledStorageBuffer } from "../../interface/IStorageBufferConfig"
|
|
|
8
8
|
* @param {IPooledStorageBuffer[]} pool - Storage Bufferプール
|
|
9
9
|
* @param {number} current_frame - 現在のフレーム番号
|
|
10
10
|
* @param {number} max_age - 最大保持フレーム数
|
|
11
|
+
* @return {void}
|
|
11
12
|
*/
|
|
12
13
|
export declare const execute: (pool: IPooledStorageBuffer[], current_frame: number, max_age?: number) => void;
|
package/src/BufferManager.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @description
|
|
3
|
-
*
|
|
4
|
-
* BindGroup作成を1回に削減する。
|
|
2
|
+
* @description 動的Uniformバッファアロケータ。1フレーム内の全uniformデータを1本の大バッファにサブアロケートし、BindGroup作成を1回に削減
|
|
3
|
+
* Dynamic Uniform Buffer Allocator. Sub-allocates all uniform data within a frame into a single large buffer, reducing BindGroup creation to once
|
|
5
4
|
*/
|
|
6
5
|
export declare class DynamicUniformAllocator {
|
|
7
6
|
private device;
|
|
@@ -13,38 +12,54 @@ export declare class DynamicUniformAllocator {
|
|
|
13
12
|
private stagingBuffer;
|
|
14
13
|
private stagingFloat32;
|
|
15
14
|
private dirtyEnd;
|
|
15
|
+
/**
|
|
16
|
+
* @description コンストラクタ。GPUデバイスとバッファ容量を設定
|
|
17
|
+
* Constructor. Sets up GPU device and buffer capacity
|
|
18
|
+
* @param {GPUDevice} device - WebGPUデバイス
|
|
19
|
+
* @param {number} capacity - 初期バッファ容量(バイト単位、デフォルト: 65536)
|
|
20
|
+
*/
|
|
16
21
|
constructor(device: GPUDevice, capacity?: number);
|
|
17
22
|
/**
|
|
18
|
-
* @description
|
|
19
|
-
*
|
|
23
|
+
* @description フレーム開始時にオフセットをリセットし、前フレームの旧バッファを安全に破棄
|
|
24
|
+
* Reset offset at frame start and safely destroy old buffers from previous frame
|
|
25
|
+
* @return {void}
|
|
20
26
|
*/
|
|
21
27
|
resetFrame(): void;
|
|
22
28
|
/**
|
|
23
29
|
* @description バッファを取得(遅延生成)
|
|
30
|
+
* Get buffer with lazy initialization
|
|
31
|
+
* @return {GPUBuffer} GPUバッファ
|
|
24
32
|
*/
|
|
25
33
|
getBuffer(): GPUBuffer;
|
|
26
34
|
/**
|
|
27
|
-
* @description uniform
|
|
28
|
-
*
|
|
29
|
-
* @param data - 書き込むデータ
|
|
30
|
-
* @return アライメント済みオフセット(バイト単位)
|
|
35
|
+
* @description uniformデータをCPUステージングバッファにコピーし、アライメント済みオフセットを返す。実際のGPU書き込みはflush()で一括実行
|
|
36
|
+
* Copy uniform data to CPU staging buffer and return aligned offset. Actual GPU write is batched in flush()
|
|
37
|
+
* @param {Float32Array} data - 書き込むデータ
|
|
38
|
+
* @return {number} アライメント済みオフセット(バイト単位)
|
|
31
39
|
*/
|
|
32
40
|
allocate(data: Float32Array): number;
|
|
33
41
|
/**
|
|
34
|
-
* @description ステージングバッファの内容をGPU
|
|
35
|
-
* submit
|
|
42
|
+
* @description ステージングバッファの内容をGPUバッファに一括書き込み。submit前に1回だけ呼び出す
|
|
43
|
+
* Flush staging buffer content to GPU buffer in bulk. Call once before submit
|
|
44
|
+
* @return {void}
|
|
36
45
|
*/
|
|
37
46
|
flush(): void;
|
|
47
|
+
/**
|
|
48
|
+
* @description バッファを破棄してリソースを解放
|
|
49
|
+
* Dispose buffers and release resources
|
|
50
|
+
* @return {void}
|
|
51
|
+
*/
|
|
38
52
|
dispose(): void;
|
|
39
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* @description GPUバッファの管理クラス。頂点・ユニフォーム・ストレージ・インダイレクトバッファのプール管理と再利用を提供
|
|
56
|
+
* GPU buffer management class. Provides pooling and reuse for vertex, uniform, storage, and indirect buffers
|
|
57
|
+
*/
|
|
40
58
|
export declare class BufferManager {
|
|
41
59
|
private device;
|
|
42
|
-
private vertexBuffers;
|
|
43
|
-
private uniformBuffers;
|
|
44
60
|
private vertexBufferBuckets;
|
|
45
61
|
private uniformBufferBuckets;
|
|
46
62
|
private storageBufferPool;
|
|
47
|
-
private indirectBuffer;
|
|
48
63
|
private indirectBufferPool;
|
|
49
64
|
private frameIndirectBuffers;
|
|
50
65
|
private frameNumber;
|
|
@@ -52,42 +67,92 @@ export declare class BufferManager {
|
|
|
52
67
|
private frameVertexPoolBuffers;
|
|
53
68
|
private frameUniformPoolBuffers;
|
|
54
69
|
readonly dynamicUniform: DynamicUniformAllocator;
|
|
70
|
+
/**
|
|
71
|
+
* @description コンストラクタ。GPUデバイスを設定し、各種バッファプールを初期化
|
|
72
|
+
* Constructor. Sets up GPU device and initializes buffer pools
|
|
73
|
+
* @param {GPUDevice} device - WebGPUデバイス
|
|
74
|
+
*/
|
|
55
75
|
constructor(device: GPUDevice);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
76
|
+
/**
|
|
77
|
+
* @description 矩形の頂点データを作成
|
|
78
|
+
* Create rect vertices data
|
|
79
|
+
* @param {number} x - X座標
|
|
80
|
+
* @param {number} y - Y座標
|
|
81
|
+
* @param {number} width - 幅
|
|
82
|
+
* @param {number} height - 高さ
|
|
83
|
+
* @return {Float32Array} 矩形の頂点データ
|
|
84
|
+
*/
|
|
61
85
|
createRectVertices(x: number, y: number, width: number, height: number): Float32Array;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
86
|
+
/**
|
|
87
|
+
* @description プールから頂点バッファを取得(または新規作成)
|
|
88
|
+
* Acquire vertex buffer from pool or create new one
|
|
89
|
+
* @param {number} required_size - 必要なバイトサイズ
|
|
90
|
+
* @param {Float32Array} [data] - 初期データ
|
|
91
|
+
* @return {GPUBuffer} 取得された頂点バッファ
|
|
92
|
+
*/
|
|
93
|
+
acquireVertexBuffer(required_size: number, data?: Float32Array): GPUBuffer;
|
|
94
|
+
/**
|
|
95
|
+
* @description プールからユニフォームバッファを取得(または新規作成)
|
|
96
|
+
* Acquire uniform buffer from pool or create new one
|
|
97
|
+
* @param {number} required_size - 必要なバイトサイズ
|
|
98
|
+
* @return {GPUBuffer} 取得されたユニフォームバッファ
|
|
99
|
+
*/
|
|
100
|
+
acquireUniformBuffer(required_size: number): GPUBuffer;
|
|
65
101
|
/**
|
|
66
102
|
* @description Uniform Bufferの取得と書き込みを一括で行うヘルパー
|
|
67
|
-
* acquireUniformBuffer + writeBuffer
|
|
68
|
-
* @param data - 書き込むデータ
|
|
69
|
-
* @param
|
|
70
|
-
* @return GPUBuffer
|
|
71
|
-
*/
|
|
72
|
-
acquireAndWriteUniformBuffer(data: Float32Array,
|
|
73
|
-
|
|
74
|
-
|
|
103
|
+
* Helper to acquire and write uniform buffer in one call, combining acquireUniformBuffer + writeBuffer
|
|
104
|
+
* @param {Float32Array} data - 書き込むデータ
|
|
105
|
+
* @param {number} [byte_length] - 書き込みバイト数(省略時はdata.byteLength)
|
|
106
|
+
* @return {GPUBuffer} 取得されたユニフォームバッファ
|
|
107
|
+
*/
|
|
108
|
+
acquireAndWriteUniformBuffer(data: Float32Array, byte_length?: number): GPUBuffer;
|
|
109
|
+
/**
|
|
110
|
+
* @description 全バッファを破棄してリソースを解放
|
|
111
|
+
* Dispose all buffers and release resources
|
|
112
|
+
* @return {void}
|
|
113
|
+
*/
|
|
75
114
|
dispose(): void;
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
115
|
+
/**
|
|
116
|
+
* @description フレーム内で使用したバッファをクリアし、プールに返却
|
|
117
|
+
* Clear frame buffers and return them to pool
|
|
118
|
+
* @return {void}
|
|
119
|
+
*/
|
|
80
120
|
clearFrameBuffers(): void;
|
|
121
|
+
/**
|
|
122
|
+
* @description 全てのStorage Bufferを未使用状態に戻す
|
|
123
|
+
* Mark all storage buffers as not in use
|
|
124
|
+
* @return {void}
|
|
125
|
+
*/
|
|
81
126
|
releaseAllStorageBuffers(): void;
|
|
82
|
-
|
|
83
|
-
|
|
127
|
+
/**
|
|
128
|
+
* @description プールからStorage Bufferを取得(または新規作成)
|
|
129
|
+
* Acquire storage buffer from pool or create new one
|
|
130
|
+
* @param {number} required_size - 必要なバイトサイズ
|
|
131
|
+
* @return {GPUBuffer} 取得されたStorage Buffer
|
|
132
|
+
*/
|
|
133
|
+
acquireStorageBuffer(required_size: number): GPUBuffer;
|
|
134
|
+
/**
|
|
135
|
+
* @description Storage Bufferにデータを書き込む
|
|
136
|
+
* Write data to storage buffer
|
|
137
|
+
* @param {GPUBuffer} buffer - 書き込み先バッファ
|
|
138
|
+
* @param {Float32Array | Uint32Array} data - 書き込むデータ
|
|
139
|
+
* @return {void}
|
|
140
|
+
*/
|
|
84
141
|
writeStorageBuffer(buffer: GPUBuffer, data: Float32Array | Uint32Array): void;
|
|
85
|
-
|
|
86
|
-
|
|
142
|
+
/**
|
|
143
|
+
* @description 新しいIndirect Bufferを作成(プールから再利用または新規作成)
|
|
144
|
+
* Create new indirect buffer (reuse from pool or create new)
|
|
145
|
+
* @param {number} vertex_count - 頂点数
|
|
146
|
+
* @param {number} instance_count - インスタンス数
|
|
147
|
+
* @param {number} first_vertex - 開始頂点インデックス
|
|
148
|
+
* @param {number} first_instance - 開始インスタンスインデックス
|
|
149
|
+
* @return {GPUBuffer} 作成されたIndirect Buffer
|
|
150
|
+
*/
|
|
151
|
+
createIndirectBuffer(vertex_count: number, instance_count: number, first_vertex?: number, first_instance?: number): GPUBuffer;
|
|
152
|
+
/**
|
|
153
|
+
* @description 単位矩形(0,0,1,1)の頂点バッファを取得(遅延生成)
|
|
154
|
+
* Get unit rect (0,0,1,1) vertex buffer with lazy creation
|
|
155
|
+
* @return {GPUBuffer} 単位矩形の頂点バッファ
|
|
156
|
+
*/
|
|
87
157
|
getUnitRectBuffer(): GPUBuffer;
|
|
88
|
-
getFrameNumber(): number;
|
|
89
|
-
getStoragePoolStats(): {
|
|
90
|
-
storagePoolSize: number;
|
|
91
|
-
storagePoolInUse: number;
|
|
92
|
-
};
|
|
93
158
|
}
|