@next2d/webgpu 3.0.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/LICENSE +21 -0
- package/README.md +574 -0
- package/package.json +30 -0
- package/src/AtlasManager.d.ts +23 -0
- package/src/AtlasManager.js +123 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.d.ts +13 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.js +24 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.d.ts +15 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.js +31 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.d.ts +5 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.js +42 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.d.ts +16 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.js +28 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.d.ts +17 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.js +33 -0
- package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.d.ts +16 -0
- package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.js +28 -0
- package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.d.ts +17 -0
- package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.js +27 -0
- package/src/AttachmentManager/service/AttachmentManagerGetTextureService.d.ts +18 -0
- package/src/AttachmentManager/service/AttachmentManagerGetTextureService.js +27 -0
- package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.d.ts +12 -0
- package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.js +17 -0
- package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.d.ts +26 -0
- package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.js +43 -0
- package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.d.ts +18 -0
- package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.js +33 -0
- package/src/AttachmentManager.d.ts +19 -0
- package/src/AttachmentManager.js +105 -0
- package/src/BezierConverter/BezierConverter.d.ts +16 -0
- package/src/BezierConverter/BezierConverter.js +15 -0
- package/src/BezierConverter/service/BezierConverterCalculateFlatnessService.d.ts +15 -0
- package/src/BezierConverter/service/BezierConverterCalculateFlatnessService.js +37 -0
- package/src/BezierConverter/service/BezierConverterSplitCubicService.d.ts +15 -0
- package/src/BezierConverter/service/BezierConverterSplitCubicService.js +47 -0
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +29 -0
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +80 -0
- package/src/Blend/BlendInstancedManager.d.ts +35 -0
- package/src/Blend/BlendInstancedManager.js +147 -0
- package/src/Blend/service/BlendAddService.d.ts +1 -0
- package/src/Blend/service/BlendAddService.js +8 -0
- package/src/Blend/service/BlendAlphaService.d.ts +1 -0
- package/src/Blend/service/BlendAlphaService.js +8 -0
- package/src/Blend/service/BlendEraseService.d.ts +1 -0
- package/src/Blend/service/BlendEraseService.js +8 -0
- package/src/Blend/service/BlendGetStateService.d.ts +12 -0
- package/src/Blend/service/BlendGetStateService.js +13 -0
- package/src/Blend/service/BlendOneZeroService.d.ts +1 -0
- package/src/Blend/service/BlendOneZeroService.js +8 -0
- package/src/Blend/service/BlendResetService.d.ts +1 -0
- package/src/Blend/service/BlendResetService.js +8 -0
- package/src/Blend/service/BlendScreenService.d.ts +1 -0
- package/src/Blend/service/BlendScreenService.js +8 -0
- package/src/Blend/service/BlendSetModeService.d.ts +2 -0
- package/src/Blend/service/BlendSetModeService.js +4 -0
- package/src/Blend/usecase/BlendApplyComplexBlendUseCase.d.ts +6 -0
- package/src/Blend/usecase/BlendApplyComplexBlendUseCase.js +79 -0
- package/src/Blend/usecase/BlendOperationUseCase.d.ts +11 -0
- package/src/Blend/usecase/BlendOperationUseCase.js +31 -0
- package/src/Blend.d.ts +8 -0
- package/src/Blend.js +91 -0
- package/src/BufferManager/service/BufferManagerCreateIndirectBufferService.d.ts +15 -0
- package/src/BufferManager/service/BufferManagerCreateIndirectBufferService.js +37 -0
- package/src/BufferManager/service/BufferManagerCreateRectVerticesService.d.ts +13 -0
- package/src/BufferManager/service/BufferManagerCreateRectVerticesService.js +23 -0
- package/src/BufferManager/service/BufferManagerCreateStorageBufferService.d.ts +17 -0
- package/src/BufferManager/service/BufferManagerCreateStorageBufferService.js +23 -0
- package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.d.ts +12 -0
- package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.js +32 -0
- package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.d.ts +12 -0
- package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.js +32 -0
- package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.d.ts +12 -0
- package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.js +20 -0
- package/src/BufferManager/service/BufferManagerUpperPowerOfTwoService.d.ts +10 -0
- package/src/BufferManager/service/BufferManagerUpperPowerOfTwoService.js +18 -0
- package/src/BufferManager/usecase/BufferManagerAcquireStorageBufferUseCase.d.ts +15 -0
- package/src/BufferManager/usecase/BufferManagerAcquireStorageBufferUseCase.js +51 -0
- package/src/BufferManager/usecase/BufferManagerAcquireUniformBufferUseCase.d.ts +13 -0
- package/src/BufferManager/usecase/BufferManagerAcquireUniformBufferUseCase.js +26 -0
- package/src/BufferManager/usecase/BufferManagerAcquireVertexBufferUseCase.d.ts +14 -0
- package/src/BufferManager/usecase/BufferManagerAcquireVertexBufferUseCase.js +46 -0
- package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.d.ts +12 -0
- package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.js +20 -0
- package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.d.ts +9 -0
- package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.js +15 -0
- package/src/BufferManager.d.ts +93 -0
- package/src/BufferManager.js +487 -0
- package/src/Compute/ComputePipelineManager.d.ts +61 -0
- package/src/Compute/ComputePipelineManager.js +313 -0
- package/src/Compute/service/ComputeExecuteBlurService.d.ts +21 -0
- package/src/Compute/service/ComputeExecuteBlurService.js +81 -0
- package/src/Context/service/ContextComputeBitmapMatrixService.d.ts +1 -0
- package/src/Context/service/ContextComputeBitmapMatrixService.js +74 -0
- package/src/Context/service/ContextComputeGradientMatrixService.d.ts +4 -0
- package/src/Context/service/ContextComputeGradientMatrixService.js +88 -0
- package/src/Context/service/ContextFillSimpleService.d.ts +2 -0
- package/src/Context/service/ContextFillSimpleService.js +28 -0
- package/src/Context/service/ContextFillWithStencilMainService.d.ts +2 -0
- package/src/Context/service/ContextFillWithStencilMainService.js +19 -0
- package/src/Context/service/ContextFillWithStencilService.d.ts +2 -0
- package/src/Context/service/ContextFillWithStencilService.js +19 -0
- package/src/Context/usecase/ContextApplyFilterUseCase.d.ts +5 -0
- package/src/Context/usecase/ContextApplyFilterUseCase.js +668 -0
- package/src/Context/usecase/ContextBitmapFillUseCase.d.ts +4 -0
- package/src/Context/usecase/ContextBitmapFillUseCase.js +210 -0
- package/src/Context/usecase/ContextBitmapStrokeUseCase.d.ts +4 -0
- package/src/Context/usecase/ContextBitmapStrokeUseCase.js +119 -0
- package/src/Context/usecase/ContextClipUseCase.d.ts +5 -0
- package/src/Context/usecase/ContextClipUseCase.js +101 -0
- package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +5 -0
- package/src/Context/usecase/ContextContainerEndLayerUseCase.js +476 -0
- package/src/Context/usecase/ContextDrawArraysInstancedUseCase.d.ts +6 -0
- package/src/Context/usecase/ContextDrawArraysInstancedUseCase.js +135 -0
- package/src/Context/usecase/ContextDrawIndirectUseCase.d.ts +6 -0
- package/src/Context/usecase/ContextDrawIndirectUseCase.js +154 -0
- package/src/Context/usecase/ContextGradientFillUseCase.d.ts +4 -0
- package/src/Context/usecase/ContextGradientFillUseCase.js +230 -0
- package/src/Context/usecase/ContextGradientStrokeUseCase.d.ts +4 -0
- package/src/Context/usecase/ContextGradientStrokeUseCase.js +138 -0
- package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.d.ts +6 -0
- package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.js +213 -0
- package/src/Context.d.ts +430 -0
- package/src/Context.js +2453 -0
- package/src/FillTexturePool.d.ts +6 -0
- package/src/FillTexturePool.js +72 -0
- package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.d.ts +10 -0
- package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.js +214 -0
- package/src/Filter/BevelFilterShader.d.ts +2 -0
- package/src/Filter/BevelFilterShader.js +107 -0
- package/src/Filter/BitmapFilterShader.d.ts +2 -0
- package/src/Filter/BitmapFilterShader.js +207 -0
- package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.d.ts +16 -0
- package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.js +243 -0
- package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.d.ts +40 -0
- package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.js +51 -0
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.d.ts +25 -0
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.js +180 -0
- package/src/Filter/BlurFilterShader.d.ts +5 -0
- package/src/Filter/BlurFilterShader.js +109 -0
- package/src/Filter/BlurFilterUseCase.d.ts +36 -0
- package/src/Filter/BlurFilterUseCase.js +85 -0
- package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.d.ts +12 -0
- package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.js +90 -0
- package/src/Filter/ColorMatrixFilterShader.d.ts +4 -0
- package/src/Filter/ColorMatrixFilterShader.js +51 -0
- package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.d.ts +6 -0
- package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.js +144 -0
- package/src/Filter/ConvolutionFilterShader.d.ts +2 -0
- package/src/Filter/ConvolutionFilterShader.js +115 -0
- package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.d.ts +6 -0
- package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.js +172 -0
- package/src/Filter/DisplacementMapFilterShader.d.ts +2 -0
- package/src/Filter/DisplacementMapFilterShader.js +114 -0
- package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.d.ts +24 -0
- package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.js +179 -0
- package/src/Filter/DropShadowFilterShader.d.ts +4 -0
- package/src/Filter/DropShadowFilterShader.js +93 -0
- package/src/Filter/FilterGradientLUTCache.d.ts +29 -0
- package/src/Filter/FilterGradientLUTCache.js +84 -0
- package/src/Filter/FilterOffset.d.ts +8 -0
- package/src/Filter/FilterOffset.js +10 -0
- package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.d.ts +24 -0
- package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.js +143 -0
- package/src/Filter/GlowFilterShader.d.ts +4 -0
- package/src/Filter/GlowFilterShader.js +66 -0
- package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.d.ts +29 -0
- package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.js +216 -0
- package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.d.ts +29 -0
- package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.js +164 -0
- package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.d.ts +4 -0
- package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.js +23 -0
- package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.d.ts +4 -0
- package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.js +28 -0
- package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.d.ts +11 -0
- package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.js +19 -0
- package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.d.ts +23 -0
- package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.js +125 -0
- package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.d.ts +14 -0
- package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.js +23 -0
- package/src/FrameBufferManager.d.ts +24 -0
- package/src/FrameBufferManager.js +161 -0
- package/src/Gradient/GradientLUTCache.d.ts +61 -0
- package/src/Gradient/GradientLUTCache.js +153 -0
- package/src/Gradient/GradientLUTGenerator.d.ts +30 -0
- package/src/Gradient/GradientLUTGenerator.js +202 -0
- package/src/Grid.d.ts +18 -0
- package/src/Grid.js +21 -0
- package/src/Mask/service/MaskBeginMaskService.d.ts +9 -0
- package/src/Mask/service/MaskBeginMaskService.js +22 -0
- package/src/Mask/service/MaskEndMaskService.d.ts +15 -0
- package/src/Mask/service/MaskEndMaskService.js +36 -0
- package/src/Mask/service/MaskSetMaskBoundsService.d.ts +13 -0
- package/src/Mask/service/MaskSetMaskBoundsService.js +36 -0
- package/src/Mask/service/MaskUnionMaskService.d.ts +4 -0
- package/src/Mask/service/MaskUnionMaskService.js +74 -0
- package/src/Mask/usecase/MaskBindUseCase.d.ts +10 -0
- package/src/Mask/usecase/MaskBindUseCase.js +20 -0
- package/src/Mask/usecase/MaskLeaveMaskUseCase.d.ts +13 -0
- package/src/Mask/usecase/MaskLeaveMaskUseCase.js +51 -0
- package/src/Mask.d.ts +12 -0
- package/src/Mask.js +41 -0
- package/src/Mesh/service/MeshFillGenerateService.d.ts +19 -0
- package/src/Mesh/service/MeshFillGenerateService.js +76 -0
- package/src/Mesh/service/MeshLerpService.d.ts +13 -0
- package/src/Mesh/service/MeshLerpService.js +17 -0
- package/src/Mesh/service/MeshStrokeFillGenerateService.d.ts +19 -0
- package/src/Mesh/service/MeshStrokeFillGenerateService.js +76 -0
- package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.d.ts +13 -0
- package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.js +65 -0
- package/src/Mesh/usecase/MeshFillGenerateUseCase.d.ts +12 -0
- package/src/Mesh/usecase/MeshFillGenerateUseCase.js +48 -0
- package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.d.ts +13 -0
- package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.js +65 -0
- package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.d.ts +14 -0
- package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.js +28 -0
- package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.d.ts +18 -0
- package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.js +54 -0
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.d.ts +25 -0
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +608 -0
- package/src/PathCommand.d.ts +123 -0
- package/src/PathCommand.js +317 -0
- package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.d.ts +11 -0
- package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.js +35 -0
- package/src/SamplerCache/service/SamplerCacheGenerateKeyService.d.ts +13 -0
- package/src/SamplerCache/service/SamplerCacheGenerateKeyService.js +15 -0
- package/src/SamplerCache/service/SamplerCacheGetOrCreateService.d.ts +15 -0
- package/src/SamplerCache/service/SamplerCacheGetOrCreateService.js +30 -0
- package/src/SamplerCache.d.ts +18 -0
- package/src/SamplerCache.js +61 -0
- package/src/Shader/BlendModeShader.d.ts +51 -0
- package/src/Shader/BlendModeShader.js +71 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.d.ts +12 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.js +28 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.d.ts +13 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.js +61 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.d.ts +19 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.js +37 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.d.ts +11 -0
- package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.js +24 -0
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.d.ts +14 -0
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.js +24 -0
- package/src/Shader/PipelineManager.d.ts +57 -0
- package/src/Shader/PipelineManager.js +2868 -0
- package/src/Shader/ShaderInstancedManager.d.ts +8 -0
- package/src/Shader/ShaderInstancedManager.js +18 -0
- package/src/Shader/ShaderSource.d.ts +60 -0
- package/src/Shader/ShaderSource.js +518 -0
- package/src/Shader/wgsl/common/SharedWgsl.d.ts +5 -0
- package/src/Shader/wgsl/common/SharedWgsl.js +37 -0
- package/src/Shader/wgsl/fragment/BasicFragment.d.ts +2 -0
- package/src/Shader/wgsl/fragment/BasicFragment.js +28 -0
- package/src/Shader/wgsl/fragment/BitmapFragment.d.ts +1 -0
- package/src/Shader/wgsl/fragment/BitmapFragment.js +43 -0
- package/src/Shader/wgsl/fragment/BlendFragment.d.ts +8 -0
- package/src/Shader/wgsl/fragment/BlendFragment.js +63 -0
- package/src/Shader/wgsl/fragment/EffectFragment.d.ts +6 -0
- package/src/Shader/wgsl/fragment/EffectFragment.js +324 -0
- package/src/Shader/wgsl/fragment/FillFragment.d.ts +1 -0
- package/src/Shader/wgsl/fragment/FillFragment.js +28 -0
- package/src/Shader/wgsl/fragment/FilterFragment.d.ts +10 -0
- package/src/Shader/wgsl/fragment/FilterFragment.js +212 -0
- package/src/Shader/wgsl/fragment/GradientFragment.d.ts +3 -0
- package/src/Shader/wgsl/fragment/GradientFragment.js +118 -0
- package/src/Shader/wgsl/fragment/InstancedFragment.d.ts +1 -0
- package/src/Shader/wgsl/fragment/InstancedFragment.js +20 -0
- package/src/Shader/wgsl/fragment/MaskFragment.d.ts +1 -0
- package/src/Shader/wgsl/fragment/MaskFragment.js +17 -0
- package/src/Shader/wgsl/fragment/StencilFragment.d.ts +2 -0
- package/src/Shader/wgsl/fragment/StencilFragment.js +33 -0
- package/src/Shader/wgsl/vertex/BasicVertex.d.ts +1 -0
- package/src/Shader/wgsl/vertex/BasicVertex.js +37 -0
- package/src/Shader/wgsl/vertex/BitmapVertex.d.ts +1 -0
- package/src/Shader/wgsl/vertex/BitmapVertex.js +43 -0
- package/src/Shader/wgsl/vertex/FillVertex.d.ts +1 -0
- package/src/Shader/wgsl/vertex/FillVertex.js +35 -0
- package/src/Shader/wgsl/vertex/FilterVertex.d.ts +12 -0
- package/src/Shader/wgsl/vertex/FilterVertex.js +193 -0
- package/src/Shader/wgsl/vertex/GradientVertex.d.ts +1 -0
- package/src/Shader/wgsl/vertex/GradientVertex.js +44 -0
- package/src/Shader/wgsl/vertex/InstancedVertex.d.ts +1 -0
- package/src/Shader/wgsl/vertex/InstancedVertex.js +48 -0
- package/src/Shader/wgsl/vertex/MaskVertex.d.ts +1 -0
- package/src/Shader/wgsl/vertex/MaskVertex.js +36 -0
- package/src/Shader/wgsl/vertex/StencilVertex.d.ts +2 -0
- package/src/Shader/wgsl/vertex/StencilVertex.js +66 -0
- package/src/TextureManager/service/TextureManagerInitializeSamplersService.d.ts +11 -0
- package/src/TextureManager/service/TextureManagerInitializeSamplersService.js +48 -0
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.d.ts +13 -0
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.js +30 -0
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.d.ts +15 -0
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.js +26 -0
- package/src/TextureManager.d.ts +15 -0
- package/src/TextureManager.js +87 -0
- package/src/TexturePool/service/TexturePoolCleanupService.d.ts +14 -0
- package/src/TexturePool/service/TexturePoolCleanupService.js +28 -0
- package/src/TexturePool/service/TexturePoolEvictOldestService.d.ts +11 -0
- package/src/TexturePool/service/TexturePoolEvictOldestService.js +24 -0
- package/src/TexturePool/service/TexturePoolReleaseService.d.ts +13 -0
- package/src/TexturePool/service/TexturePoolReleaseService.js +22 -0
- package/src/TexturePool/usecase/TexturePoolAcquireUseCase.d.ts +19 -0
- package/src/TexturePool/usecase/TexturePoolAcquireUseCase.js +90 -0
- package/src/TexturePool.d.ts +69 -0
- package/src/TexturePool.js +151 -0
- package/src/WebGPUUtil.d.ts +102 -0
- package/src/WebGPUUtil.js +157 -0
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/interface/IAttachmentObject.d.ts +41 -0
- package/src/interface/IAttachmentObject.js +1 -0
- package/src/interface/IBlendMode.d.ts +1 -0
- package/src/interface/IBlendMode.js +1 -0
- package/src/interface/IBlendState.d.ts +8 -0
- package/src/interface/IBlendState.js +1 -0
- package/src/interface/IBounds.d.ts +6 -0
- package/src/interface/IBounds.js +1 -0
- package/src/interface/ICachedBindGroup.d.ts +8 -0
- package/src/interface/ICachedBindGroup.js +1 -0
- package/src/interface/IColorBufferObject.d.ts +17 -0
- package/src/interface/IColorBufferObject.js +1 -0
- package/src/interface/IComplexBlendItem.d.ts +19 -0
- package/src/interface/IComplexBlendItem.js +1 -0
- package/src/interface/IFilterConfig.d.ts +29 -0
- package/src/interface/IFilterConfig.js +1 -0
- package/src/interface/IGradientLUTData.d.ts +8 -0
- package/src/interface/IGradientLUTData.js +1 -0
- package/src/interface/IGradientStop.d.ts +11 -0
- package/src/interface/IGradientStop.js +1 -0
- package/src/interface/ILocalFilterConfig.d.ts +21 -0
- package/src/interface/ILocalFilterConfig.js +1 -0
- package/src/interface/IMeshResult.d.ts +8 -0
- package/src/interface/IMeshResult.js +1 -0
- package/src/interface/IPath.d.ts +8 -0
- package/src/interface/IPath.js +1 -0
- package/src/interface/IPoint.d.ts +4 -0
- package/src/interface/IPoint.js +1 -0
- package/src/interface/IPooledBuffer.d.ts +8 -0
- package/src/interface/IPooledBuffer.js +1 -0
- package/src/interface/IPooledTexture.d.ts +17 -0
- package/src/interface/IPooledTexture.js +1 -0
- package/src/interface/IQuadraticSegment.d.ts +9 -0
- package/src/interface/IQuadraticSegment.js +1 -0
- package/src/interface/IRectangleInfo.d.ts +13 -0
- package/src/interface/IRectangleInfo.js +1 -0
- package/src/interface/IStencilBufferObject.d.ts +16 -0
- package/src/interface/IStencilBufferObject.js +1 -0
- package/src/interface/IStorageBufferConfig.d.ts +40 -0
- package/src/interface/IStorageBufferConfig.js +1 -0
- package/src/interface/ITextureObject.d.ts +16 -0
- package/src/interface/ITextureObject.js +1 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description WebGPU用ブレンドモードシェーダー
|
|
3
|
+
* Blend mode shaders for WebGPU
|
|
4
|
+
*/
|
|
5
|
+
export declare class BlendModeShader {
|
|
6
|
+
/**
|
|
7
|
+
* @description ブレンドモード用の頂点シェーダー
|
|
8
|
+
* @return {string}
|
|
9
|
+
*/
|
|
10
|
+
static getVertexShader(): string;
|
|
11
|
+
/**
|
|
12
|
+
* @description Multiplyブレンド用のフラグメントシェーダー
|
|
13
|
+
* @return {string}
|
|
14
|
+
*/
|
|
15
|
+
static getMultiplyShader(): string;
|
|
16
|
+
/**
|
|
17
|
+
* @description Screenブレンド用のフラグメントシェーダー
|
|
18
|
+
* @return {string}
|
|
19
|
+
*/
|
|
20
|
+
static getScreenShader(): string;
|
|
21
|
+
/**
|
|
22
|
+
* @description Lightenブレンド用のフラグメントシェーダー
|
|
23
|
+
* @return {string}
|
|
24
|
+
*/
|
|
25
|
+
static getLightenShader(): string;
|
|
26
|
+
/**
|
|
27
|
+
* @description Darkenブレンド用のフラグメントシェーダー
|
|
28
|
+
* @return {string}
|
|
29
|
+
*/
|
|
30
|
+
static getDarkenShader(): string;
|
|
31
|
+
/**
|
|
32
|
+
* @description Overlayブレンド用のフラグメントシェーダー
|
|
33
|
+
* @return {string}
|
|
34
|
+
*/
|
|
35
|
+
static getOverlayShader(): string;
|
|
36
|
+
/**
|
|
37
|
+
* @description Hard Lightブレンド用のフラグメントシェーダー
|
|
38
|
+
* @return {string}
|
|
39
|
+
*/
|
|
40
|
+
static getHardLightShader(): string;
|
|
41
|
+
/**
|
|
42
|
+
* @description Differenceブレンド用のフラグメントシェーダー
|
|
43
|
+
* @return {string}
|
|
44
|
+
*/
|
|
45
|
+
static getDifferenceShader(): string;
|
|
46
|
+
/**
|
|
47
|
+
* @description Subtractブレンド用のフラグメントシェーダー
|
|
48
|
+
* @return {string}
|
|
49
|
+
*/
|
|
50
|
+
static getSubtractShader(): string;
|
|
51
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { BlendModeVertex } from "./wgsl/vertex/FilterVertex";
|
|
2
|
+
import { MultiplyBlendFragment, ScreenBlendFragment, LightenBlendFragment, DarkenBlendFragment, OverlayBlendFragment, HardLightBlendFragment, DifferenceBlendFragment, SubtractBlendFragment } from "./wgsl/fragment/BlendFragment";
|
|
3
|
+
/**
|
|
4
|
+
* @description WebGPU用ブレンドモードシェーダー
|
|
5
|
+
* Blend mode shaders for WebGPU
|
|
6
|
+
*/
|
|
7
|
+
export class BlendModeShader {
|
|
8
|
+
/**
|
|
9
|
+
* @description ブレンドモード用の頂点シェーダー
|
|
10
|
+
* @return {string}
|
|
11
|
+
*/
|
|
12
|
+
static getVertexShader() {
|
|
13
|
+
return BlendModeVertex;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @description Multiplyブレンド用のフラグメントシェーダー
|
|
17
|
+
* @return {string}
|
|
18
|
+
*/
|
|
19
|
+
static getMultiplyShader() {
|
|
20
|
+
return MultiplyBlendFragment;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* @description Screenブレンド用のフラグメントシェーダー
|
|
24
|
+
* @return {string}
|
|
25
|
+
*/
|
|
26
|
+
static getScreenShader() {
|
|
27
|
+
return ScreenBlendFragment;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* @description Lightenブレンド用のフラグメントシェーダー
|
|
31
|
+
* @return {string}
|
|
32
|
+
*/
|
|
33
|
+
static getLightenShader() {
|
|
34
|
+
return LightenBlendFragment;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* @description Darkenブレンド用のフラグメントシェーダー
|
|
38
|
+
* @return {string}
|
|
39
|
+
*/
|
|
40
|
+
static getDarkenShader() {
|
|
41
|
+
return DarkenBlendFragment;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @description Overlayブレンド用のフラグメントシェーダー
|
|
45
|
+
* @return {string}
|
|
46
|
+
*/
|
|
47
|
+
static getOverlayShader() {
|
|
48
|
+
return OverlayBlendFragment;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* @description Hard Lightブレンド用のフラグメントシェーダー
|
|
52
|
+
* @return {string}
|
|
53
|
+
*/
|
|
54
|
+
static getHardLightShader() {
|
|
55
|
+
return HardLightBlendFragment;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @description Differenceブレンド用のフラグメントシェーダー
|
|
59
|
+
* @return {string}
|
|
60
|
+
*/
|
|
61
|
+
static getDifferenceShader() {
|
|
62
|
+
return DifferenceBlendFragment;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* @description Subtractブレンド用のフラグメントシェーダー
|
|
66
|
+
* @return {string}
|
|
67
|
+
*/
|
|
68
|
+
static getSubtractShader() {
|
|
69
|
+
return SubtractBlendFragment;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description グラデーションストップ数に応じた適応的解像度を計算
|
|
3
|
+
* Calculate adaptive resolution based on number of gradient stops
|
|
4
|
+
*
|
|
5
|
+
* @param {number} stopsCount - グラデーションストップの数
|
|
6
|
+
* @param {number} [minResolution=64] - 最小解像度
|
|
7
|
+
* @param {number} [maxResolution=512] - 最大解像度
|
|
8
|
+
* @return {number}
|
|
9
|
+
* @method
|
|
10
|
+
* @protected
|
|
11
|
+
*/
|
|
12
|
+
export declare const execute: (stopsCount: number, minResolution?: number, maxResolution?: number) => number;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description グラデーションストップ数に応じた適応的解像度を計算
|
|
3
|
+
* Calculate adaptive resolution based on number of gradient stops
|
|
4
|
+
*
|
|
5
|
+
* @param {number} stopsCount - グラデーションストップの数
|
|
6
|
+
* @param {number} [minResolution=64] - 最小解像度
|
|
7
|
+
* @param {number} [maxResolution=512] - 最大解像度
|
|
8
|
+
* @return {number}
|
|
9
|
+
* @method
|
|
10
|
+
* @protected
|
|
11
|
+
*/
|
|
12
|
+
export const execute = (stopsCount, minResolution = 64, maxResolution = 512) => {
|
|
13
|
+
// ストップ数に応じて解像度を調整
|
|
14
|
+
// 2ストップ: 64px
|
|
15
|
+
// 3-4ストップ: 128px
|
|
16
|
+
// 5-8ストップ: 256px
|
|
17
|
+
// 9以上: 512px
|
|
18
|
+
if (stopsCount <= 2) {
|
|
19
|
+
return Math.max(minResolution, 64);
|
|
20
|
+
}
|
|
21
|
+
if (stopsCount <= 4) {
|
|
22
|
+
return Math.min(maxResolution, Math.max(minResolution, 128));
|
|
23
|
+
}
|
|
24
|
+
if (stopsCount <= 8) {
|
|
25
|
+
return Math.min(maxResolution, Math.max(minResolution, 256));
|
|
26
|
+
}
|
|
27
|
+
return maxResolution;
|
|
28
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IGradientStop } from "../../../interface/IGradientStop";
|
|
2
|
+
/**
|
|
3
|
+
* @description グラデーションLUTのピクセルデータを生成
|
|
4
|
+
* Generate pixel data for gradient LUT
|
|
5
|
+
*
|
|
6
|
+
* @param {IGradientStop[]} stops - ソート済みのグラデーションストップ
|
|
7
|
+
* @param {number} resolution - LUTの解像度(ピクセル数)
|
|
8
|
+
* @param {number} interpolation - 0: RGB, 1: Linear RGB
|
|
9
|
+
* @return {Uint8Array}
|
|
10
|
+
* @method
|
|
11
|
+
* @protected
|
|
12
|
+
*/
|
|
13
|
+
export declare const execute: (stops: IGradientStop[], resolution: number, interpolation: number) => Uint8Array;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { execute as gradientLUTInterpolateColorService } from "./GradientLUTInterpolateColorService";
|
|
2
|
+
/**
|
|
3
|
+
* @description グラデーションLUTのピクセルデータを生成
|
|
4
|
+
* Generate pixel data for gradient LUT
|
|
5
|
+
*
|
|
6
|
+
* @param {IGradientStop[]} stops - ソート済みのグラデーションストップ
|
|
7
|
+
* @param {number} resolution - LUTの解像度(ピクセル数)
|
|
8
|
+
* @param {number} interpolation - 0: RGB, 1: Linear RGB
|
|
9
|
+
* @return {Uint8Array}
|
|
10
|
+
* @method
|
|
11
|
+
* @protected
|
|
12
|
+
*/
|
|
13
|
+
export const execute = (stops, resolution, interpolation) => {
|
|
14
|
+
const pixels = new Uint8Array(resolution * 4);
|
|
15
|
+
if (stops.length === 0) {
|
|
16
|
+
return pixels;
|
|
17
|
+
}
|
|
18
|
+
if (stops.length === 1) {
|
|
19
|
+
// 単一ストップの場合は全体を同じ色で塗る
|
|
20
|
+
const stop = stops[0];
|
|
21
|
+
for (let i = 0; i < resolution; i++) {
|
|
22
|
+
const offset = i * 4;
|
|
23
|
+
pixels[offset] = Math.round(stop.r * 255);
|
|
24
|
+
pixels[offset + 1] = Math.round(stop.g * 255);
|
|
25
|
+
pixels[offset + 2] = Math.round(stop.b * 255);
|
|
26
|
+
pixels[offset + 3] = Math.round(stop.a * 255);
|
|
27
|
+
}
|
|
28
|
+
return pixels;
|
|
29
|
+
}
|
|
30
|
+
for (let i = 0; i < resolution; i++) {
|
|
31
|
+
const ratio = i / (resolution - 1);
|
|
32
|
+
// 該当するストップ区間を見つける
|
|
33
|
+
let startStopIndex = 0;
|
|
34
|
+
for (let j = 0; j < stops.length - 1; j++) {
|
|
35
|
+
if (ratio >= stops[j].ratio && ratio <= stops[j + 1].ratio) {
|
|
36
|
+
startStopIndex = j;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
if (ratio > stops[j + 1].ratio) {
|
|
40
|
+
startStopIndex = j + 1;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const startStop = stops[startStopIndex];
|
|
44
|
+
const endStop = stops[Math.min(startStopIndex + 1, stops.length - 1)];
|
|
45
|
+
// 区間内での補間係数を計算
|
|
46
|
+
let t = 0;
|
|
47
|
+
const rangeWidth = endStop.ratio - startStop.ratio;
|
|
48
|
+
if (rangeWidth > 0) {
|
|
49
|
+
t = (ratio - startStop.ratio) / rangeWidth;
|
|
50
|
+
t = Math.max(0, Math.min(1, t));
|
|
51
|
+
}
|
|
52
|
+
// 色を補間
|
|
53
|
+
const color = gradientLUTInterpolateColorService(startStop, endStop, t, interpolation);
|
|
54
|
+
const offset = i * 4;
|
|
55
|
+
pixels[offset] = Math.round(color.r * 255);
|
|
56
|
+
pixels[offset + 1] = Math.round(color.g * 255);
|
|
57
|
+
pixels[offset + 2] = Math.round(color.b * 255);
|
|
58
|
+
pixels[offset + 3] = Math.round(color.a * 255);
|
|
59
|
+
}
|
|
60
|
+
return pixels;
|
|
61
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { IGradientStop } from "../../../interface/IGradientStop";
|
|
2
|
+
/**
|
|
3
|
+
* @description 2つのストップ間で色を補間
|
|
4
|
+
* Interpolate color between two stops
|
|
5
|
+
*
|
|
6
|
+
* @param {IGradientStop} startStop
|
|
7
|
+
* @param {IGradientStop} endStop
|
|
8
|
+
* @param {number} t - 補間係数 (0-1)
|
|
9
|
+
* @param {number} interpolation - 0: RGB, 1: Linear RGB
|
|
10
|
+
* @return {{ r: number, g: number, b: number, a: number }}
|
|
11
|
+
* @method
|
|
12
|
+
* @protected
|
|
13
|
+
*/
|
|
14
|
+
export declare const execute: (startStop: IGradientStop, endStop: IGradientStop, t: number, interpolation: number) => {
|
|
15
|
+
r: number;
|
|
16
|
+
g: number;
|
|
17
|
+
b: number;
|
|
18
|
+
a: number;
|
|
19
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description 2つのストップ間で色を補間
|
|
3
|
+
* Interpolate color between two stops
|
|
4
|
+
*
|
|
5
|
+
* @param {IGradientStop} startStop
|
|
6
|
+
* @param {IGradientStop} endStop
|
|
7
|
+
* @param {number} t - 補間係数 (0-1)
|
|
8
|
+
* @param {number} interpolation - 0: RGB, 1: Linear RGB
|
|
9
|
+
* @return {{ r: number, g: number, b: number, a: number }}
|
|
10
|
+
* @method
|
|
11
|
+
* @protected
|
|
12
|
+
*/
|
|
13
|
+
export const execute = (startStop, endStop, t, interpolation) => {
|
|
14
|
+
let r;
|
|
15
|
+
let g;
|
|
16
|
+
let b;
|
|
17
|
+
if (interpolation === 1) {
|
|
18
|
+
// Linear RGB補間(ガンマ補正あり)
|
|
19
|
+
const sr = Math.pow(startStop.r, 2.2);
|
|
20
|
+
const sg = Math.pow(startStop.g, 2.2);
|
|
21
|
+
const sb = Math.pow(startStop.b, 2.2);
|
|
22
|
+
const er = Math.pow(endStop.r, 2.2);
|
|
23
|
+
const eg = Math.pow(endStop.g, 2.2);
|
|
24
|
+
const eb = Math.pow(endStop.b, 2.2);
|
|
25
|
+
r = Math.pow(sr + (er - sr) * t, 1 / 2.2);
|
|
26
|
+
g = Math.pow(sg + (eg - sg) * t, 1 / 2.2);
|
|
27
|
+
b = Math.pow(sb + (eb - sb) * t, 1 / 2.2);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// 通常のRGB補間
|
|
31
|
+
r = startStop.r + (endStop.r - startStop.r) * t;
|
|
32
|
+
g = startStop.g + (endStop.g - startStop.g) * t;
|
|
33
|
+
b = startStop.b + (endStop.b - startStop.b) * t;
|
|
34
|
+
}
|
|
35
|
+
const a = startStop.a + (endStop.a - startStop.a) * t;
|
|
36
|
+
return { r, g, b, a };
|
|
37
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { IGradientStop } from "../../../interface/IGradientStop";
|
|
2
|
+
/**
|
|
3
|
+
* @description グラデーションストップ配列をパースしてソート
|
|
4
|
+
* Parse and sort gradient stops array
|
|
5
|
+
*
|
|
6
|
+
* @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
|
|
7
|
+
* @return {IGradientStop[]}
|
|
8
|
+
* @method
|
|
9
|
+
* @protected
|
|
10
|
+
*/
|
|
11
|
+
export declare const execute: (stops: number[]) => IGradientStop[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description グラデーションストップ配列をパースしてソート
|
|
3
|
+
* Parse and sort gradient stops array
|
|
4
|
+
*
|
|
5
|
+
* @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
|
|
6
|
+
* @return {IGradientStop[]}
|
|
7
|
+
* @method
|
|
8
|
+
* @protected
|
|
9
|
+
*/
|
|
10
|
+
export const execute = (stops) => {
|
|
11
|
+
const gradientStops = [];
|
|
12
|
+
for (let i = 0; i < stops.length; i += 5) {
|
|
13
|
+
gradientStops.push({
|
|
14
|
+
"ratio": stops[i],
|
|
15
|
+
"r": stops[i + 1],
|
|
16
|
+
"g": stops[i + 2],
|
|
17
|
+
"b": stops[i + 3],
|
|
18
|
+
"a": stops[i + 4]
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
// ストップポイントをratio順にソート
|
|
22
|
+
gradientStops.sort((a, b) => a.ratio - b.ratio);
|
|
23
|
+
return gradientStops;
|
|
24
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IGradientLUTData } from "../../../interface/IGradientLUTData";
|
|
2
|
+
/**
|
|
3
|
+
* @description グラデーションLUTのピクセルデータを生成
|
|
4
|
+
* Generate gradient LUT pixel data
|
|
5
|
+
*
|
|
6
|
+
* @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
|
|
7
|
+
* @param {number} interpolation - 0: RGB, 1: Linear RGB
|
|
8
|
+
* @param {number} [minResolution=64] - 最小解像度
|
|
9
|
+
* @param {number} [maxResolution=512] - 最大解像度
|
|
10
|
+
* @return {IGradientLUTData}
|
|
11
|
+
* @method
|
|
12
|
+
* @protected
|
|
13
|
+
*/
|
|
14
|
+
export declare const execute: (stops: number[], interpolation: number, minResolution?: number, maxResolution?: number) => IGradientLUTData;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { execute as gradientLUTParseStopsService } from "../service/GradientLUTParseStopsService";
|
|
2
|
+
import { execute as gradientLUTCalculateResolutionService } from "../service/GradientLUTCalculateResolutionService";
|
|
3
|
+
import { execute as gradientLUTGeneratePixelsService } from "../service/GradientLUTGeneratePixelsService";
|
|
4
|
+
/**
|
|
5
|
+
* @description グラデーションLUTのピクセルデータを生成
|
|
6
|
+
* Generate gradient LUT pixel data
|
|
7
|
+
*
|
|
8
|
+
* @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
|
|
9
|
+
* @param {number} interpolation - 0: RGB, 1: Linear RGB
|
|
10
|
+
* @param {number} [minResolution=64] - 最小解像度
|
|
11
|
+
* @param {number} [maxResolution=512] - 最大解像度
|
|
12
|
+
* @return {IGradientLUTData}
|
|
13
|
+
* @method
|
|
14
|
+
* @protected
|
|
15
|
+
*/
|
|
16
|
+
export const execute = (stops, interpolation, minResolution = 64, maxResolution = 512) => {
|
|
17
|
+
// ストップ配列をパースしてソート
|
|
18
|
+
const parsedStops = gradientLUTParseStopsService(stops);
|
|
19
|
+
// ストップ数に応じた解像度を計算
|
|
20
|
+
const resolution = gradientLUTCalculateResolutionService(parsedStops.length, minResolution, maxResolution);
|
|
21
|
+
// ピクセルデータを生成
|
|
22
|
+
const pixels = gradientLUTGeneratePixelsService(parsedStops, resolution, interpolation);
|
|
23
|
+
return { pixels, resolution };
|
|
24
|
+
};
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export declare class PipelineManager {
|
|
2
|
+
private device;
|
|
3
|
+
private format;
|
|
4
|
+
private pipelines;
|
|
5
|
+
private bindGroupLayouts;
|
|
6
|
+
private sampleCount;
|
|
7
|
+
private shaderModuleCache;
|
|
8
|
+
private filterBindGroupLayouts;
|
|
9
|
+
constructor(device: GPUDevice, format: GPUTextureFormat);
|
|
10
|
+
private getOrCreateShaderModule;
|
|
11
|
+
private initialize;
|
|
12
|
+
private lazyInitGroups;
|
|
13
|
+
private readonly lazyGroupMap;
|
|
14
|
+
private ensureLazyGroup;
|
|
15
|
+
preloadLazyGroups(): void;
|
|
16
|
+
private createFillPipeline;
|
|
17
|
+
private createStencilFillPipelines;
|
|
18
|
+
private createClipPipeline;
|
|
19
|
+
private createMaskUnionPipelines;
|
|
20
|
+
private createMaskPipeline;
|
|
21
|
+
private createBasicPipeline;
|
|
22
|
+
private createTexturePipeline;
|
|
23
|
+
private createInstancedPipeline;
|
|
24
|
+
private createGradientPipeline;
|
|
25
|
+
private createBitmapFillPipeline;
|
|
26
|
+
private createBlendPipeline;
|
|
27
|
+
private createBlurFilterPipeline;
|
|
28
|
+
private createTextureCopyPipeline;
|
|
29
|
+
private createPositionedTexturePipeline;
|
|
30
|
+
private createTextureScalePipeline;
|
|
31
|
+
private createBitmapSyncPipeline;
|
|
32
|
+
private createColorMatrixFilterPipeline;
|
|
33
|
+
private createComplexBlendPipelines;
|
|
34
|
+
private createComplexBlendCopyPipeline;
|
|
35
|
+
private createComplexBlendOutputPipeline;
|
|
36
|
+
private createFilterPipelineWithLayout;
|
|
37
|
+
private createFullscreenQuadPipeline;
|
|
38
|
+
getPipeline(name: string): GPURenderPipeline | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* @description フィルターパイプラインのoverride定数バリアントを取得
|
|
41
|
+
* GPU warp divergenceを排除するコンパイル時分岐特殊化
|
|
42
|
+
*/
|
|
43
|
+
getFilterPipeline(baseName: string, constants: Record<string, number>): GPURenderPipeline | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* @description グラデーションタイプとスプレッドモードに応じた特殊化パイプラインを取得
|
|
46
|
+
* override定数でGPU warp divergenceを排除
|
|
47
|
+
*/
|
|
48
|
+
getGradientPipeline(baseName: string, gradientType: number, spreadMode: number): GPURenderPipeline | undefined;
|
|
49
|
+
private gradientPipelineLayout;
|
|
50
|
+
private gradientVertexShaderModule;
|
|
51
|
+
private gradientFragmentShaderModule;
|
|
52
|
+
private gradientStencilFragmentShaderModule;
|
|
53
|
+
private createGradientVariant;
|
|
54
|
+
getBindGroupLayout(name: string): GPUBindGroupLayout | undefined;
|
|
55
|
+
private createNodeClearPipeline;
|
|
56
|
+
dispose(): void;
|
|
57
|
+
}
|