@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
|
@@ -11,101 +11,223 @@ import { StencilWriteFragment, StencilFillFragment } from "./wgsl/fragment/Stenc
|
|
|
11
11
|
import { MaskFragment } from "./wgsl/fragment/MaskFragment";
|
|
12
12
|
import { BasicFragment, TextureFragment } from "./wgsl/fragment/BasicFragment";
|
|
13
13
|
import { InstancedFragment } from "./wgsl/fragment/InstancedFragment";
|
|
14
|
-
import { GradientFillFragment, GradientFillStencilFragment
|
|
14
|
+
import { GradientFillFragment, GradientFillStencilFragment } from "./wgsl/fragment/GradientFragment";
|
|
15
15
|
import { BitmapFillFragment } from "./wgsl/fragment/BitmapFragment";
|
|
16
16
|
import { TextureCopyFragment, BlurTextureCopyFragment, FilterOutputFragment, ColorTransformFragment, YFlipColorTransformFragment, ColorMatrixFilterFragment, NodeClearFragment, PositionedTextureFragment, BlendGenericFragment, BitmapSyncFragment } from "./wgsl/fragment/FilterFragment";
|
|
17
17
|
import { GlowFilterFragment, DropShadowFilterFragment, GradientGlowFilterFragment, GradientBevelFilterFragment, BevelFilterFragment, BevelBaseFragment } from "./wgsl/fragment/EffectFragment";
|
|
18
18
|
import { WgslIsInside, WgslVertexOutput } from "./wgsl/common/SharedWgsl";
|
|
19
|
+
/**
|
|
20
|
+
* @description WebGPU用シェーダーソース管理クラス
|
|
21
|
+
* WebGPU shader source management class providing all vertex and fragment shaders
|
|
22
|
+
*/
|
|
19
23
|
export class ShaderSource {
|
|
24
|
+
/**
|
|
25
|
+
* @description 塗り用頂点シェーダーを取得する
|
|
26
|
+
* Get fill vertex shader
|
|
27
|
+
*
|
|
28
|
+
* @return {string}
|
|
29
|
+
*/
|
|
20
30
|
static getFillVertexShader() {
|
|
21
31
|
return FillVertex;
|
|
22
32
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
33
|
+
/**
|
|
34
|
+
* @description 塗り用フラグメントシェーダーを取得する
|
|
35
|
+
* Get fill fragment shader
|
|
36
|
+
*
|
|
37
|
+
* @return {string}
|
|
38
|
+
*/
|
|
26
39
|
static getFillFragmentShader() {
|
|
27
40
|
return FillFragment;
|
|
28
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* @description ステンシル書き込み用頂点シェーダーを取得する
|
|
44
|
+
* Get stencil write vertex shader
|
|
45
|
+
*
|
|
46
|
+
* @return {string}
|
|
47
|
+
*/
|
|
29
48
|
static getStencilWriteVertexShader() {
|
|
30
49
|
return StencilWriteVertex;
|
|
31
50
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
51
|
+
/**
|
|
52
|
+
* @description ステンシル書き込み用フラグメントシェーダーを取得する
|
|
53
|
+
* Get stencil write fragment shader
|
|
54
|
+
*
|
|
55
|
+
* @return {string}
|
|
56
|
+
*/
|
|
35
57
|
static getStencilWriteFragmentShader() {
|
|
36
58
|
return StencilWriteFragment;
|
|
37
59
|
}
|
|
60
|
+
/**
|
|
61
|
+
* @description ステンシル塗り用頂点シェーダーを取得する
|
|
62
|
+
* Get stencil fill vertex shader
|
|
63
|
+
*
|
|
64
|
+
* @return {string}
|
|
65
|
+
*/
|
|
38
66
|
static getStencilFillVertexShader() {
|
|
39
67
|
return StencilFillVertex;
|
|
40
68
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
69
|
+
/**
|
|
70
|
+
* @description ステンシル塗り用フラグメントシェーダーを取得する
|
|
71
|
+
* Get stencil fill fragment shader
|
|
72
|
+
*
|
|
73
|
+
* @return {string}
|
|
74
|
+
*/
|
|
44
75
|
static getStencilFillFragmentShader() {
|
|
45
76
|
return StencilFillFragment;
|
|
46
77
|
}
|
|
78
|
+
/**
|
|
79
|
+
* @description マスク用頂点シェーダーを取得する
|
|
80
|
+
* Get mask vertex shader
|
|
81
|
+
*
|
|
82
|
+
* @return {string}
|
|
83
|
+
*/
|
|
47
84
|
static getMaskVertexShader() {
|
|
48
85
|
return MaskVertex;
|
|
49
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* @description マスク用フラグメントシェーダーを取得する
|
|
89
|
+
* Get mask fragment shader
|
|
90
|
+
*
|
|
91
|
+
* @return {string}
|
|
92
|
+
*/
|
|
50
93
|
static getMaskFragmentShader() {
|
|
51
94
|
return MaskFragment;
|
|
52
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* @description 基本頂点シェーダーを取得する
|
|
98
|
+
* Get basic vertex shader
|
|
99
|
+
*
|
|
100
|
+
* @return {string}
|
|
101
|
+
*/
|
|
53
102
|
static getBasicVertexShader() {
|
|
54
103
|
return BasicVertex;
|
|
55
104
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
105
|
+
/**
|
|
106
|
+
* @description 基本フラグメントシェーダーを取得する
|
|
107
|
+
* Get basic fragment shader
|
|
108
|
+
*
|
|
109
|
+
* @return {string}
|
|
110
|
+
*/
|
|
59
111
|
static getBasicFragmentShader() {
|
|
60
112
|
return BasicFragment;
|
|
61
113
|
}
|
|
114
|
+
/**
|
|
115
|
+
* @description テクスチャフラグメントシェーダーを取得する
|
|
116
|
+
* Get texture fragment shader
|
|
117
|
+
*
|
|
118
|
+
* @return {string}
|
|
119
|
+
*/
|
|
62
120
|
static getTextureFragmentShader() {
|
|
63
121
|
return TextureFragment;
|
|
64
122
|
}
|
|
123
|
+
/**
|
|
124
|
+
* @description インスタンス描画用頂点シェーダーを取得する
|
|
125
|
+
* Get instanced vertex shader
|
|
126
|
+
*
|
|
127
|
+
* @return {string}
|
|
128
|
+
*/
|
|
65
129
|
static getInstancedVertexShader() {
|
|
66
130
|
return InstancedVertex;
|
|
67
131
|
}
|
|
132
|
+
/**
|
|
133
|
+
* @description インスタンス描画用フラグメントシェーダーを取得する
|
|
134
|
+
* Get instanced fragment shader
|
|
135
|
+
*
|
|
136
|
+
* @return {string}
|
|
137
|
+
*/
|
|
68
138
|
static getInstancedFragmentShader() {
|
|
69
139
|
return InstancedFragment;
|
|
70
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* @description グラデーション塗り用頂点シェーダーを取得する
|
|
143
|
+
* Get gradient fill vertex shader
|
|
144
|
+
*
|
|
145
|
+
* @return {string}
|
|
146
|
+
*/
|
|
71
147
|
static getGradientFillVertexShader() {
|
|
72
148
|
return GradientFillVertex;
|
|
73
149
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
150
|
+
/**
|
|
151
|
+
* @description グラデーション塗り用フラグメントシェーダーを取得する
|
|
152
|
+
* Get gradient fill fragment shader
|
|
153
|
+
*
|
|
154
|
+
* @return {string}
|
|
155
|
+
*/
|
|
77
156
|
static getGradientFillFragmentShader() {
|
|
78
157
|
return GradientFillFragment;
|
|
79
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* @description ステンシル用グラデーション塗りフラグメントシェーダーを取得する
|
|
161
|
+
* Get gradient fill stencil fragment shader
|
|
162
|
+
*
|
|
163
|
+
* @return {string}
|
|
164
|
+
*/
|
|
80
165
|
static getGradientFillStencilFragmentShader() {
|
|
81
166
|
return GradientFillStencilFragment;
|
|
82
167
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
168
|
+
/**
|
|
169
|
+
* @description ビットマップ塗り用頂点シェーダーを取得する
|
|
170
|
+
* Get bitmap fill vertex shader
|
|
171
|
+
*
|
|
172
|
+
* @return {string}
|
|
173
|
+
*/
|
|
86
174
|
static getBitmapFillVertexShader() {
|
|
87
175
|
return BitmapFillVertex;
|
|
88
176
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
177
|
+
/**
|
|
178
|
+
* @description ビットマップ塗り用フラグメントシェーダーを取得する
|
|
179
|
+
* Get bitmap fill fragment shader
|
|
180
|
+
*
|
|
181
|
+
* @return {string}
|
|
182
|
+
*/
|
|
92
183
|
static getBitmapFillFragmentShader() {
|
|
93
184
|
return BitmapFillFragment;
|
|
94
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* @description ブレンド用フラグメントシェーダーを取得する
|
|
188
|
+
* Get blend fragment shader
|
|
189
|
+
*
|
|
190
|
+
* @return {string}
|
|
191
|
+
*/
|
|
95
192
|
static getBlendFragmentShader() {
|
|
96
193
|
return BlendGenericFragment;
|
|
97
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* @description ブラーフィルター用頂点シェーダーを取得する
|
|
197
|
+
* Get blur filter vertex shader
|
|
198
|
+
*
|
|
199
|
+
* @return {string}
|
|
200
|
+
*/
|
|
98
201
|
static getBlurFilterVertexShader() {
|
|
99
202
|
return BlurFilterVertex;
|
|
100
203
|
}
|
|
204
|
+
/**
|
|
205
|
+
* @description ビットマップ同期用頂点シェーダーを取得する
|
|
206
|
+
* Get bitmap sync vertex shader
|
|
207
|
+
*
|
|
208
|
+
* @return {string}
|
|
209
|
+
*/
|
|
101
210
|
static getBitmapSyncVertexShader() {
|
|
102
211
|
return BitmapSyncVertex;
|
|
103
212
|
}
|
|
213
|
+
/**
|
|
214
|
+
* @description ビットマップ同期用フラグメントシェーダーを取得する
|
|
215
|
+
* Get bitmap sync fragment shader
|
|
216
|
+
*
|
|
217
|
+
* @return {string}
|
|
218
|
+
*/
|
|
104
219
|
static getBitmapSyncFragmentShader() {
|
|
105
220
|
return BitmapSyncFragment;
|
|
106
221
|
}
|
|
107
|
-
|
|
108
|
-
|
|
222
|
+
/**
|
|
223
|
+
* @description ブラーフィルター用フラグメントシェーダーを生成する
|
|
224
|
+
* Generate blur filter fragment shader
|
|
225
|
+
*
|
|
226
|
+
* @param {number} half_blur - ブラーの半径値
|
|
227
|
+
* @return {string}
|
|
228
|
+
*/
|
|
229
|
+
static getBlurFilterFragmentShader(half_blur) {
|
|
230
|
+
const halfBlurFixed = half_blur.toFixed(1);
|
|
109
231
|
return /* wgsl */ `
|
|
110
232
|
${WgslVertexOutput}
|
|
111
233
|
|
|
@@ -136,52 +258,134 @@ fn main(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
136
258
|
}
|
|
137
259
|
`;
|
|
138
260
|
}
|
|
261
|
+
/**
|
|
262
|
+
* @description テクスチャコピー用フラグメントシェーダーを取得する
|
|
263
|
+
* Get texture copy fragment shader
|
|
264
|
+
*
|
|
265
|
+
* @return {string}
|
|
266
|
+
*/
|
|
139
267
|
static getTextureCopyFragmentShader() {
|
|
140
268
|
return TextureCopyFragment;
|
|
141
269
|
}
|
|
270
|
+
/**
|
|
271
|
+
* @description ブラー用テクスチャコピーフラグメントシェーダーを取得する
|
|
272
|
+
* Get blur texture copy fragment shader
|
|
273
|
+
*
|
|
274
|
+
* @return {string}
|
|
275
|
+
*/
|
|
142
276
|
static getBlurTextureCopyFragmentShader() {
|
|
143
277
|
return BlurTextureCopyFragment;
|
|
144
278
|
}
|
|
279
|
+
/**
|
|
280
|
+
* @description フィルター出力用フラグメントシェーダーを取得する
|
|
281
|
+
* Get filter output fragment shader
|
|
282
|
+
*
|
|
283
|
+
* @return {string}
|
|
284
|
+
*/
|
|
145
285
|
static getFilterOutputFragmentShader() {
|
|
146
286
|
return FilterOutputFragment;
|
|
147
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* @description カラー変換フラグメントシェーダーを取得する
|
|
290
|
+
* Get color transform fragment shader
|
|
291
|
+
*
|
|
292
|
+
* @return {string}
|
|
293
|
+
*/
|
|
148
294
|
static getColorTransformFragmentShader() {
|
|
149
295
|
return ColorTransformFragment;
|
|
150
296
|
}
|
|
297
|
+
/**
|
|
298
|
+
* @description Y軸反転付きカラー変換フラグメントシェーダーを取得する
|
|
299
|
+
* Get Y-flip color transform fragment shader
|
|
300
|
+
*
|
|
301
|
+
* @return {string}
|
|
302
|
+
*/
|
|
151
303
|
static getYFlipColorTransformFragmentShader() {
|
|
152
304
|
return YFlipColorTransformFragment;
|
|
153
305
|
}
|
|
306
|
+
/**
|
|
307
|
+
* @description カラーマトリクスフィルターフラグメントシェーダーを取得する
|
|
308
|
+
* Get color matrix filter fragment shader
|
|
309
|
+
*
|
|
310
|
+
* @return {string}
|
|
311
|
+
*/
|
|
154
312
|
static getColorMatrixFilterFragmentShader() {
|
|
155
313
|
return ColorMatrixFilterFragment;
|
|
156
314
|
}
|
|
315
|
+
/**
|
|
316
|
+
* @description グローフィルターフラグメントシェーダーを取得する
|
|
317
|
+
* Get glow filter fragment shader
|
|
318
|
+
*
|
|
319
|
+
* @return {string}
|
|
320
|
+
*/
|
|
157
321
|
static getGlowFilterFragmentShader() {
|
|
158
322
|
return GlowFilterFragment;
|
|
159
323
|
}
|
|
324
|
+
/**
|
|
325
|
+
* @description ドロップシャドウフィルターフラグメントシェーダーを取得する
|
|
326
|
+
* Get drop shadow filter fragment shader
|
|
327
|
+
*
|
|
328
|
+
* @return {string}
|
|
329
|
+
*/
|
|
160
330
|
static getDropShadowFilterFragmentShader() {
|
|
161
331
|
return DropShadowFilterFragment;
|
|
162
332
|
}
|
|
333
|
+
/**
|
|
334
|
+
* @description グラデーショングローフィルターフラグメントシェーダーを取得する
|
|
335
|
+
* Get gradient glow filter fragment shader
|
|
336
|
+
*
|
|
337
|
+
* @return {string}
|
|
338
|
+
*/
|
|
163
339
|
static getGradientGlowFilterFragmentShader() {
|
|
164
340
|
return GradientGlowFilterFragment;
|
|
165
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* @description グラデーションベベルフィルターフラグメントシェーダーを取得する
|
|
344
|
+
* Get gradient bevel filter fragment shader
|
|
345
|
+
*
|
|
346
|
+
* @return {string}
|
|
347
|
+
*/
|
|
166
348
|
static getGradientBevelFilterFragmentShader() {
|
|
167
349
|
return GradientBevelFilterFragment;
|
|
168
350
|
}
|
|
351
|
+
/**
|
|
352
|
+
* @description ベベルフィルターフラグメントシェーダーを取得する
|
|
353
|
+
* Get bevel filter fragment shader
|
|
354
|
+
*
|
|
355
|
+
* @return {string}
|
|
356
|
+
*/
|
|
169
357
|
static getBevelFilterFragmentShader() {
|
|
170
358
|
return BevelFilterFragment;
|
|
171
359
|
}
|
|
360
|
+
/**
|
|
361
|
+
* @description ベベルフィルターベース処理フラグメントシェーダーを取得する
|
|
362
|
+
* Get bevel filter base fragment shader
|
|
363
|
+
*
|
|
364
|
+
* @return {string}
|
|
365
|
+
*/
|
|
172
366
|
static getBevelBaseFragmentShader() {
|
|
173
367
|
return BevelBaseFragment;
|
|
174
368
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
369
|
+
/**
|
|
370
|
+
* @description コンボリューション(畳み込み)フィルターフラグメントシェーダーを生成する
|
|
371
|
+
* Generate convolution filter fragment shader
|
|
372
|
+
*
|
|
373
|
+
* @param {number} matrix_x - コンボリューション行列のX次元サイズ
|
|
374
|
+
* @param {number} matrix_y - コンボリューション行列のY次元サイズ
|
|
375
|
+
* @param {boolean} [preserve_alpha=true] - 元のアルファ値を保持するかどうか
|
|
376
|
+
* @param {boolean} [clamp=true] - UV座標を範囲内にクランプするかどうか
|
|
377
|
+
* @return {string}
|
|
378
|
+
*/
|
|
379
|
+
static getConvolutionFilterFragmentShader(matrix_x, matrix_y, preserve_alpha = true, clamp = true) {
|
|
380
|
+
const halfX = Math.floor(matrix_x * 0.5);
|
|
381
|
+
const halfY = Math.floor(matrix_y * 0.5);
|
|
382
|
+
const size = matrix_x * matrix_y;
|
|
179
383
|
let matrixStatement = "";
|
|
180
384
|
for (let idx = 0; idx < size; idx++) {
|
|
181
385
|
matrixStatement += `
|
|
182
386
|
result = result + getWeightedColor(${idx}, getMatrixWeight(${idx}));`;
|
|
183
387
|
}
|
|
184
|
-
const preserveAlphaStatement =
|
|
388
|
+
const preserveAlphaStatement = preserve_alpha
|
|
185
389
|
? "result.a = textureSample(sourceTexture, sourceSampler, input.texCoord).a;"
|
|
186
390
|
: "";
|
|
187
391
|
const clampStatement = clamp
|
|
@@ -218,8 +422,8 @@ fn getMatrixWeight(index: i32) -> f32 {
|
|
|
218
422
|
|
|
219
423
|
fn getWeightedColor(i: i32, weight: f32) -> vec4<f32> {
|
|
220
424
|
let rcpSize = uniforms.rcpSize;
|
|
221
|
-
let iDivX = i / ${
|
|
222
|
-
let iModX = i - ${
|
|
425
|
+
let iDivX = i / ${matrix_x};
|
|
426
|
+
let iModX = i - ${matrix_x} * iDivX;
|
|
223
427
|
let offset = vec2<f32>(f32(iModX - ${halfX}), f32(${halfY} - iDivX));
|
|
224
428
|
var uv = input.texCoord + offset * rcpSize;
|
|
225
429
|
var color = textureSample(sourceTexture, sourceSampler, uv);
|
|
@@ -268,11 +472,15 @@ fn fs_main(fragInput: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
268
472
|
}
|
|
269
473
|
`;
|
|
270
474
|
}
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
475
|
+
/**
|
|
476
|
+
* @description ブレンドモード名からインデックスを取得する
|
|
477
|
+
* Get blend mode index from blend mode name
|
|
478
|
+
*
|
|
479
|
+
* @param {string} blend_mode - ブレンドモード名
|
|
480
|
+
* @return {number}
|
|
481
|
+
*/
|
|
482
|
+
static getBlendModeIndex(blend_mode) {
|
|
483
|
+
switch (blend_mode) {
|
|
276
484
|
case "subtract": return 0;
|
|
277
485
|
case "multiply": return 1;
|
|
278
486
|
case "lighten": return 2;
|
|
@@ -284,6 +492,12 @@ fn fs_main(fragInput: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
284
492
|
default: return 1;
|
|
285
493
|
}
|
|
286
494
|
}
|
|
495
|
+
/**
|
|
496
|
+
* @description 統合複合ブレンドフラグメントシェーダーを取得する
|
|
497
|
+
* Get unified complex blend fragment shader
|
|
498
|
+
*
|
|
499
|
+
* @return {string}
|
|
500
|
+
*/
|
|
287
501
|
static getUnifiedComplexBlendFragmentShader() {
|
|
288
502
|
return /* wgsl */ `
|
|
289
503
|
${WgslVertexOutput}
|
|
@@ -375,10 +589,19 @@ fn main(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
375
589
|
}
|
|
376
590
|
`;
|
|
377
591
|
}
|
|
378
|
-
|
|
592
|
+
/**
|
|
593
|
+
* @description ディスプレースメントマップフィルターフラグメントシェーダーを生成する
|
|
594
|
+
* Generate displacement map filter fragment shader
|
|
595
|
+
*
|
|
596
|
+
* @param {number} component_x - X方向の色コンポーネント (1:R, 2:G, 4:B, 8:A)
|
|
597
|
+
* @param {number} component_y - Y方向の色コンポーネント (1:R, 2:G, 4:B, 8:A)
|
|
598
|
+
* @param {number} mode - マッピングモード (0:wrap, 1:color, 2:repeat, 3:clamp)
|
|
599
|
+
* @return {string}
|
|
600
|
+
*/
|
|
601
|
+
static getDisplacementMapFilterFragmentShader(component_x, component_y, mode) {
|
|
379
602
|
let cx;
|
|
380
603
|
let cy;
|
|
381
|
-
switch (
|
|
604
|
+
switch (component_x) {
|
|
382
605
|
case 1:
|
|
383
606
|
cx = "mapColor.r";
|
|
384
607
|
break;
|
|
@@ -395,7 +618,7 @@ fn main(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
395
618
|
cx = "0.5";
|
|
396
619
|
break;
|
|
397
620
|
}
|
|
398
|
-
switch (
|
|
621
|
+
switch (component_y) {
|
|
399
622
|
case 1:
|
|
400
623
|
cy = "mapColor.r";
|
|
401
624
|
break;
|
|
@@ -482,36 +705,102 @@ fn main(input: VertexOutput) -> @location(0) vec4<f32> {
|
|
|
482
705
|
}
|
|
483
706
|
`;
|
|
484
707
|
}
|
|
708
|
+
/**
|
|
709
|
+
* @description ノードクリア用頂点シェーダーを取得する
|
|
710
|
+
* Get node clear vertex shader
|
|
711
|
+
*
|
|
712
|
+
* @return {string}
|
|
713
|
+
*/
|
|
485
714
|
static getNodeClearVertexShader() {
|
|
486
715
|
return NodeClearVertex;
|
|
487
716
|
}
|
|
717
|
+
/**
|
|
718
|
+
* @description ノードクリア用フラグメントシェーダーを取得する
|
|
719
|
+
* Get node clear fragment shader
|
|
720
|
+
*
|
|
721
|
+
* @return {string}
|
|
722
|
+
*/
|
|
488
723
|
static getNodeClearFragmentShader() {
|
|
489
724
|
return NodeClearFragment;
|
|
490
725
|
}
|
|
726
|
+
/**
|
|
727
|
+
* @description 位置指定テクスチャ用頂点シェーダーを取得する
|
|
728
|
+
* Get positioned texture vertex shader
|
|
729
|
+
*
|
|
730
|
+
* @return {string}
|
|
731
|
+
*/
|
|
491
732
|
static getPositionedTextureVertexShader() {
|
|
492
733
|
return PositionedTextureVertex;
|
|
493
734
|
}
|
|
735
|
+
/**
|
|
736
|
+
* @description テクスチャスケール用頂点シェーダーを取得する
|
|
737
|
+
* Get texture scale vertex shader
|
|
738
|
+
*
|
|
739
|
+
* @return {string}
|
|
740
|
+
*/
|
|
494
741
|
static getTextureScaleVertexShader() {
|
|
495
742
|
return TextureScaleVertex;
|
|
496
743
|
}
|
|
744
|
+
/**
|
|
745
|
+
* @description テクスチャスケールブレンド用頂点シェーダーを取得する
|
|
746
|
+
* Get texture scale blend vertex shader
|
|
747
|
+
*
|
|
748
|
+
* @return {string}
|
|
749
|
+
*/
|
|
497
750
|
static getTextureScaleBlendVertexShader() {
|
|
498
751
|
return TextureScaleBlendVertex;
|
|
499
752
|
}
|
|
753
|
+
/**
|
|
754
|
+
* @description 複合ブレンドスケール用頂点シェーダーを取得する
|
|
755
|
+
* Get complex blend scale vertex shader
|
|
756
|
+
*
|
|
757
|
+
* @return {string}
|
|
758
|
+
*/
|
|
500
759
|
static getComplexBlendScaleVertexShader() {
|
|
501
760
|
return ComplexBlendScaleVertex;
|
|
502
761
|
}
|
|
762
|
+
/**
|
|
763
|
+
* @description 複合ブレンド用頂点シェーダーを取得する
|
|
764
|
+
* Get complex blend vertex shader
|
|
765
|
+
*
|
|
766
|
+
* @return {string}
|
|
767
|
+
*/
|
|
503
768
|
static getComplexBlendVertexShader() {
|
|
504
769
|
return ComplexBlendVertex;
|
|
505
770
|
}
|
|
771
|
+
/**
|
|
772
|
+
* @description 複合ブレンドコピー用頂点シェーダーを取得する
|
|
773
|
+
* Get complex blend copy vertex shader
|
|
774
|
+
*
|
|
775
|
+
* @return {string}
|
|
776
|
+
*/
|
|
506
777
|
static getComplexBlendCopyVertexShader() {
|
|
507
778
|
return ComplexBlendCopyVertex;
|
|
508
779
|
}
|
|
780
|
+
/**
|
|
781
|
+
* @description 複合ブレンド出力用頂点シェーダーを取得する
|
|
782
|
+
* Get complex blend output vertex shader
|
|
783
|
+
*
|
|
784
|
+
* @return {string}
|
|
785
|
+
*/
|
|
509
786
|
static getComplexBlendOutputVertexShader() {
|
|
510
787
|
return ComplexBlendOutputVertex;
|
|
511
788
|
}
|
|
789
|
+
/**
|
|
790
|
+
* @description フィルター複合ブレンド出力用頂点シェーダーを取得する
|
|
791
|
+
* Get filter complex blend output vertex shader
|
|
792
|
+
*
|
|
793
|
+
* @return {string}
|
|
794
|
+
*/
|
|
512
795
|
static getFilterComplexBlendOutputVertexShader() {
|
|
513
796
|
return FilterComplexBlendOutputVertex;
|
|
514
797
|
}
|
|
798
|
+
/**
|
|
799
|
+
* @description 位置指定テクスチャ用フラグメントシェーダーを取得する
|
|
800
|
+
* Get positioned texture fragment shader
|
|
801
|
+
*
|
|
802
|
+
* @return {string}
|
|
803
|
+
*/
|
|
515
804
|
static getPositionedTextureFragmentShader() {
|
|
516
805
|
return PositionedTextureFragment;
|
|
517
806
|
}
|
|
@@ -1,5 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description UV座標が0〜1の範囲内にあるかを判定するWGSLヘルパー関数
|
|
3
|
+
* WGSL helper function that checks if UV coordinates are within the 0-1 range
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const WgslIsInside = "\nfn isInside(uv: vec2<f32>) -> f32 {\n let s = step(vec2<f32>(0.0), uv) * step(uv, vec2<f32>(1.0));\n return s.x * s.y;\n}";
|
|
9
|
+
/**
|
|
10
|
+
* @description フルスクリーン四角形の頂点座標定義(NDC空間)
|
|
11
|
+
* Full-screen quad vertex positions definition in NDC space
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
* @constant
|
|
15
|
+
*/
|
|
2
16
|
export declare const WgslFullscreenPositions = "\n const positions = array<vec2<f32>, 6>(\n vec2<f32>(-1.0, -1.0),\n vec2<f32>( 1.0, -1.0),\n vec2<f32>(-1.0, 1.0),\n vec2<f32>(-1.0, 1.0),\n vec2<f32>( 1.0, -1.0),\n vec2<f32>( 1.0, 1.0)\n );";
|
|
17
|
+
/**
|
|
18
|
+
* @description 単位四角形の頂点座標定義(0〜1空間)
|
|
19
|
+
* Unit quad vertex positions definition in 0-1 space
|
|
20
|
+
*
|
|
21
|
+
* @type {string}
|
|
22
|
+
* @constant
|
|
23
|
+
*/
|
|
3
24
|
export declare const WgslUnitQuadVertices = "\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 );";
|
|
25
|
+
/**
|
|
26
|
+
* @description 標準的な頂点シェーダー出力構造体のWGSL定義
|
|
27
|
+
* WGSL definition of the standard vertex shader output struct
|
|
28
|
+
*
|
|
29
|
+
* @type {string}
|
|
30
|
+
* @constant
|
|
31
|
+
*/
|
|
4
32
|
export declare const WgslVertexOutput = "\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n}";
|
|
5
|
-
export declare const WgslFullscreenTexCoords = "\n const texCoords = array<vec2<f32>, 6>(\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 1.0),\n vec2<f32>(0.0, 0.0),\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 1.0),\n vec2<f32>(1.0, 0.0)\n );";
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description UV座標が0〜1の範囲内にあるかを判定するWGSLヘルパー関数
|
|
3
|
+
* WGSL helper function that checks if UV coordinates are within the 0-1 range
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export const WgslIsInside = `
|
|
2
9
|
fn isInside(uv: vec2<f32>) -> f32 {
|
|
3
10
|
let s = step(vec2<f32>(0.0), uv) * step(uv, vec2<f32>(1.0));
|
|
4
11
|
return s.x * s.y;
|
|
5
12
|
}`;
|
|
13
|
+
/**
|
|
14
|
+
* @description フルスクリーン四角形の頂点座標定義(NDC空間)
|
|
15
|
+
* Full-screen quad vertex positions definition in NDC space
|
|
16
|
+
*
|
|
17
|
+
* @type {string}
|
|
18
|
+
* @constant
|
|
19
|
+
*/
|
|
6
20
|
export const WgslFullscreenPositions = `
|
|
7
21
|
const positions = array<vec2<f32>, 6>(
|
|
8
22
|
vec2<f32>(-1.0, -1.0),
|
|
@@ -12,6 +26,13 @@ export const WgslFullscreenPositions = `
|
|
|
12
26
|
vec2<f32>( 1.0, -1.0),
|
|
13
27
|
vec2<f32>( 1.0, 1.0)
|
|
14
28
|
);`;
|
|
29
|
+
/**
|
|
30
|
+
* @description 単位四角形の頂点座標定義(0〜1空間)
|
|
31
|
+
* Unit quad vertex positions definition in 0-1 space
|
|
32
|
+
*
|
|
33
|
+
* @type {string}
|
|
34
|
+
* @constant
|
|
35
|
+
*/
|
|
15
36
|
export const WgslUnitQuadVertices = `
|
|
16
37
|
const vertices = array<vec2<f32>, 6>(
|
|
17
38
|
vec2<f32>(0.0, 0.0),
|
|
@@ -21,17 +42,15 @@ export const WgslUnitQuadVertices = `
|
|
|
21
42
|
vec2<f32>(1.0, 0.0),
|
|
22
43
|
vec2<f32>(1.0, 1.0)
|
|
23
44
|
);`;
|
|
45
|
+
/**
|
|
46
|
+
* @description 標準的な頂点シェーダー出力構造体のWGSL定義
|
|
47
|
+
* WGSL definition of the standard vertex shader output struct
|
|
48
|
+
*
|
|
49
|
+
* @type {string}
|
|
50
|
+
* @constant
|
|
51
|
+
*/
|
|
24
52
|
export const WgslVertexOutput = `
|
|
25
53
|
struct VertexOutput {
|
|
26
54
|
@builtin(position) position: vec4<f32>,
|
|
27
55
|
@location(0) texCoord: vec2<f32>,
|
|
28
56
|
}`;
|
|
29
|
-
export const WgslFullscreenTexCoords = `
|
|
30
|
-
const texCoords = array<vec2<f32>, 6>(
|
|
31
|
-
vec2<f32>(0.0, 1.0),
|
|
32
|
-
vec2<f32>(1.0, 1.0),
|
|
33
|
-
vec2<f32>(0.0, 0.0),
|
|
34
|
-
vec2<f32>(0.0, 0.0),
|
|
35
|
-
vec2<f32>(1.0, 1.0),
|
|
36
|
-
vec2<f32>(1.0, 0.0)
|
|
37
|
-
);`;
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 頂点カラーをそのまま出力する基本フラグメントシェーダー
|
|
3
|
+
* Basic fragment shader that outputs vertex color directly
|
|
4
|
+
*
|
|
5
|
+
* @type {string}
|
|
6
|
+
* @constant
|
|
7
|
+
*/
|
|
1
8
|
export declare const BasicFragment = "\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n @location(1) color: vec4<f32>,\n}\n\n@fragment\nfn main(input: VertexOutput) -> @location(0) vec4<f32> {\n return input.color;\n}\n";
|
|
9
|
+
/**
|
|
10
|
+
* @description テクスチャサンプリングと頂点カラーを乗算するフラグメントシェーダー
|
|
11
|
+
* Fragment shader that multiplies texture sampling with vertex color
|
|
12
|
+
*
|
|
13
|
+
* @type {string}
|
|
14
|
+
* @constant
|
|
15
|
+
*/
|
|
2
16
|
export declare const TextureFragment = "\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n @location(1) color: vec4<f32>,\n}\n\n@group(0) @binding(1) var textureSampler: sampler;\n@group(0) @binding(2) var textureData: texture_2d<f32>;\n\n@fragment\nfn main(input: VertexOutput) -> @location(0) vec4<f32> {\n let textureColor = textureSampleLevel(textureData, textureSampler, input.texCoord, 0);\n return textureColor * input.color;\n}\n";
|