@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,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description ステンシル書き込み用フラグメントシェーダー(ベジェ曲線アンチエイリアス)
|
|
3
|
+
* Stencil write fragment shader with bezier curve anti-aliasing
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export const StencilWriteFragment = /* wgsl */ `
|
|
2
9
|
struct FragmentInput {
|
|
3
10
|
@builtin(position) position: vec4<f32>,
|
|
@@ -19,6 +26,13 @@ fn main(input: FragmentInput) -> @location(0) vec4<f32> {
|
|
|
19
26
|
return vec4<f32>(0.0, 0.0, 0.0, min(alpha, 1.0));
|
|
20
27
|
}
|
|
21
28
|
`;
|
|
29
|
+
/**
|
|
30
|
+
* @description ステンシル塗り用フラグメントシェーダー(プリマルチプライドアルファ出力)
|
|
31
|
+
* Stencil fill fragment shader with premultiplied alpha output
|
|
32
|
+
*
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @constant
|
|
35
|
+
*/
|
|
22
36
|
export const StencilFillFragment = /* wgsl */ `
|
|
23
37
|
struct FragmentInput {
|
|
24
38
|
@builtin(position) position: vec4<f32>,
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 基本頂点シェーダー(行列変換・プリマルチプライドカラー出力)
|
|
3
|
+
* Basic vertex shader with matrix transform and premultiplied color output
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const BasicVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) texCoord: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n @location(1) color: vec4<f32>,\n}\n\nstruct Uniforms {\n matrix: mat3x3<f32>,\n color: vec4<f32>,\n alpha: f32,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: Uniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let pos = uniforms.matrix * vec3<f32>(input.position, 1.0);\n let ndc = pos.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.texCoord = input.texCoord;\n let premultipliedColor = vec4<f32>(\n uniforms.color.rgb * uniforms.color.a * uniforms.alpha,\n uniforms.color.a * uniforms.alpha\n );\n output.color = premultipliedColor;\n return output;\n}\n";
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description ビットマップ塗り用頂点シェーダー(ワールド座標出力付き)
|
|
3
|
+
* Bitmap fill vertex shader with world position output
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const BitmapFillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n @location(1) color: vec4<f32>,\n @location(2) worldPos: vec2<f32>,\n}\n\nstruct BitmapUniforms {\n bitmapMatrix: mat3x3<f32>,\n width: f32,\n height: f32,\n repeat: f32,\n _pad: f32,\n color: vec4<f32>,\n contextMatrix0: vec4<f32>,\n contextMatrix1: vec4<f32>,\n contextMatrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> bitmap: BitmapUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(bitmap.contextMatrix0.xyz, bitmap.contextMatrix1.xyz, bitmap.contextMatrix2.xyz);\n let transformedPos = matrix * vec3<f32>(input.position, 1.0);\n let clipX = transformedPos.x * 2.0 - 1.0;\n let clipY = (transformedPos.y * 2.0 - 1.0) * yFlipSign;\n output.position = vec4<f32>(clipX, clipY, 0.0, 1.0);\n output.bezier = input.bezier;\n output.color = bitmap.color;\n output.worldPos = input.position;\n return output;\n}\n";
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 塗り用頂点シェーダー(ベジェ曲線パラメータ付き行列変換)
|
|
3
|
+
* Fill vertex shader with matrix transform and bezier parameters
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const FillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n @location(1) color: vec4<f32>,\n}\n\nstruct FillUniforms {\n color: vec4<f32>,\n matrix0: vec4<f32>,\n matrix1: vec4<f32>,\n matrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: FillUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrix0.xyz, uniforms.matrix1.xyz, uniforms.matrix2.xyz);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let ndc = transformed.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.bezier = input.bezier;\n output.color = uniforms.color;\n return output;\n}\n";
|
|
@@ -1,12 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description ブラーフィルター用フルスクリーン頂点シェーダー(Y軸テクスチャ反転)
|
|
3
|
+
* Full-screen vertex shader for blur filter with Y-axis texture flip
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const BlurFilterVertex: string;
|
|
9
|
+
/**
|
|
10
|
+
* @description 複合ブレンド用フルスクリーン頂点シェーダー
|
|
11
|
+
* Full-screen vertex shader for complex blend
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
* @constant
|
|
15
|
+
*/
|
|
2
16
|
export declare const ComplexBlendVertex: string;
|
|
17
|
+
/**
|
|
18
|
+
* @description 複合ブレンドコピー用フルスクリーン頂点シェーダー
|
|
19
|
+
* Full-screen vertex shader for complex blend copy
|
|
20
|
+
*
|
|
21
|
+
* @type {string}
|
|
22
|
+
* @constant
|
|
23
|
+
*/
|
|
3
24
|
export declare const ComplexBlendCopyVertex: string;
|
|
25
|
+
/**
|
|
26
|
+
* @description ノードクリア用頂点シェーダー(NDC変換のみ)
|
|
27
|
+
* Node clear vertex shader with NDC transform only
|
|
28
|
+
*
|
|
29
|
+
* @type {string}
|
|
30
|
+
* @constant
|
|
31
|
+
*/
|
|
4
32
|
export declare const NodeClearVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n}\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let ndc = input.position * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y, 0.0, 1.0);\n return output;\n}\n";
|
|
33
|
+
/**
|
|
34
|
+
* @description 位置指定テクスチャ描画用頂点シェーダー(ビューポート変換付き)
|
|
35
|
+
* Positioned texture rendering vertex shader with viewport transform
|
|
36
|
+
*
|
|
37
|
+
* @type {string}
|
|
38
|
+
* @constant
|
|
39
|
+
*/
|
|
5
40
|
export declare const PositionedTextureVertex = "\nstruct PositionUniforms {\n offset: vec2<f32>,\n size: vec2<f32>,\n viewport: vec2<f32>,\n padding: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: PositionUniforms;\n\n@vertex\nfn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {\n var output: VertexOutput;\n\n const vertices = array<vec2<f32>, 6>(\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(1.0, 1.0)\n );\n let vertex = vertices[vertexIndex];\n output.texCoord = vec2<f32>(vertex.x, 1.0 - vertex.y);\n var position = vertex * uniforms.size + uniforms.offset;\n position = position / uniforms.viewport;\n position = position * 2.0 - 1.0;\n output.position = vec4<f32>(position.x, -position.y, 0.0, 1.0);\n return output;\n}\n";
|
|
41
|
+
/**
|
|
42
|
+
* @description ビットマップ同期用頂点シェーダー(ノード矩形ベース配置)
|
|
43
|
+
* Bitmap sync vertex shader with node rectangle-based positioning
|
|
44
|
+
*
|
|
45
|
+
* @type {string}
|
|
46
|
+
* @constant
|
|
47
|
+
*/
|
|
6
48
|
export declare const BitmapSyncVertex = "\nstruct BitmapSyncUniforms {\n nodeRect: vec4<f32>,\n textureSize: vec2<f32>,\n padding: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: BitmapSyncUniforms;\n\n@vertex\nfn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {\n var output: VertexOutput;\n\n const vertices = array<vec2<f32>, 6>(\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(1.0, 1.0)\n );\n let vertex = vertices[vertexIndex];\n let pixelPos = vec2<f32>(\n uniforms.nodeRect.x + vertex.x * uniforms.nodeRect.z,\n uniforms.nodeRect.y + vertex.y * uniforms.nodeRect.w\n );\n let ndc = pixelPos / uniforms.textureSize * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, -ndc.y, 0.0, 1.0);\n output.texCoord = pixelPos / uniforms.textureSize;\n return output;\n}\n";
|
|
7
|
-
|
|
49
|
+
/**
|
|
50
|
+
* @description テクスチャスケール用頂点シェーダー
|
|
51
|
+
* Texture scale vertex shader
|
|
52
|
+
*
|
|
53
|
+
* @type {string}
|
|
54
|
+
* @constant
|
|
55
|
+
*/
|
|
8
56
|
export declare const TextureScaleVertex: string;
|
|
57
|
+
/**
|
|
58
|
+
* @description ブレンド用テクスチャスケール頂点シェーダー(Y軸反転)
|
|
59
|
+
* Texture scale vertex shader for blend with Y-axis flip
|
|
60
|
+
*
|
|
61
|
+
* @type {string}
|
|
62
|
+
* @constant
|
|
63
|
+
*/
|
|
9
64
|
export declare const TextureScaleBlendVertex: string;
|
|
65
|
+
/**
|
|
66
|
+
* @description 複合ブレンドスケール用頂点シェーダー
|
|
67
|
+
* Complex blend scale vertex shader
|
|
68
|
+
*
|
|
69
|
+
* @type {string}
|
|
70
|
+
* @constant
|
|
71
|
+
*/
|
|
10
72
|
export declare const ComplexBlendScaleVertex: string;
|
|
73
|
+
/**
|
|
74
|
+
* @description 複合ブレンド出力用頂点シェーダー
|
|
75
|
+
* Complex blend output vertex shader
|
|
76
|
+
*
|
|
77
|
+
* @type {string}
|
|
78
|
+
* @constant
|
|
79
|
+
*/
|
|
11
80
|
export declare const ComplexBlendOutputVertex: string;
|
|
81
|
+
/**
|
|
82
|
+
* @description フィルター複合ブレンド出力用頂点シェーダー(Y軸反転)
|
|
83
|
+
* Filter complex blend output vertex shader with Y-axis flip
|
|
84
|
+
*
|
|
85
|
+
* @type {string}
|
|
86
|
+
* @constant
|
|
87
|
+
*/
|
|
12
88
|
export declare const FilterComplexBlendOutputVertex: string;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
import { WgslFullscreenPositions, WgslUnitQuadVertices, WgslVertexOutput } from "../common/SharedWgsl";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
|
+
* @description フルスクリーン四角形の頂点シェーダーを生成する
|
|
4
|
+
* Generate a full-screen quad vertex shader
|
|
5
|
+
*
|
|
6
|
+
* @param {boolean} y_flip_tex_coord - テクスチャY座標を反転するかどうか
|
|
7
|
+
* @return {string}
|
|
8
|
+
*/
|
|
9
|
+
const $createFullscreenQuadVertex = (y_flip_tex_coord) => /* wgsl */ `
|
|
3
10
|
${WgslVertexOutput}
|
|
4
11
|
|
|
5
12
|
@vertex
|
|
@@ -7,21 +14,49 @@ fn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
|
|
|
7
14
|
var output: VertexOutput;
|
|
8
15
|
${WgslFullscreenPositions}
|
|
9
16
|
var texCoords = array<vec2<f32>, 6>(
|
|
10
|
-
vec2<f32>(0.0, ${
|
|
11
|
-
vec2<f32>(1.0, ${
|
|
12
|
-
vec2<f32>(0.0, ${
|
|
13
|
-
vec2<f32>(0.0, ${
|
|
14
|
-
vec2<f32>(1.0, ${
|
|
15
|
-
vec2<f32>(1.0, ${
|
|
17
|
+
vec2<f32>(0.0, ${y_flip_tex_coord ? "1.0" : "0.0"}),
|
|
18
|
+
vec2<f32>(1.0, ${y_flip_tex_coord ? "1.0" : "0.0"}),
|
|
19
|
+
vec2<f32>(0.0, ${y_flip_tex_coord ? "0.0" : "1.0"}),
|
|
20
|
+
vec2<f32>(0.0, ${y_flip_tex_coord ? "0.0" : "1.0"}),
|
|
21
|
+
vec2<f32>(1.0, ${y_flip_tex_coord ? "1.0" : "0.0"}),
|
|
22
|
+
vec2<f32>(1.0, ${y_flip_tex_coord ? "0.0" : "1.0"})
|
|
16
23
|
);
|
|
17
24
|
output.position = vec4<f32>(positions[vertexIndex], 0.0, 1.0);
|
|
18
25
|
output.texCoord = texCoords[vertexIndex];
|
|
19
26
|
return output;
|
|
20
27
|
}
|
|
21
28
|
`;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
/**
|
|
30
|
+
* @description ブラーフィルター用フルスクリーン頂点シェーダー(Y軸テクスチャ反転)
|
|
31
|
+
* Full-screen vertex shader for blur filter with Y-axis texture flip
|
|
32
|
+
*
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @constant
|
|
35
|
+
*/
|
|
36
|
+
export const BlurFilterVertex = $createFullscreenQuadVertex(true);
|
|
37
|
+
/**
|
|
38
|
+
* @description 複合ブレンド用フルスクリーン頂点シェーダー
|
|
39
|
+
* Full-screen vertex shader for complex blend
|
|
40
|
+
*
|
|
41
|
+
* @type {string}
|
|
42
|
+
* @constant
|
|
43
|
+
*/
|
|
44
|
+
export const ComplexBlendVertex = $createFullscreenQuadVertex(false);
|
|
45
|
+
/**
|
|
46
|
+
* @description 複合ブレンドコピー用フルスクリーン頂点シェーダー
|
|
47
|
+
* Full-screen vertex shader for complex blend copy
|
|
48
|
+
*
|
|
49
|
+
* @type {string}
|
|
50
|
+
* @constant
|
|
51
|
+
*/
|
|
52
|
+
export const ComplexBlendCopyVertex = $createFullscreenQuadVertex(false);
|
|
53
|
+
/**
|
|
54
|
+
* @description ノードクリア用頂点シェーダー(NDC変換のみ)
|
|
55
|
+
* Node clear vertex shader with NDC transform only
|
|
56
|
+
*
|
|
57
|
+
* @type {string}
|
|
58
|
+
* @constant
|
|
59
|
+
*/
|
|
25
60
|
export const NodeClearVertex = /* wgsl */ `
|
|
26
61
|
struct VertexInput {
|
|
27
62
|
@location(0) position: vec2<f32>,
|
|
@@ -39,6 +74,13 @@ fn main(input: VertexInput) -> VertexOutput {
|
|
|
39
74
|
return output;
|
|
40
75
|
}
|
|
41
76
|
`;
|
|
77
|
+
/**
|
|
78
|
+
* @description 位置指定テクスチャ描画用頂点シェーダー(ビューポート変換付き)
|
|
79
|
+
* Positioned texture rendering vertex shader with viewport transform
|
|
80
|
+
*
|
|
81
|
+
* @type {string}
|
|
82
|
+
* @constant
|
|
83
|
+
*/
|
|
42
84
|
export const PositionedTextureVertex = /* wgsl */ `
|
|
43
85
|
struct PositionUniforms {
|
|
44
86
|
offset: vec2<f32>,
|
|
@@ -67,6 +109,13 @@ ${WgslUnitQuadVertices}
|
|
|
67
109
|
return output;
|
|
68
110
|
}
|
|
69
111
|
`;
|
|
112
|
+
/**
|
|
113
|
+
* @description ビットマップ同期用頂点シェーダー(ノード矩形ベース配置)
|
|
114
|
+
* Bitmap sync vertex shader with node rectangle-based positioning
|
|
115
|
+
*
|
|
116
|
+
* @type {string}
|
|
117
|
+
* @constant
|
|
118
|
+
*/
|
|
70
119
|
export const BitmapSyncVertex = /* wgsl */ `
|
|
71
120
|
struct BitmapSyncUniforms {
|
|
72
121
|
nodeRect: vec4<f32>,
|
|
@@ -96,26 +145,14 @@ ${WgslUnitQuadVertices}
|
|
|
96
145
|
return output;
|
|
97
146
|
}
|
|
98
147
|
`;
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
@location(0) texCoord: vec2<f32>,
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
@vertex
|
|
111
|
-
fn main(input: VertexInput) -> VertexOutput {
|
|
112
|
-
var output: VertexOutput;
|
|
113
|
-
output.position = vec4<f32>(input.position, 0.0, 1.0);
|
|
114
|
-
output.texCoord = input.texCoord;
|
|
115
|
-
return output;
|
|
116
|
-
}
|
|
117
|
-
`;
|
|
118
|
-
const ScaleUniformsAndStruct = `
|
|
148
|
+
/**
|
|
149
|
+
* @description スケール変換用Uniform定義と頂点出力構造体のWGSLコード
|
|
150
|
+
* WGSL code for scale transform uniform definitions and vertex output struct
|
|
151
|
+
*
|
|
152
|
+
* @type {string}
|
|
153
|
+
* @constant
|
|
154
|
+
*/
|
|
155
|
+
const $ScaleUniformsAndStruct = `
|
|
119
156
|
struct ScaleUniforms {
|
|
120
157
|
matrix: vec4<f32>,
|
|
121
158
|
translate: vec2<f32>,
|
|
@@ -131,7 +168,14 @@ struct VertexOutput {
|
|
|
131
168
|
|
|
132
169
|
@group(0) @binding(0) var<uniform> uniforms: ScaleUniforms;
|
|
133
170
|
`;
|
|
134
|
-
|
|
171
|
+
/**
|
|
172
|
+
* @description スケール変換の頂点位置計算処理のWGSLコード
|
|
173
|
+
* WGSL code for scale transform vertex position calculation
|
|
174
|
+
*
|
|
175
|
+
* @type {string}
|
|
176
|
+
* @constant
|
|
177
|
+
*/
|
|
178
|
+
const $ScaleTransformBody = `
|
|
135
179
|
var pos = vertex * uniforms.srcSize;
|
|
136
180
|
let a = uniforms.matrix.x;
|
|
137
181
|
let b = uniforms.matrix.y;
|
|
@@ -145,23 +189,58 @@ const ScaleTransformBody = `
|
|
|
145
189
|
position = position * 2.0 - 1.0;
|
|
146
190
|
output.position = vec4<f32>(position.x, -position.y, 0.0, 1.0);
|
|
147
191
|
`;
|
|
148
|
-
|
|
149
|
-
|
|
192
|
+
/**
|
|
193
|
+
* @description スケール変換用頂点シェーダーを生成する
|
|
194
|
+
* Generate a scale transform vertex shader
|
|
195
|
+
*
|
|
196
|
+
* @param {boolean} y_flip_tex_coord - テクスチャY座標を反転するかどうか
|
|
197
|
+
* @return {string}
|
|
198
|
+
*/
|
|
199
|
+
const $createScaleVertex = (y_flip_tex_coord) => /* wgsl */ `
|
|
200
|
+
${$ScaleUniformsAndStruct}
|
|
150
201
|
|
|
151
202
|
@vertex
|
|
152
203
|
fn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
|
|
153
204
|
var output: VertexOutput;
|
|
154
205
|
${WgslUnitQuadVertices}
|
|
155
206
|
let vertex = vertices[vertexIndex];
|
|
156
|
-
output.texCoord = ${
|
|
157
|
-
${ScaleTransformBody}
|
|
207
|
+
output.texCoord = ${y_flip_tex_coord ? "vec2<f32>(vertex.x, 1.0 - vertex.y)" : "vertex"};
|
|
208
|
+
${$ScaleTransformBody}
|
|
158
209
|
return output;
|
|
159
210
|
}
|
|
160
211
|
`;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
212
|
+
/**
|
|
213
|
+
* @description テクスチャスケール用頂点シェーダー
|
|
214
|
+
* Texture scale vertex shader
|
|
215
|
+
*
|
|
216
|
+
* @type {string}
|
|
217
|
+
* @constant
|
|
218
|
+
*/
|
|
219
|
+
export const TextureScaleVertex = $createScaleVertex(false);
|
|
220
|
+
/**
|
|
221
|
+
* @description ブレンド用テクスチャスケール頂点シェーダー(Y軸反転)
|
|
222
|
+
* Texture scale vertex shader for blend with Y-axis flip
|
|
223
|
+
*
|
|
224
|
+
* @type {string}
|
|
225
|
+
* @constant
|
|
226
|
+
*/
|
|
227
|
+
export const TextureScaleBlendVertex = $createScaleVertex(true);
|
|
228
|
+
/**
|
|
229
|
+
* @description 複合ブレンドスケール用頂点シェーダー
|
|
230
|
+
* Complex blend scale vertex shader
|
|
231
|
+
*
|
|
232
|
+
* @type {string}
|
|
233
|
+
* @constant
|
|
234
|
+
*/
|
|
235
|
+
export const ComplexBlendScaleVertex = $createScaleVertex(false);
|
|
236
|
+
/**
|
|
237
|
+
* @description 出力用頂点シェーダーを生成する(位置指定・ビューポート変換)
|
|
238
|
+
* Generate an output vertex shader with positioning and viewport transform
|
|
239
|
+
*
|
|
240
|
+
* @param {boolean} y_flip_tex_coord - テクスチャY座標を反転するかどうか
|
|
241
|
+
* @return {string}
|
|
242
|
+
*/
|
|
243
|
+
const $createOutputVertex = (y_flip_tex_coord) => /* wgsl */ `
|
|
165
244
|
struct PositionUniforms {
|
|
166
245
|
offset: vec2<f32>,
|
|
167
246
|
size: vec2<f32>,
|
|
@@ -181,7 +260,7 @@ fn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
|
|
|
181
260
|
var output: VertexOutput;
|
|
182
261
|
${WgslUnitQuadVertices}
|
|
183
262
|
let vertex = vertices[vertexIndex];
|
|
184
|
-
output.texCoord = ${
|
|
263
|
+
output.texCoord = ${y_flip_tex_coord ? "vec2<f32>(vertex.x, 1.0 - vertex.y)" : "vertex"};
|
|
185
264
|
var position = vertex * uniforms.size + uniforms.offset;
|
|
186
265
|
position = position / uniforms.viewport;
|
|
187
266
|
position = position * 2.0 - 1.0;
|
|
@@ -189,5 +268,19 @@ ${WgslUnitQuadVertices}
|
|
|
189
268
|
return output;
|
|
190
269
|
}
|
|
191
270
|
`;
|
|
192
|
-
|
|
193
|
-
|
|
271
|
+
/**
|
|
272
|
+
* @description 複合ブレンド出力用頂点シェーダー
|
|
273
|
+
* Complex blend output vertex shader
|
|
274
|
+
*
|
|
275
|
+
* @type {string}
|
|
276
|
+
* @constant
|
|
277
|
+
*/
|
|
278
|
+
export const ComplexBlendOutputVertex = $createOutputVertex(false);
|
|
279
|
+
/**
|
|
280
|
+
* @description フィルター複合ブレンド出力用頂点シェーダー(Y軸反転)
|
|
281
|
+
* Filter complex blend output vertex shader with Y-axis flip
|
|
282
|
+
*
|
|
283
|
+
* @type {string}
|
|
284
|
+
* @constant
|
|
285
|
+
*/
|
|
286
|
+
export const FilterComplexBlendOutputVertex = $createOutputVertex(true);
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description グラデーション塗り用頂点シェーダー(逆行列によるUV座標計算)
|
|
3
|
+
* Gradient fill vertex shader with inverse matrix UV coordinate calculation
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const GradientFillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) v_uv: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n @location(2) color: vec4<f32>,\n}\n\nstruct GradientUniforms {\n inverseMatrix: mat3x3<f32>,\n gradientType: f32,\n focal: f32,\n spread: f32,\n radius: f32,\n linearPoints: vec4<f32>,\n color: vec4<f32>,\n contextMatrix0: vec4<f32>,\n contextMatrix1: vec4<f32>,\n contextMatrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> gradient: GradientUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let contextMatrix = mat3x3<f32>(gradient.contextMatrix0.xyz, gradient.contextMatrix1.xyz, gradient.contextMatrix2.xyz);\n let pos = contextMatrix * vec3<f32>(input.position, 1.0);\n let ndc = vec2<f32>(pos.x * 2.0 - 1.0, pos.y * 2.0 - 1.0);\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n let uvPos = gradient.inverseMatrix * vec3<f32>(input.position, 1.0);\n output.v_uv = uvPos.xy;\n output.bezier = input.bezier;\n output.color = gradient.color;\n return output;\n}\n";
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description インスタンス描画用頂点シェーダー(インスタンスごとの変換・カラー)
|
|
3
|
+
* Instanced rendering vertex shader with per-instance transform and color
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const InstancedVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) texCoord: vec2<f32>,\n}\n\nstruct InstanceInput {\n @location(2) textureRect: vec4<f32>,\n @location(3) textureDim: vec4<f32>,\n @location(4) matrixTx: vec4<f32>,\n @location(5) matrixScale: vec4<f32>,\n @location(6) mulColor: vec4<f32>,\n @location(7) addColor: vec4<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n @location(1) mulColor: vec4<f32>,\n @location(2) addColor: vec4<f32>,\n}\n\n@vertex\nfn main(\n input: VertexInput,\n instance: InstanceInput,\n @builtin(instance_index) instanceIdx: u32\n) -> VertexOutput {\n var output: VertexOutput;\n let texX = instance.textureRect.x + input.texCoord.x * instance.textureRect.z;\n let texY = instance.textureRect.y + input.texCoord.y * instance.textureRect.w;\n output.texCoord = vec2<f32>(texX, texY);\n var pos = vec2<f32>(input.position.x, 1.0 - input.position.y);\n pos = pos * vec2<f32>(instance.textureDim.x, instance.textureDim.y);\n let scale0 = instance.matrixScale.x;\n let rotate0 = instance.matrixScale.y;\n let scale1 = instance.matrixScale.z;\n let rotate1 = instance.matrixScale.w;\n let transformedX = pos.x * scale0 + pos.y * scale1 + instance.matrixTx.x;\n let transformedY = pos.x * rotate0 + pos.y * rotate1 + instance.matrixTx.y;\n var position = vec2<f32>(transformedX, transformedY) / vec2<f32>(instance.textureDim.z, instance.textureDim.w);\n position = position * 2.0 - 1.0;\n output.position = vec4<f32>(position.x, -position.y, 0.0, 1.0);\n output.mulColor = instance.mulColor;\n output.addColor = instance.addColor;\n return output;\n}\n";
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description インスタンス描画用頂点シェーダー(インスタンスごとの変換・カラー)
|
|
3
|
+
* Instanced rendering vertex shader with per-instance transform and color
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export const InstancedVertex = /* wgsl */ `
|
|
2
9
|
struct VertexInput {
|
|
3
10
|
@location(0) position: vec2<f32>,
|
|
@@ -1 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description マスク用頂点シェーダー(ベジェ曲線パラメータ付き行列変換)
|
|
3
|
+
* Mask vertex shader with matrix transform and bezier parameters
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const MaskVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n}\n\nstruct Uniforms {\n viewportSize: vec2<f32>,\n _padding0: vec2<f32>,\n matrixCol0: vec3<f32>,\n _padding1: f32,\n matrixCol1: vec3<f32>,\n _padding2: f32,\n matrixCol2: vec3<f32>,\n _padding3: f32,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: Uniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrixCol0, uniforms.matrixCol1, uniforms.matrixCol2);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let pos = transformed.xy;\n let ndc = pos * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, -ndc.y, 0.0, 1.0);\n output.bezier = input.bezier;\n return output;\n}\n";
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description ステンシル書き込み用頂点シェーダー(ベジェ曲線パラメータ付き)
|
|
3
|
+
* Stencil write vertex shader with bezier parameters
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const StencilWriteVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n}\n\nstruct FillUniforms {\n color: vec4<f32>,\n matrix0: vec4<f32>,\n matrix1: vec4<f32>,\n matrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: FillUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrix0.xyz, uniforms.matrix1.xyz, uniforms.matrix2.xyz);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let ndc = transformed.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.bezier = input.bezier;\n return output;\n}\n";
|
|
9
|
+
/**
|
|
10
|
+
* @description ステンシル塗り用頂点シェーダー(カラー出力付き)
|
|
11
|
+
* Stencil fill vertex shader with color output
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
* @constant
|
|
15
|
+
*/
|
|
2
16
|
export declare const StencilFillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) color: vec4<f32>,\n}\n\nstruct FillUniforms {\n color: vec4<f32>,\n matrix0: vec4<f32>,\n matrix1: vec4<f32>,\n matrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: FillUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrix0.xyz, uniforms.matrix1.xyz, uniforms.matrix2.xyz);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let ndc = transformed.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.color = uniforms.color;\n return output;\n}\n";
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description ステンシル書き込み用頂点シェーダー(ベジェ曲線パラメータ付き)
|
|
3
|
+
* Stencil write vertex shader with bezier parameters
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export const StencilWriteVertex = /* wgsl */ `
|
|
2
9
|
override yFlipSign: f32 = 1.0;
|
|
3
10
|
|
|
@@ -31,6 +38,13 @@ fn main(input: VertexInput) -> VertexOutput {
|
|
|
31
38
|
return output;
|
|
32
39
|
}
|
|
33
40
|
`;
|
|
41
|
+
/**
|
|
42
|
+
* @description ステンシル塗り用頂点シェーダー(カラー出力付き)
|
|
43
|
+
* Stencil fill vertex shader with color output
|
|
44
|
+
*
|
|
45
|
+
* @type {string}
|
|
46
|
+
* @constant
|
|
47
|
+
*/
|
|
34
48
|
export const StencilFillVertex = /* wgsl */ `
|
|
35
49
|
override yFlipSign: f32 = 1.0;
|
|
36
50
|
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @description サンプラーを初期化
|
|
3
3
|
* Initialize samplers
|
|
4
4
|
*
|
|
5
|
-
* @param {GPUDevice} device
|
|
6
|
-
* @param {Map<string, GPUSampler>} samplers
|
|
5
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
6
|
+
* @param {Map<string, GPUSampler>} samplers - サンプラー管理マップ
|
|
7
7
|
* @return {void}
|
|
8
8
|
* @method
|
|
9
9
|
* @protected
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* @description サンプラーを初期化
|
|
3
3
|
* Initialize samplers
|
|
4
4
|
*
|
|
5
|
-
* @param {GPUDevice} device
|
|
6
|
-
* @param {Map<string, GPUSampler>} samplers
|
|
5
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
6
|
+
* @param {Map<string, GPUSampler>} samplers - サンプラー管理マップ
|
|
7
7
|
* @return {void}
|
|
8
8
|
* @method
|
|
9
9
|
* @protected
|
package/src/TextureManager.d.ts
CHANGED
|
@@ -1,15 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description テクスチャとサンプラーの管理クラス
|
|
3
|
+
* Manager class for textures and samplers
|
|
4
|
+
*/
|
|
1
5
|
export declare class TextureManager {
|
|
2
6
|
private device;
|
|
3
7
|
private textures;
|
|
4
8
|
private samplers;
|
|
9
|
+
/**
|
|
10
|
+
* @description TextureManagerのコンストラクタ
|
|
11
|
+
* Constructor for TextureManager
|
|
12
|
+
* @param {GPUDevice} device - WebGPUデバイス / WebGPU device
|
|
13
|
+
*/
|
|
5
14
|
constructor(device: GPUDevice);
|
|
15
|
+
/**
|
|
16
|
+
* @description 新しいGPUテクスチャを作成する
|
|
17
|
+
* Create a new GPU texture
|
|
18
|
+
* @param {string} name - テクスチャ名 / Texture name
|
|
19
|
+
* @param {number} width - テクスチャの幅 / Texture width
|
|
20
|
+
* @param {number} height - テクスチャの高さ / Texture height
|
|
21
|
+
* @param {GPUTextureFormat} [format="rgba8unorm"] - テクスチャフォーマット / Texture format
|
|
22
|
+
* @return {GPUTexture}
|
|
23
|
+
*/
|
|
6
24
|
createTexture(name: string, width: number, height: number, format?: GPUTextureFormat): GPUTexture;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
25
|
+
/**
|
|
26
|
+
* @description 名前でテクスチャを取得する
|
|
27
|
+
* Get a texture by name
|
|
28
|
+
* @param {string} name - テクスチャ名 / Texture name
|
|
29
|
+
* @return {GPUTexture | undefined}
|
|
30
|
+
*/
|
|
10
31
|
getTexture(name: string): GPUTexture | undefined;
|
|
11
|
-
|
|
32
|
+
/**
|
|
33
|
+
* @description サンプラーを作成する(既存の場合は返却)
|
|
34
|
+
* Create a sampler (returns existing if found)
|
|
35
|
+
* @param {string} name - サンプラー名 / Sampler name
|
|
36
|
+
* @param {boolean} [smooth=true] - スムージングを有効にするか / Whether to enable smoothing
|
|
37
|
+
* @return {GPUSampler}
|
|
38
|
+
*/
|
|
12
39
|
createSampler(name: string, smooth?: boolean): GPUSampler;
|
|
13
|
-
|
|
40
|
+
/**
|
|
41
|
+
* @description 全テクスチャとサンプラーを破棄する
|
|
42
|
+
* Dispose all textures and samplers
|
|
43
|
+
* @return {void}
|
|
44
|
+
*/
|
|
14
45
|
dispose(): void;
|
|
15
46
|
}
|