@next2d/webgpu 3.0.4 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/AtlasManager.d.ts +75 -6
- package/src/AtlasManager.js +106 -30
- package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.d.ts +2 -2
- package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.js +3 -3
- package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.d.ts +4 -4
- package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.js +4 -4
- package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.d.ts +5 -5
- package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.js +6 -6
- package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.d.ts +6 -6
- package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.js +7 -7
- package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.d.ts +6 -6
- package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.js +9 -9
- package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.d.ts +6 -6
- package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.js +10 -10
- package/src/AttachmentManager/service/AttachmentManagerGetTextureService.d.ts +7 -7
- package/src/AttachmentManager/service/AttachmentManagerGetTextureService.js +10 -10
- package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.d.ts +3 -3
- package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.js +7 -7
- package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.d.ts +10 -10
- package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.js +16 -16
- package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.d.ts +6 -6
- package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.js +10 -10
- package/src/AttachmentManager.d.ts +28 -6
- package/src/AttachmentManager.js +28 -23
- package/src/BezierConverter/BezierConverter.d.ts +9 -3
- package/src/BezierConverter/BezierConverter.js +5 -3
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +2 -13
- package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +13 -25
- package/src/Blend/BlendInstancedManager.d.ts +19 -15
- package/src/Blend/BlendInstancedManager.js +35 -22
- package/src/Blend/usecase/BlendApplyComplexBlendUseCase.d.ts +9 -2
- package/src/Blend/usecase/BlendApplyComplexBlendUseCase.js +28 -17
- package/src/Blend.d.ts +20 -2
- package/src/Blend.js +20 -4
- package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.js +2 -2
- package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.js +2 -2
- package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.d.ts +1 -0
- package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.js +1 -0
- package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.d.ts +1 -0
- package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.js +1 -0
- package/src/BufferManager.d.ts +108 -43
- package/src/BufferManager.js +113 -153
- package/src/Context/service/ContextComputeBitmapMatrixService.d.ts +7 -0
- package/src/Context/service/ContextComputeBitmapMatrixService.js +7 -0
- package/src/Context/service/ContextComputeGradientMatrixService.d.ts +9 -1
- package/src/Context/service/ContextComputeGradientMatrixService.js +15 -7
- package/src/Context/service/ContextFillSimpleService.d.ts +14 -0
- package/src/Context/service/ContextFillSimpleService.js +14 -0
- package/src/Context/service/ContextFillWithStencilMainService.d.ts +11 -0
- package/src/Context/service/ContextFillWithStencilMainService.js +11 -0
- package/src/Context/service/ContextFillWithStencilService.d.ts +11 -0
- package/src/Context/service/ContextFillWithStencilService.js +11 -0
- package/src/Context/usecase/ContextApplyFilterUseCase.d.ts +17 -0
- package/src/Context/usecase/ContextApplyFilterUseCase.js +201 -62
- package/src/Context/usecase/ContextBitmapFillUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextBitmapFillUseCase.js +47 -0
- package/src/Context/usecase/ContextBitmapStrokeUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextBitmapStrokeUseCase.js +35 -0
- package/src/Context/usecase/ContextClipUseCase.d.ts +15 -0
- package/src/Context/usecase/ContextClipUseCase.js +19 -0
- package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +21 -1
- package/src/Context/usecase/ContextContainerEndLayerUseCase.js +195 -104
- package/src/Context/usecase/ContextDrawArraysInstancedUseCase.d.ts +13 -0
- package/src/Context/usecase/ContextDrawArraysInstancedUseCase.js +41 -20
- package/src/Context/usecase/ContextDrawIndirectUseCase.d.ts +16 -1
- package/src/Context/usecase/ContextDrawIndirectUseCase.js +53 -30
- package/src/Context/usecase/ContextGradientFillUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextGradientFillUseCase.js +47 -0
- package/src/Context/usecase/ContextGradientStrokeUseCase.d.ts +23 -0
- package/src/Context/usecase/ContextGradientStrokeUseCase.js +35 -0
- package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.d.ts +13 -1
- package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.js +126 -60
- package/src/Context.d.ts +445 -63
- package/src/Context.js +566 -144
- package/src/FillTexturePool.d.ts +39 -0
- package/src/FillTexturePool.js +70 -7
- package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.d.ts +21 -2
- package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.js +33 -26
- package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.d.ts +5 -5
- package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.js +81 -64
- package/src/Filter/BlurFilterUseCase.d.ts +15 -11
- package/src/Filter/BlurFilterUseCase.js +22 -17
- package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.d.ts +2 -2
- package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.js +5 -5
- package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.d.ts +15 -1
- package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.js +23 -17
- package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.d.ts +20 -1
- package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.js +37 -26
- package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.d.ts +7 -7
- package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.js +19 -31
- package/src/Filter/FilterGradientLUTCache.js +2 -0
- package/src/Filter/FilterUtil.d.ts +23 -0
- package/src/Filter/FilterUtil.js +33 -0
- package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.d.ts +5 -5
- package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.js +12 -21
- package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.d.ts +6 -6
- package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.js +16 -19
- package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.d.ts +5 -5
- package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.js +13 -16
- package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.d.ts +13 -1
- package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.js +30 -3
- package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.d.ts +11 -1
- package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.js +36 -6
- package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.d.ts +10 -10
- package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.js +15 -15
- package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.d.ts +4 -4
- package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.js +5 -5
- package/src/FrameBufferManager.d.ts +95 -3
- package/src/FrameBufferManager.js +97 -8
- package/src/Gradient/GradientLUTCache.d.ts +36 -4
- package/src/Gradient/GradientLUTCache.js +61 -5
- package/src/Gradient/GradientLUTGenerator.d.ts +26 -14
- package/src/Gradient/GradientLUTGenerator.js +74 -43
- package/src/Mask/service/MaskUnionMaskService.d.ts +16 -1
- package/src/Mask/service/MaskUnionMaskService.js +45 -31
- package/src/Mask.d.ts +57 -3
- package/src/Mask.js +75 -11
- package/src/Mesh/service/MeshFillGenerateService.d.ts +4 -4
- package/src/Mesh/service/MeshFillGenerateService.js +4 -4
- package/src/Mesh/service/MeshStrokeFillGenerateService.d.ts +4 -4
- package/src/Mesh/service/MeshStrokeFillGenerateService.js +4 -4
- package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.d.ts +3 -3
- package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.js +10 -3
- package/src/Mesh/usecase/MeshFillGenerateUseCase.d.ts +2 -2
- package/src/Mesh/usecase/MeshFillGenerateUseCase.js +9 -2
- package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.d.ts +3 -3
- package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.js +10 -3
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.d.ts +8 -14
- package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +214 -129
- package/src/PathCommand.d.ts +24 -23
- package/src/PathCommand.js +25 -79
- package/src/Shader/PipelineManager.d.ts +223 -6
- package/src/Shader/PipelineManager.js +308 -66
- package/src/Shader/ShaderInstancedManager.d.ts +17 -0
- package/src/Shader/ShaderInstancedManager.js +17 -0
- package/src/Shader/ShaderSource.d.ts +317 -12
- package/src/Shader/ShaderSource.js +328 -39
- package/src/Shader/wgsl/common/SharedWgsl.d.ts +28 -1
- package/src/Shader/wgsl/common/SharedWgsl.js +28 -9
- package/src/Shader/wgsl/fragment/BasicFragment.d.ts +14 -0
- package/src/Shader/wgsl/fragment/BasicFragment.js +14 -0
- package/src/Shader/wgsl/fragment/BitmapFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/BitmapFragment.js +7 -0
- package/src/Shader/wgsl/fragment/EffectFragment.d.ts +42 -0
- package/src/Shader/wgsl/fragment/EffectFragment.js +42 -0
- package/src/Shader/wgsl/fragment/FillFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/FillFragment.js +7 -0
- package/src/Shader/wgsl/fragment/FilterFragment.d.ts +70 -0
- package/src/Shader/wgsl/fragment/FilterFragment.js +70 -0
- package/src/Shader/wgsl/fragment/GradientFragment.d.ts +21 -0
- package/src/Shader/wgsl/fragment/GradientFragment.js +43 -8
- package/src/Shader/wgsl/fragment/InstancedFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/InstancedFragment.js +7 -0
- package/src/Shader/wgsl/fragment/MaskFragment.d.ts +7 -0
- package/src/Shader/wgsl/fragment/MaskFragment.js +7 -0
- package/src/Shader/wgsl/fragment/StencilFragment.d.ts +14 -0
- package/src/Shader/wgsl/fragment/StencilFragment.js +14 -0
- package/src/Shader/wgsl/vertex/BasicVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/BasicVertex.js +7 -0
- package/src/Shader/wgsl/vertex/BitmapVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/BitmapVertex.js +7 -0
- package/src/Shader/wgsl/vertex/FillVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/FillVertex.js +7 -0
- package/src/Shader/wgsl/vertex/FilterVertex.d.ts +77 -1
- package/src/Shader/wgsl/vertex/FilterVertex.js +135 -42
- package/src/Shader/wgsl/vertex/GradientVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/GradientVertex.js +7 -0
- package/src/Shader/wgsl/vertex/InstancedVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/InstancedVertex.js +7 -0
- package/src/Shader/wgsl/vertex/MaskVertex.d.ts +7 -0
- package/src/Shader/wgsl/vertex/MaskVertex.js +7 -0
- package/src/Shader/wgsl/vertex/StencilVertex.d.ts +14 -0
- package/src/Shader/wgsl/vertex/StencilVertex.js +14 -0
- package/src/TextureManager/service/TextureManagerInitializeSamplersService.d.ts +2 -2
- package/src/TextureManager/service/TextureManagerInitializeSamplersService.js +2 -2
- package/src/TextureManager.d.ts +36 -5
- package/src/TextureManager.js +36 -24
- package/src/TexturePool/service/TexturePoolCleanupService.d.ts +4 -4
- package/src/TexturePool/service/TexturePoolCleanupService.js +6 -6
- package/src/TexturePool/service/TexturePoolReleaseService.d.ts +4 -4
- package/src/TexturePool/service/TexturePoolReleaseService.js +5 -5
- package/src/TexturePool/usecase/TexturePoolAcquireUseCase.d.ts +10 -10
- package/src/TexturePool/usecase/TexturePoolAcquireUseCase.js +19 -18
- package/src/TexturePool.d.ts +36 -35
- package/src/TexturePool.js +44 -65
- package/src/WebGPUUtil.d.ts +79 -34
- package/src/WebGPUUtil.js +79 -36
- package/src/interface/IAttachmentObject.d.ts +36 -0
- package/src/interface/IBlendMode.d.ts +7 -0
- package/src/interface/IBlendState.d.ts +8 -0
- package/src/interface/IBounds.d.ts +23 -0
- package/src/interface/IColorBufferObject.d.ts +28 -0
- package/src/interface/IComplexBlendItem.d.ts +48 -0
- package/src/interface/IFilterConfig.d.ts +28 -2
- package/src/interface/IGradientStop.d.ts +20 -0
- package/src/interface/ILocalFilterConfig.d.ts +32 -2
- package/src/interface/IMeshResult.d.ts +8 -0
- package/src/interface/IPoint.d.ts +12 -0
- package/src/interface/IPooledTexture.d.ts +24 -0
- package/src/interface/IQuadraticSegment.d.ts +8 -0
- package/src/interface/IStencilBufferObject.d.ts +28 -0
- package/src/interface/IStorageBufferConfig.d.ts +8 -1
- package/src/interface/ITextureObject.d.ts +28 -0
- package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.d.ts +0 -5
- package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.js +0 -42
- package/src/Blend/service/BlendAddService.d.ts +0 -1
- package/src/Blend/service/BlendAddService.js +0 -8
- package/src/Blend/service/BlendAlphaService.d.ts +0 -1
- package/src/Blend/service/BlendAlphaService.js +0 -8
- package/src/Blend/service/BlendEraseService.d.ts +0 -1
- package/src/Blend/service/BlendEraseService.js +0 -8
- package/src/Blend/service/BlendGetStateService.d.ts +0 -12
- package/src/Blend/service/BlendGetStateService.js +0 -13
- package/src/Blend/service/BlendOneZeroService.d.ts +0 -1
- package/src/Blend/service/BlendOneZeroService.js +0 -8
- package/src/Blend/service/BlendResetService.d.ts +0 -1
- package/src/Blend/service/BlendResetService.js +0 -8
- package/src/Blend/service/BlendScreenService.d.ts +0 -1
- package/src/Blend/service/BlendScreenService.js +0 -8
- package/src/Blend/service/BlendSetModeService.d.ts +0 -2
- package/src/Blend/service/BlendSetModeService.js +0 -4
- package/src/Blend/usecase/BlendOperationUseCase.d.ts +0 -11
- package/src/Blend/usecase/BlendOperationUseCase.js +0 -31
- package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.d.ts +0 -9
- package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.js +0 -15
- package/src/Compute/ComputePipelineManager.d.ts +0 -61
- package/src/Compute/ComputePipelineManager.js +0 -313
- package/src/Compute/service/ComputeExecuteBlurService.d.ts +0 -21
- package/src/Compute/service/ComputeExecuteBlurService.js +0 -81
- package/src/Filter/BevelFilterShader.d.ts +0 -2
- package/src/Filter/BevelFilterShader.js +0 -107
- package/src/Filter/BitmapFilterShader.d.ts +0 -2
- package/src/Filter/BitmapFilterShader.js +0 -207
- package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.d.ts +0 -40
- package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.js +0 -51
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.d.ts +0 -25
- package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.js +0 -180
- package/src/Filter/BlurFilterShader.d.ts +0 -5
- package/src/Filter/BlurFilterShader.js +0 -109
- package/src/Filter/ColorMatrixFilterShader.d.ts +0 -4
- package/src/Filter/ColorMatrixFilterShader.js +0 -51
- package/src/Filter/ConvolutionFilterShader.d.ts +0 -2
- package/src/Filter/ConvolutionFilterShader.js +0 -115
- package/src/Filter/DisplacementMapFilterShader.d.ts +0 -2
- package/src/Filter/DisplacementMapFilterShader.js +0 -114
- package/src/Filter/DropShadowFilterShader.d.ts +0 -4
- package/src/Filter/DropShadowFilterShader.js +0 -93
- package/src/Filter/GlowFilterShader.d.ts +0 -4
- package/src/Filter/GlowFilterShader.js +0 -66
- package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.d.ts +0 -11
- package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.js +0 -19
- package/src/Mask/usecase/MaskBindUseCase.d.ts +0 -10
- package/src/Mask/usecase/MaskBindUseCase.js +0 -20
- package/src/Mesh/service/MeshLerpService.d.ts +0 -13
- package/src/Mesh/service/MeshLerpService.js +0 -17
- package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.d.ts +0 -14
- package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.js +0 -28
- package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.d.ts +0 -18
- package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.js +0 -54
- package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.d.ts +0 -11
- package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.js +0 -35
- package/src/SamplerCache/service/SamplerCacheGenerateKeyService.d.ts +0 -13
- package/src/SamplerCache/service/SamplerCacheGenerateKeyService.js +0 -15
- package/src/SamplerCache/service/SamplerCacheGetOrCreateService.d.ts +0 -15
- package/src/SamplerCache/service/SamplerCacheGetOrCreateService.js +0 -30
- package/src/SamplerCache.d.ts +0 -18
- package/src/SamplerCache.js +0 -61
- package/src/Shader/BlendModeShader.d.ts +0 -51
- package/src/Shader/BlendModeShader.js +0 -71
- package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.d.ts +0 -12
- package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.js +0 -28
- package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.d.ts +0 -13
- package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.js +0 -61
- package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.d.ts +0 -19
- package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.js +0 -37
- package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.d.ts +0 -11
- package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.js +0 -24
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.d.ts +0 -14
- package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.js +0 -24
- package/src/Shader/wgsl/fragment/BlendFragment.d.ts +0 -8
- package/src/Shader/wgsl/fragment/BlendFragment.js +0 -63
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.d.ts +0 -13
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.js +0 -30
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.d.ts +0 -15
- package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.js +0 -26
- package/src/TexturePool/service/TexturePoolEvictOldestService.d.ts +0 -11
- package/src/TexturePool/service/TexturePoolEvictOldestService.js +0 -24
- package/src/interface/ICachedBindGroup.d.ts +0 -8
- package/src/interface/ICachedBindGroup.js +0 -1
- package/src/interface/IGradientLUTData.d.ts +0 -8
- package/src/interface/IGradientLUTData.js +0 -1
- package/src/interface/IPooledBuffer.d.ts +0 -8
- package/src/interface/IPooledBuffer.js +0 -1
- package/src/interface/IRectangleInfo.d.ts +0 -13
- package/src/interface/IRectangleInfo.js +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next2d/webgpu",
|
|
3
|
-
"version": "3.0
|
|
3
|
+
"version": "3.1.0",
|
|
4
4
|
"description": "Next2D WebGPU Package",
|
|
5
5
|
"author": "Toshiyuki Ienaga<ienaga@next2d.app> (https://github.com/ienaga/)",
|
|
6
6
|
"license": "MIT",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"url": "git+https://github.com/Next2D/Player.git"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@next2d/texture-packer": "3.0
|
|
28
|
-
"@next2d/render-queue": "3.0
|
|
27
|
+
"@next2d/texture-packer": "3.1.0",
|
|
28
|
+
"@next2d/render-queue": "3.1.0"
|
|
29
29
|
}
|
|
30
30
|
}
|
package/src/AtlasManager.d.ts
CHANGED
|
@@ -1,23 +1,92 @@
|
|
|
1
1
|
import type { IAttachmentObject } from "./interface/IAttachmentObject";
|
|
2
|
-
import type { ITextureObject } from "./interface/ITextureObject";
|
|
3
2
|
import type { TexturePacker } from "@next2d/texture-packer";
|
|
3
|
+
/**
|
|
4
|
+
* @description アクティブなアトラスインデックスを設定する
|
|
5
|
+
* Set the active atlas index
|
|
6
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
7
|
+
* @return {void}
|
|
8
|
+
*/
|
|
4
9
|
export declare const $setActiveAtlasIndex: (index: number) => void;
|
|
10
|
+
/**
|
|
11
|
+
* @description アクティブなアトラスインデックスを取得する
|
|
12
|
+
* Get the active atlas index
|
|
13
|
+
* @return {number}
|
|
14
|
+
*/
|
|
5
15
|
export declare const $getActiveAtlasIndex: () => number;
|
|
16
|
+
/**
|
|
17
|
+
* @description アトラスのアタッチメントオブジェクト配列を取得する
|
|
18
|
+
* Get the array of atlas attachment objects
|
|
19
|
+
* @return {IAttachmentObject[]}
|
|
20
|
+
*/
|
|
6
21
|
export declare const $getAtlasAttachmentObjects: () => IAttachmentObject[];
|
|
22
|
+
/**
|
|
23
|
+
* @description アクティブなインデックスにアタッチメントオブジェクトを設定する
|
|
24
|
+
* Set an attachment object at the active atlas index
|
|
25
|
+
* @param {IAttachmentObject} attachment_object - アタッチメントオブジェクト / attachment object
|
|
26
|
+
* @return {void}
|
|
27
|
+
*/
|
|
7
28
|
export declare const $setAtlasAttachmentObject: (attachment_object: IAttachmentObject) => void;
|
|
29
|
+
/**
|
|
30
|
+
* @description アトラス生成関数の型定義
|
|
31
|
+
* Type definition for atlas creator function
|
|
32
|
+
*/
|
|
8
33
|
type AtlasCreator = (index: number) => IAttachmentObject;
|
|
34
|
+
/**
|
|
35
|
+
* @description アトラス生成関数を設定する
|
|
36
|
+
* Set the atlas creator function
|
|
37
|
+
* @param {AtlasCreator} creator - アトラス生成関数 / atlas creator function
|
|
38
|
+
* @return {void}
|
|
39
|
+
*/
|
|
9
40
|
export declare const $setAtlasCreator: (creator: AtlasCreator) => void;
|
|
41
|
+
/**
|
|
42
|
+
* @description アクティブなインデックスのアタッチメントオブジェクトを取得する(未作成の場合はcreatorで生成)
|
|
43
|
+
* Get the attachment object at the active index (creates via creator if not yet created)
|
|
44
|
+
* @return {IAttachmentObject | null}
|
|
45
|
+
*/
|
|
10
46
|
export declare const $getAtlasAttachmentObject: () => IAttachmentObject | null;
|
|
47
|
+
/**
|
|
48
|
+
* @description 指定インデックスのアタッチメントオブジェクトを取得する
|
|
49
|
+
* Get the attachment object at a specified index
|
|
50
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
51
|
+
* @return {IAttachmentObject | null}
|
|
52
|
+
*/
|
|
11
53
|
export declare const $getAtlasAttachmentObjectByIndex: (index: number) => IAttachmentObject | null;
|
|
12
|
-
|
|
54
|
+
/**
|
|
55
|
+
* @description テクスチャパッカーのルートノード配列
|
|
56
|
+
* Array of root nodes for texture packing
|
|
57
|
+
* @type {TexturePacker[]}
|
|
58
|
+
*/
|
|
13
59
|
export declare const $rootNodes: TexturePacker[];
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
60
|
+
/**
|
|
61
|
+
* @description 指定インデックスのアクティブな転送領域を取得する(未作成の場合は初期化)
|
|
62
|
+
* Get the active transfer bounds at the specified index (initializes if not yet created)
|
|
63
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
64
|
+
* @return {Float32Array}
|
|
65
|
+
*/
|
|
17
66
|
export declare const $getActiveTransferBounds: (index: number) => Float32Array;
|
|
18
|
-
|
|
67
|
+
/**
|
|
68
|
+
* @description 全ての転送領域を初期値にリセットする
|
|
69
|
+
* Reset all transfer bounds to their initial values
|
|
70
|
+
* @return {void}
|
|
71
|
+
*/
|
|
19
72
|
export declare const $clearTransferBounds: () => void;
|
|
73
|
+
/**
|
|
74
|
+
* @description 現在のアトラスインデックスを設定する
|
|
75
|
+
* Set the current atlas index
|
|
76
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
77
|
+
* @return {void}
|
|
78
|
+
*/
|
|
20
79
|
export declare const $setCurrentAtlasIndex: (index: number) => void;
|
|
80
|
+
/**
|
|
81
|
+
* @description 現在のアトラスインデックスを取得する
|
|
82
|
+
* Get the current atlas index
|
|
83
|
+
* @return {number}
|
|
84
|
+
*/
|
|
21
85
|
export declare const $getCurrentAtlasIndex: () => number;
|
|
86
|
+
/**
|
|
87
|
+
* @description アトラスの全状態をリセットする(テクスチャリソースの破棄を含む)
|
|
88
|
+
* Reset all atlas state including destroying texture resources
|
|
89
|
+
* @return {void}
|
|
90
|
+
*/
|
|
22
91
|
export declare const $resetAtlas: () => void;
|
|
23
92
|
export {};
|
package/src/AtlasManager.js
CHANGED
|
@@ -1,23 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description テクスチャアトラス境界の初期最大値
|
|
3
|
+
* Initial maximum value for texture atlas bounds
|
|
4
|
+
* @type {number}
|
|
5
|
+
*/
|
|
1
6
|
const $MAX_VALUE = Number.MAX_VALUE;
|
|
7
|
+
/**
|
|
8
|
+
* @description テクスチャアトラス境界の初期最小値
|
|
9
|
+
* Initial minimum value for texture atlas bounds
|
|
10
|
+
* @type {number}
|
|
11
|
+
*/
|
|
2
12
|
const $MIN_VALUE = -Number.MAX_VALUE;
|
|
13
|
+
/**
|
|
14
|
+
* @description 現在アクティブなアトラスのインデックス
|
|
15
|
+
* Index of the currently active atlas
|
|
16
|
+
* @type {number}
|
|
17
|
+
*/
|
|
3
18
|
let $activeAtlasIndex = 0;
|
|
19
|
+
/**
|
|
20
|
+
* @description アクティブなアトラスインデックスを設定する
|
|
21
|
+
* Set the active atlas index
|
|
22
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
23
|
+
* @return {void}
|
|
24
|
+
*/
|
|
4
25
|
export const $setActiveAtlasIndex = (index) => {
|
|
5
26
|
$activeAtlasIndex = index;
|
|
6
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* @description アクティブなアトラスインデックスを取得する
|
|
30
|
+
* Get the active atlas index
|
|
31
|
+
* @return {number}
|
|
32
|
+
*/
|
|
7
33
|
export const $getActiveAtlasIndex = () => {
|
|
8
34
|
return $activeAtlasIndex;
|
|
9
35
|
};
|
|
36
|
+
/**
|
|
37
|
+
* @description アトラスのアタッチメントオブジェクト配列
|
|
38
|
+
* Array of atlas attachment objects
|
|
39
|
+
* @type {IAttachmentObject[]}
|
|
40
|
+
*/
|
|
10
41
|
const $atlasAttachmentObjects = [];
|
|
42
|
+
/**
|
|
43
|
+
* @description アトラスのアタッチメントオブジェクト配列を取得する
|
|
44
|
+
* Get the array of atlas attachment objects
|
|
45
|
+
* @return {IAttachmentObject[]}
|
|
46
|
+
*/
|
|
11
47
|
export const $getAtlasAttachmentObjects = () => {
|
|
12
48
|
return $atlasAttachmentObjects;
|
|
13
49
|
};
|
|
50
|
+
/**
|
|
51
|
+
* @description アクティブなインデックスにアタッチメントオブジェクトを設定する
|
|
52
|
+
* Set an attachment object at the active atlas index
|
|
53
|
+
* @param {IAttachmentObject} attachment_object - アタッチメントオブジェクト / attachment object
|
|
54
|
+
* @return {void}
|
|
55
|
+
*/
|
|
14
56
|
export const $setAtlasAttachmentObject = (attachment_object) => {
|
|
15
57
|
$atlasAttachmentObjects[$activeAtlasIndex] = attachment_object;
|
|
16
58
|
};
|
|
59
|
+
/**
|
|
60
|
+
* @description アトラス生成関数の参照
|
|
61
|
+
* Atlas creator function reference
|
|
62
|
+
* @type {AtlasCreator | null}
|
|
63
|
+
*/
|
|
17
64
|
let $atlasCreator = null;
|
|
65
|
+
/**
|
|
66
|
+
* @description アトラス生成関数を設定する
|
|
67
|
+
* Set the atlas creator function
|
|
68
|
+
* @param {AtlasCreator} creator - アトラス生成関数 / atlas creator function
|
|
69
|
+
* @return {void}
|
|
70
|
+
*/
|
|
18
71
|
export const $setAtlasCreator = (creator) => {
|
|
19
72
|
$atlasCreator = creator;
|
|
20
73
|
};
|
|
74
|
+
/**
|
|
75
|
+
* @description アクティブなインデックスのアタッチメントオブジェクトを取得する(未作成の場合はcreatorで生成)
|
|
76
|
+
* Get the attachment object at the active index (creates via creator if not yet created)
|
|
77
|
+
* @return {IAttachmentObject | null}
|
|
78
|
+
*/
|
|
21
79
|
export const $getAtlasAttachmentObject = () => {
|
|
22
80
|
if (!($activeAtlasIndex in $atlasAttachmentObjects)) {
|
|
23
81
|
if ($atlasCreator) {
|
|
@@ -30,24 +88,36 @@ export const $getAtlasAttachmentObject = () => {
|
|
|
30
88
|
}
|
|
31
89
|
return $atlasAttachmentObjects[$activeAtlasIndex];
|
|
32
90
|
};
|
|
91
|
+
/**
|
|
92
|
+
* @description 指定インデックスのアタッチメントオブジェクトを取得する
|
|
93
|
+
* Get the attachment object at a specified index
|
|
94
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
95
|
+
* @return {IAttachmentObject | null}
|
|
96
|
+
*/
|
|
33
97
|
export const $getAtlasAttachmentObjectByIndex = (index) => {
|
|
34
98
|
if (!(index in $atlasAttachmentObjects)) {
|
|
35
99
|
return null;
|
|
36
100
|
}
|
|
37
101
|
return $atlasAttachmentObjects[index];
|
|
38
102
|
};
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
103
|
+
/**
|
|
104
|
+
* @description テクスチャパッカーのルートノード配列
|
|
105
|
+
* Array of root nodes for texture packing
|
|
106
|
+
* @type {TexturePacker[]}
|
|
107
|
+
*/
|
|
42
108
|
export const $rootNodes = [];
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return $atlasTexture;
|
|
49
|
-
};
|
|
109
|
+
/**
|
|
110
|
+
* @description アトラスごとの転送領域配列
|
|
111
|
+
* Array of transfer bounds per atlas
|
|
112
|
+
* @type {Float32Array[]}
|
|
113
|
+
*/
|
|
50
114
|
const $transferBounds = [];
|
|
115
|
+
/**
|
|
116
|
+
* @description 指定インデックスのアクティブな転送領域を取得する(未作成の場合は初期化)
|
|
117
|
+
* Get the active transfer bounds at the specified index (initializes if not yet created)
|
|
118
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
119
|
+
* @return {Float32Array}
|
|
120
|
+
*/
|
|
51
121
|
export const $getActiveTransferBounds = (index) => {
|
|
52
122
|
if (!(index in $transferBounds)) {
|
|
53
123
|
$transferBounds[index] = new Float32Array([
|
|
@@ -59,18 +129,11 @@ export const $getActiveTransferBounds = (index) => {
|
|
|
59
129
|
}
|
|
60
130
|
return $transferBounds[index];
|
|
61
131
|
};
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
$MAX_VALUE,
|
|
68
|
-
$MIN_VALUE,
|
|
69
|
-
$MIN_VALUE
|
|
70
|
-
]);
|
|
71
|
-
}
|
|
72
|
-
return $allTransferBounds[index];
|
|
73
|
-
};
|
|
132
|
+
/**
|
|
133
|
+
* @description 全ての転送領域を初期値にリセットする
|
|
134
|
+
* Reset all transfer bounds to their initial values
|
|
135
|
+
* @return {void}
|
|
136
|
+
*/
|
|
74
137
|
export const $clearTransferBounds = () => {
|
|
75
138
|
for (let idx = 0; idx < $transferBounds.length; ++idx) {
|
|
76
139
|
const bounds = $transferBounds[idx];
|
|
@@ -80,22 +143,35 @@ export const $clearTransferBounds = () => {
|
|
|
80
143
|
bounds[0] = bounds[1] = $MAX_VALUE;
|
|
81
144
|
bounds[2] = bounds[3] = $MIN_VALUE;
|
|
82
145
|
}
|
|
83
|
-
for (let idx = 0; idx < $allTransferBounds.length; ++idx) {
|
|
84
|
-
const bounds = $allTransferBounds[idx];
|
|
85
|
-
if (!bounds) {
|
|
86
|
-
continue;
|
|
87
|
-
}
|
|
88
|
-
bounds[0] = bounds[1] = $MAX_VALUE;
|
|
89
|
-
bounds[2] = bounds[3] = $MIN_VALUE;
|
|
90
|
-
}
|
|
91
146
|
};
|
|
147
|
+
/**
|
|
148
|
+
* @description 現在処理中のアトラスインデックス
|
|
149
|
+
* Index of the currently processed atlas
|
|
150
|
+
* @type {number}
|
|
151
|
+
*/
|
|
92
152
|
let $currentAtlasIndex = 0;
|
|
153
|
+
/**
|
|
154
|
+
* @description 現在のアトラスインデックスを設定する
|
|
155
|
+
* Set the current atlas index
|
|
156
|
+
* @param {number} index - アトラスインデックス / atlas index
|
|
157
|
+
* @return {void}
|
|
158
|
+
*/
|
|
93
159
|
export const $setCurrentAtlasIndex = (index) => {
|
|
94
160
|
$currentAtlasIndex = index;
|
|
95
161
|
};
|
|
162
|
+
/**
|
|
163
|
+
* @description 現在のアトラスインデックスを取得する
|
|
164
|
+
* Get the current atlas index
|
|
165
|
+
* @return {number}
|
|
166
|
+
*/
|
|
96
167
|
export const $getCurrentAtlasIndex = () => {
|
|
97
168
|
return $currentAtlasIndex;
|
|
98
169
|
};
|
|
170
|
+
/**
|
|
171
|
+
* @description アトラスの全状態をリセットする(テクスチャリソースの破棄を含む)
|
|
172
|
+
* Reset all atlas state including destroying texture resources
|
|
173
|
+
* @return {void}
|
|
174
|
+
*/
|
|
99
175
|
export const $resetAtlas = () => {
|
|
100
176
|
$rootNodes.length = 0;
|
|
101
177
|
$setActiveAtlasIndex(0);
|
|
@@ -3,11 +3,11 @@ import type { IAttachmentObject } from "../../interface/IAttachmentObject";
|
|
|
3
3
|
* @description 新しいアタッチメントオブジェクトを作成
|
|
4
4
|
* Create a new attachment object
|
|
5
5
|
*
|
|
6
|
-
* @param {{ attachmentId: number }}
|
|
6
|
+
* @param {{ attachmentId: number }} id_counter - ID管理カウンタ
|
|
7
7
|
* @return {IAttachmentObject}
|
|
8
8
|
* @method
|
|
9
9
|
* @protected
|
|
10
10
|
*/
|
|
11
|
-
export declare const execute: (
|
|
11
|
+
export declare const execute: (id_counter: {
|
|
12
12
|
attachmentId: number;
|
|
13
13
|
}) => IAttachmentObject;
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
* @description 新しいアタッチメントオブジェクトを作成
|
|
3
3
|
* Create a new attachment object
|
|
4
4
|
*
|
|
5
|
-
* @param {{ attachmentId: number }}
|
|
5
|
+
* @param {{ attachmentId: number }} id_counter - ID管理カウンタ
|
|
6
6
|
* @return {IAttachmentObject}
|
|
7
7
|
* @method
|
|
8
8
|
* @protected
|
|
9
9
|
*/
|
|
10
|
-
export const execute = (
|
|
10
|
+
export const execute = (id_counter) => {
|
|
11
11
|
return {
|
|
12
|
-
"id":
|
|
12
|
+
"id": id_counter.attachmentId++,
|
|
13
13
|
"width": 0,
|
|
14
14
|
"height": 0,
|
|
15
15
|
"clipLevel": 0,
|
|
@@ -4,10 +4,10 @@ import type { IStencilBufferObject } from "../../interface/IStencilBufferObject"
|
|
|
4
4
|
* @description カラーバッファを新規作成
|
|
5
5
|
* Create a new color buffer
|
|
6
6
|
*
|
|
7
|
-
* @param {GPUDevice} device
|
|
8
|
-
* @param {number} width
|
|
9
|
-
* @param {number} height
|
|
10
|
-
* @param {IStencilBufferObject} stencil
|
|
7
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
8
|
+
* @param {number} width - バッファ幅
|
|
9
|
+
* @param {number} height - バッファ高さ
|
|
10
|
+
* @param {IStencilBufferObject} stencil - 関連するステンシルバッファ
|
|
11
11
|
* @return {IColorBufferObject}
|
|
12
12
|
* @method
|
|
13
13
|
* @protected
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
* @description カラーバッファを新規作成
|
|
3
3
|
* Create a new color buffer
|
|
4
4
|
*
|
|
5
|
-
* @param {GPUDevice} device
|
|
6
|
-
* @param {number} width
|
|
7
|
-
* @param {number} height
|
|
8
|
-
* @param {IStencilBufferObject} stencil
|
|
5
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
6
|
+
* @param {number} width - バッファ幅
|
|
7
|
+
* @param {number} height - バッファ高さ
|
|
8
|
+
* @param {IStencilBufferObject} stencil - 関連するステンシルバッファ
|
|
9
9
|
* @return {IColorBufferObject}
|
|
10
10
|
* @method
|
|
11
11
|
* @protected
|
|
@@ -3,14 +3,14 @@ import type { IStencilBufferObject } from "../../interface/IStencilBufferObject"
|
|
|
3
3
|
* @description ステンシルバッファを新規作成
|
|
4
4
|
* Create a new stencil buffer
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {number} width
|
|
8
|
-
* @param {number} height
|
|
9
|
-
* @param {{ stencilId: number }}
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {number} width - バッファ幅
|
|
8
|
+
* @param {number} height - バッファ高さ
|
|
9
|
+
* @param {{ stencilId: number }} id_counter - ID管理カウンタ
|
|
10
10
|
* @return {IStencilBufferObject}
|
|
11
11
|
* @method
|
|
12
12
|
* @protected
|
|
13
13
|
*/
|
|
14
|
-
export declare const execute: (device: GPUDevice, width: number, height: number,
|
|
14
|
+
export declare const execute: (device: GPUDevice, width: number, height: number, id_counter: {
|
|
15
15
|
stencilId: number;
|
|
16
16
|
}) => IStencilBufferObject;
|
|
@@ -2,22 +2,22 @@
|
|
|
2
2
|
* @description ステンシルバッファを新規作成
|
|
3
3
|
* Create a new stencil buffer
|
|
4
4
|
*
|
|
5
|
-
* @param {GPUDevice} device
|
|
6
|
-
* @param {number} width
|
|
7
|
-
* @param {number} height
|
|
8
|
-
* @param {{ stencilId: number }}
|
|
5
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
6
|
+
* @param {number} width - バッファ幅
|
|
7
|
+
* @param {number} height - バッファ高さ
|
|
8
|
+
* @param {{ stencilId: number }} id_counter - ID管理カウンタ
|
|
9
9
|
* @return {IStencilBufferObject}
|
|
10
10
|
* @method
|
|
11
11
|
* @protected
|
|
12
12
|
*/
|
|
13
|
-
export const execute = (device, width, height,
|
|
13
|
+
export const execute = (device, width, height, id_counter) => {
|
|
14
14
|
const texture = device.createTexture({
|
|
15
15
|
"size": { width, height },
|
|
16
16
|
"format": "depth24plus-stencil8",
|
|
17
17
|
"usage": GPUTextureUsage.RENDER_ATTACHMENT
|
|
18
18
|
});
|
|
19
19
|
return {
|
|
20
|
-
"id":
|
|
20
|
+
"id": id_counter.stencilId++,
|
|
21
21
|
"resource": texture,
|
|
22
22
|
"view": texture.createView(),
|
|
23
23
|
width,
|
|
@@ -3,15 +3,15 @@ import type { ITextureObject } from "../../interface/ITextureObject";
|
|
|
3
3
|
* @description テクスチャオブジェクトを新規作成
|
|
4
4
|
* Create a new texture object
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {number} width
|
|
8
|
-
* @param {number} height
|
|
9
|
-
* @param {boolean} smooth
|
|
10
|
-
* @param {{ textureId: number }}
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {number} width - テクスチャ幅
|
|
8
|
+
* @param {number} height - テクスチャ高さ
|
|
9
|
+
* @param {boolean} smooth - スムーズフィルタリングの有効フラグ
|
|
10
|
+
* @param {{ textureId: number }} id_counter - ID管理カウンタ
|
|
11
11
|
* @return {ITextureObject}
|
|
12
12
|
* @method
|
|
13
13
|
* @protected
|
|
14
14
|
*/
|
|
15
|
-
export declare const execute: (device: GPUDevice, width: number, height: number, smooth: boolean,
|
|
15
|
+
export declare const execute: (device: GPUDevice, width: number, height: number, smooth: boolean, id_counter: {
|
|
16
16
|
textureId: number;
|
|
17
17
|
}) => ITextureObject;
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
* @description テクスチャオブジェクトを新規作成
|
|
3
3
|
* Create a new texture object
|
|
4
4
|
*
|
|
5
|
-
* @param {GPUDevice} device
|
|
6
|
-
* @param {number} width
|
|
7
|
-
* @param {number} height
|
|
8
|
-
* @param {boolean} smooth
|
|
9
|
-
* @param {{ textureId: number }}
|
|
5
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
6
|
+
* @param {number} width - テクスチャ幅
|
|
7
|
+
* @param {number} height - テクスチャ高さ
|
|
8
|
+
* @param {boolean} smooth - スムーズフィルタリングの有効フラグ
|
|
9
|
+
* @param {{ textureId: number }} id_counter - ID管理カウンタ
|
|
10
10
|
* @return {ITextureObject}
|
|
11
11
|
* @method
|
|
12
12
|
* @protected
|
|
13
13
|
*/
|
|
14
|
-
export const execute = (device, width, height, smooth,
|
|
14
|
+
export const execute = (device, width, height, smooth, id_counter) => {
|
|
15
15
|
const texture = device.createTexture({
|
|
16
16
|
"size": { width, height },
|
|
17
17
|
"format": "rgba8unorm",
|
|
@@ -22,7 +22,7 @@ export const execute = (device, width, height, smooth, idCounter) => {
|
|
|
22
22
|
});
|
|
23
23
|
const view = texture.createView();
|
|
24
24
|
return {
|
|
25
|
-
"id":
|
|
25
|
+
"id": id_counter.textureId++,
|
|
26
26
|
"resource": texture,
|
|
27
27
|
view,
|
|
28
28
|
width,
|
|
@@ -4,13 +4,13 @@ import type { IStencilBufferObject } from "../../interface/IStencilBufferObject"
|
|
|
4
4
|
* @description カラーバッファを取得(プールから再利用または新規作成)
|
|
5
5
|
* Get color buffer from pool or create new one
|
|
6
6
|
*
|
|
7
|
-
* @param {GPUDevice} device
|
|
8
|
-
* @param {IColorBufferObject[]}
|
|
9
|
-
* @param {number} width
|
|
10
|
-
* @param {number} height
|
|
11
|
-
* @param {IStencilBufferObject} stencil
|
|
7
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
8
|
+
* @param {IColorBufferObject[]} color_buffer_pool - カラーバッファプール
|
|
9
|
+
* @param {number} width - バッファ幅
|
|
10
|
+
* @param {number} height - バッファ高さ
|
|
11
|
+
* @param {IStencilBufferObject} stencil - 関連するステンシルバッファ
|
|
12
12
|
* @return {IColorBufferObject}
|
|
13
13
|
* @method
|
|
14
14
|
* @protected
|
|
15
15
|
*/
|
|
16
|
-
export declare const execute: (device: GPUDevice,
|
|
16
|
+
export declare const execute: (device: GPUDevice, color_buffer_pool: IColorBufferObject[], width: number, height: number, stencil: IStencilBufferObject) => IColorBufferObject;
|
|
@@ -3,21 +3,21 @@ import { execute as attachmentManagerCreateColorBufferService } from "./Attachme
|
|
|
3
3
|
* @description カラーバッファを取得(プールから再利用または新規作成)
|
|
4
4
|
* Get color buffer from pool or create new one
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {IColorBufferObject[]}
|
|
8
|
-
* @param {number} width
|
|
9
|
-
* @param {number} height
|
|
10
|
-
* @param {IStencilBufferObject} stencil
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {IColorBufferObject[]} color_buffer_pool - カラーバッファプール
|
|
8
|
+
* @param {number} width - バッファ幅
|
|
9
|
+
* @param {number} height - バッファ高さ
|
|
10
|
+
* @param {IStencilBufferObject} stencil - 関連するステンシルバッファ
|
|
11
11
|
* @return {IColorBufferObject}
|
|
12
12
|
* @method
|
|
13
13
|
* @protected
|
|
14
14
|
*/
|
|
15
|
-
export const execute = (device,
|
|
15
|
+
export const execute = (device, color_buffer_pool, width, height, stencil) => {
|
|
16
16
|
// プールから適切なサイズのものを検索
|
|
17
|
-
for (let i = 0; i <
|
|
18
|
-
const buffer =
|
|
17
|
+
for (let i = 0; i < color_buffer_pool.length; i++) {
|
|
18
|
+
const buffer = color_buffer_pool[i];
|
|
19
19
|
if (buffer.width >= width && buffer.height >= height) {
|
|
20
|
-
|
|
20
|
+
color_buffer_pool.splice(i, 1);
|
|
21
21
|
buffer.stencil = stencil;
|
|
22
22
|
buffer.dirty = false;
|
|
23
23
|
return buffer;
|
|
@@ -3,15 +3,15 @@ import type { IStencilBufferObject } from "../../interface/IStencilBufferObject"
|
|
|
3
3
|
* @description ステンシルバッファを取得(プールから再利用または新規作成)
|
|
4
4
|
* Get stencil buffer from pool or create new one
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {IStencilBufferObject[]}
|
|
8
|
-
* @param {number} width
|
|
9
|
-
* @param {number} height
|
|
10
|
-
* @param {{ stencilId: number }}
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {IStencilBufferObject[]} stencil_buffer_pool - ステンシルバッファプール
|
|
8
|
+
* @param {number} width - バッファ幅
|
|
9
|
+
* @param {number} height - バッファ高さ
|
|
10
|
+
* @param {{ stencilId: number }} id_counter - ID管理カウンタ
|
|
11
11
|
* @return {IStencilBufferObject}
|
|
12
12
|
* @method
|
|
13
13
|
* @protected
|
|
14
14
|
*/
|
|
15
|
-
export declare const execute: (device: GPUDevice,
|
|
15
|
+
export declare const execute: (device: GPUDevice, stencil_buffer_pool: IStencilBufferObject[], width: number, height: number, id_counter: {
|
|
16
16
|
stencilId: number;
|
|
17
17
|
}) => IStencilBufferObject;
|
|
@@ -3,25 +3,25 @@ import { execute as attachmentManagerCreateStencilBufferService } from "./Attach
|
|
|
3
3
|
* @description ステンシルバッファを取得(プールから再利用または新規作成)
|
|
4
4
|
* Get stencil buffer from pool or create new one
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {IStencilBufferObject[]}
|
|
8
|
-
* @param {number} width
|
|
9
|
-
* @param {number} height
|
|
10
|
-
* @param {{ stencilId: number }}
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {IStencilBufferObject[]} stencil_buffer_pool - ステンシルバッファプール
|
|
8
|
+
* @param {number} width - バッファ幅
|
|
9
|
+
* @param {number} height - バッファ高さ
|
|
10
|
+
* @param {{ stencilId: number }} id_counter - ID管理カウンタ
|
|
11
11
|
* @return {IStencilBufferObject}
|
|
12
12
|
* @method
|
|
13
13
|
* @protected
|
|
14
14
|
*/
|
|
15
|
-
export const execute = (device,
|
|
15
|
+
export const execute = (device, stencil_buffer_pool, width, height, id_counter) => {
|
|
16
16
|
// プールから適切なサイズのものを検索
|
|
17
|
-
for (let i = 0; i <
|
|
18
|
-
const buffer =
|
|
17
|
+
for (let i = 0; i < stencil_buffer_pool.length; i++) {
|
|
18
|
+
const buffer = stencil_buffer_pool[i];
|
|
19
19
|
if (buffer.width >= width && buffer.height >= height) {
|
|
20
|
-
|
|
20
|
+
stencil_buffer_pool.splice(i, 1);
|
|
21
21
|
buffer.dirty = false;
|
|
22
22
|
return buffer;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
// 新規作成
|
|
26
|
-
return attachmentManagerCreateStencilBufferService(device, width, height,
|
|
26
|
+
return attachmentManagerCreateStencilBufferService(device, width, height, id_counter);
|
|
27
27
|
};
|
|
@@ -3,16 +3,16 @@ import type { ITextureObject } from "../../interface/ITextureObject";
|
|
|
3
3
|
* @description テクスチャオブジェクトを取得(プールから再利用または新規作成)
|
|
4
4
|
* Get texture object from pool or create new one
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {Map<string, ITextureObject[]>}
|
|
8
|
-
* @param {number} width
|
|
9
|
-
* @param {number} height
|
|
10
|
-
* @param {boolean} smooth
|
|
11
|
-
* @param {{ textureId: number }}
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
|
|
8
|
+
* @param {number} width - テクスチャ幅
|
|
9
|
+
* @param {number} height - テクスチャ高さ
|
|
10
|
+
* @param {boolean} smooth - スムーズフィルタリングの有効フラグ
|
|
11
|
+
* @param {{ textureId: number }} id_counter - ID管理カウンタ
|
|
12
12
|
* @return {ITextureObject}
|
|
13
13
|
* @method
|
|
14
14
|
* @protected
|
|
15
15
|
*/
|
|
16
|
-
export declare const execute: (device: GPUDevice,
|
|
16
|
+
export declare const execute: (device: GPUDevice, texture_pool: Map<string, ITextureObject[]>, width: number, height: number, smooth: boolean, id_counter: {
|
|
17
17
|
textureId: number;
|
|
18
18
|
}) => ITextureObject;
|
|
@@ -3,25 +3,25 @@ import { execute as attachmentManagerCreateTextureObjectService } from "./Attach
|
|
|
3
3
|
* @description テクスチャオブジェクトを取得(プールから再利用または新規作成)
|
|
4
4
|
* Get texture object from pool or create new one
|
|
5
5
|
*
|
|
6
|
-
* @param {GPUDevice} device
|
|
7
|
-
* @param {Map<string, ITextureObject[]>}
|
|
8
|
-
* @param {number} width
|
|
9
|
-
* @param {number} height
|
|
10
|
-
* @param {boolean} smooth
|
|
11
|
-
* @param {{ textureId: number }}
|
|
6
|
+
* @param {GPUDevice} device - GPUデバイス
|
|
7
|
+
* @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
|
|
8
|
+
* @param {number} width - テクスチャ幅
|
|
9
|
+
* @param {number} height - テクスチャ高さ
|
|
10
|
+
* @param {boolean} smooth - スムーズフィルタリングの有効フラグ
|
|
11
|
+
* @param {{ textureId: number }} id_counter - ID管理カウンタ
|
|
12
12
|
* @return {ITextureObject}
|
|
13
13
|
* @method
|
|
14
14
|
* @protected
|
|
15
15
|
*/
|
|
16
|
-
export const execute = (device,
|
|
16
|
+
export const execute = (device, texture_pool, width, height, smooth, id_counter) => {
|
|
17
17
|
const key = `${width}x${height}_${smooth ? "smooth" : "nearest"}`;
|
|
18
18
|
// プールから再利用
|
|
19
|
-
if (
|
|
20
|
-
const pool =
|
|
19
|
+
if (texture_pool.has(key)) {
|
|
20
|
+
const pool = texture_pool.get(key);
|
|
21
21
|
if (pool.length > 0) {
|
|
22
22
|
return pool.pop();
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
// 新規作成
|
|
26
|
-
return attachmentManagerCreateTextureObjectService(device, width, height, smooth,
|
|
26
|
+
return attachmentManagerCreateTextureObjectService(device, width, height, smooth, id_counter);
|
|
27
27
|
};
|