@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.
Files changed (296) hide show
  1. package/package.json +3 -3
  2. package/src/AtlasManager.d.ts +75 -6
  3. package/src/AtlasManager.js +106 -30
  4. package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.d.ts +2 -2
  5. package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.js +3 -3
  6. package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.d.ts +4 -4
  7. package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.js +4 -4
  8. package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.d.ts +5 -5
  9. package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.js +6 -6
  10. package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.d.ts +6 -6
  11. package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.js +7 -7
  12. package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.d.ts +6 -6
  13. package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.js +9 -9
  14. package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.d.ts +6 -6
  15. package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.js +10 -10
  16. package/src/AttachmentManager/service/AttachmentManagerGetTextureService.d.ts +7 -7
  17. package/src/AttachmentManager/service/AttachmentManagerGetTextureService.js +10 -10
  18. package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.d.ts +3 -3
  19. package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.js +7 -7
  20. package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.d.ts +10 -10
  21. package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.js +16 -16
  22. package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.d.ts +6 -6
  23. package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.js +10 -10
  24. package/src/AttachmentManager.d.ts +28 -6
  25. package/src/AttachmentManager.js +28 -23
  26. package/src/BezierConverter/BezierConverter.d.ts +9 -3
  27. package/src/BezierConverter/BezierConverter.js +5 -3
  28. package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +2 -13
  29. package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +13 -25
  30. package/src/Blend/BlendInstancedManager.d.ts +19 -15
  31. package/src/Blend/BlendInstancedManager.js +35 -22
  32. package/src/Blend/usecase/BlendApplyComplexBlendUseCase.d.ts +9 -2
  33. package/src/Blend/usecase/BlendApplyComplexBlendUseCase.js +28 -17
  34. package/src/Blend.d.ts +20 -2
  35. package/src/Blend.js +20 -4
  36. package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.js +2 -2
  37. package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.js +2 -2
  38. package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.d.ts +1 -0
  39. package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.js +1 -0
  40. package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.d.ts +1 -0
  41. package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.js +1 -0
  42. package/src/BufferManager.d.ts +108 -43
  43. package/src/BufferManager.js +113 -153
  44. package/src/Context/service/ContextComputeBitmapMatrixService.d.ts +7 -0
  45. package/src/Context/service/ContextComputeBitmapMatrixService.js +7 -0
  46. package/src/Context/service/ContextComputeGradientMatrixService.d.ts +9 -1
  47. package/src/Context/service/ContextComputeGradientMatrixService.js +15 -7
  48. package/src/Context/service/ContextFillSimpleService.d.ts +14 -0
  49. package/src/Context/service/ContextFillSimpleService.js +14 -0
  50. package/src/Context/service/ContextFillWithStencilMainService.d.ts +11 -0
  51. package/src/Context/service/ContextFillWithStencilMainService.js +11 -0
  52. package/src/Context/service/ContextFillWithStencilService.d.ts +11 -0
  53. package/src/Context/service/ContextFillWithStencilService.js +11 -0
  54. package/src/Context/usecase/ContextApplyFilterUseCase.d.ts +17 -0
  55. package/src/Context/usecase/ContextApplyFilterUseCase.js +201 -62
  56. package/src/Context/usecase/ContextBitmapFillUseCase.d.ts +23 -0
  57. package/src/Context/usecase/ContextBitmapFillUseCase.js +47 -0
  58. package/src/Context/usecase/ContextBitmapStrokeUseCase.d.ts +23 -0
  59. package/src/Context/usecase/ContextBitmapStrokeUseCase.js +35 -0
  60. package/src/Context/usecase/ContextClipUseCase.d.ts +15 -0
  61. package/src/Context/usecase/ContextClipUseCase.js +19 -0
  62. package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +21 -1
  63. package/src/Context/usecase/ContextContainerEndLayerUseCase.js +195 -104
  64. package/src/Context/usecase/ContextDrawArraysInstancedUseCase.d.ts +13 -0
  65. package/src/Context/usecase/ContextDrawArraysInstancedUseCase.js +41 -20
  66. package/src/Context/usecase/ContextDrawIndirectUseCase.d.ts +16 -1
  67. package/src/Context/usecase/ContextDrawIndirectUseCase.js +53 -30
  68. package/src/Context/usecase/ContextGradientFillUseCase.d.ts +23 -0
  69. package/src/Context/usecase/ContextGradientFillUseCase.js +47 -0
  70. package/src/Context/usecase/ContextGradientStrokeUseCase.d.ts +23 -0
  71. package/src/Context/usecase/ContextGradientStrokeUseCase.js +35 -0
  72. package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.d.ts +13 -1
  73. package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.js +126 -60
  74. package/src/Context.d.ts +445 -63
  75. package/src/Context.js +566 -144
  76. package/src/FillTexturePool.d.ts +39 -0
  77. package/src/FillTexturePool.js +70 -7
  78. package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.d.ts +21 -2
  79. package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.js +33 -26
  80. package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.d.ts +5 -5
  81. package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.js +81 -64
  82. package/src/Filter/BlurFilterUseCase.d.ts +15 -11
  83. package/src/Filter/BlurFilterUseCase.js +22 -17
  84. package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.d.ts +2 -2
  85. package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.js +5 -5
  86. package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.d.ts +15 -1
  87. package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.js +23 -17
  88. package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.d.ts +20 -1
  89. package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.js +37 -26
  90. package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.d.ts +7 -7
  91. package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.js +19 -31
  92. package/src/Filter/FilterGradientLUTCache.js +2 -0
  93. package/src/Filter/FilterUtil.d.ts +23 -0
  94. package/src/Filter/FilterUtil.js +33 -0
  95. package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.d.ts +5 -5
  96. package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.js +12 -21
  97. package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.d.ts +6 -6
  98. package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.js +16 -19
  99. package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.d.ts +5 -5
  100. package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.js +13 -16
  101. package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.d.ts +13 -1
  102. package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.js +30 -3
  103. package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.d.ts +11 -1
  104. package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.js +36 -6
  105. package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.d.ts +10 -10
  106. package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.js +15 -15
  107. package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.d.ts +4 -4
  108. package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.js +5 -5
  109. package/src/FrameBufferManager.d.ts +95 -3
  110. package/src/FrameBufferManager.js +97 -8
  111. package/src/Gradient/GradientLUTCache.d.ts +36 -4
  112. package/src/Gradient/GradientLUTCache.js +61 -5
  113. package/src/Gradient/GradientLUTGenerator.d.ts +26 -14
  114. package/src/Gradient/GradientLUTGenerator.js +74 -43
  115. package/src/Mask/service/MaskUnionMaskService.d.ts +16 -1
  116. package/src/Mask/service/MaskUnionMaskService.js +45 -31
  117. package/src/Mask.d.ts +57 -3
  118. package/src/Mask.js +75 -11
  119. package/src/Mesh/service/MeshFillGenerateService.d.ts +4 -4
  120. package/src/Mesh/service/MeshFillGenerateService.js +4 -4
  121. package/src/Mesh/service/MeshStrokeFillGenerateService.d.ts +4 -4
  122. package/src/Mesh/service/MeshStrokeFillGenerateService.js +4 -4
  123. package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.d.ts +3 -3
  124. package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.js +10 -3
  125. package/src/Mesh/usecase/MeshFillGenerateUseCase.d.ts +2 -2
  126. package/src/Mesh/usecase/MeshFillGenerateUseCase.js +9 -2
  127. package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.d.ts +3 -3
  128. package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.js +10 -3
  129. package/src/Mesh/usecase/MeshStrokeGenerateUseCase.d.ts +8 -14
  130. package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +214 -129
  131. package/src/PathCommand.d.ts +24 -23
  132. package/src/PathCommand.js +25 -79
  133. package/src/Shader/PipelineManager.d.ts +223 -6
  134. package/src/Shader/PipelineManager.js +308 -66
  135. package/src/Shader/ShaderInstancedManager.d.ts +17 -0
  136. package/src/Shader/ShaderInstancedManager.js +17 -0
  137. package/src/Shader/ShaderSource.d.ts +317 -12
  138. package/src/Shader/ShaderSource.js +328 -39
  139. package/src/Shader/wgsl/common/SharedWgsl.d.ts +28 -1
  140. package/src/Shader/wgsl/common/SharedWgsl.js +28 -9
  141. package/src/Shader/wgsl/fragment/BasicFragment.d.ts +14 -0
  142. package/src/Shader/wgsl/fragment/BasicFragment.js +14 -0
  143. package/src/Shader/wgsl/fragment/BitmapFragment.d.ts +7 -0
  144. package/src/Shader/wgsl/fragment/BitmapFragment.js +7 -0
  145. package/src/Shader/wgsl/fragment/EffectFragment.d.ts +42 -0
  146. package/src/Shader/wgsl/fragment/EffectFragment.js +42 -0
  147. package/src/Shader/wgsl/fragment/FillFragment.d.ts +7 -0
  148. package/src/Shader/wgsl/fragment/FillFragment.js +7 -0
  149. package/src/Shader/wgsl/fragment/FilterFragment.d.ts +70 -0
  150. package/src/Shader/wgsl/fragment/FilterFragment.js +70 -0
  151. package/src/Shader/wgsl/fragment/GradientFragment.d.ts +21 -0
  152. package/src/Shader/wgsl/fragment/GradientFragment.js +43 -8
  153. package/src/Shader/wgsl/fragment/InstancedFragment.d.ts +7 -0
  154. package/src/Shader/wgsl/fragment/InstancedFragment.js +7 -0
  155. package/src/Shader/wgsl/fragment/MaskFragment.d.ts +7 -0
  156. package/src/Shader/wgsl/fragment/MaskFragment.js +7 -0
  157. package/src/Shader/wgsl/fragment/StencilFragment.d.ts +14 -0
  158. package/src/Shader/wgsl/fragment/StencilFragment.js +14 -0
  159. package/src/Shader/wgsl/vertex/BasicVertex.d.ts +7 -0
  160. package/src/Shader/wgsl/vertex/BasicVertex.js +7 -0
  161. package/src/Shader/wgsl/vertex/BitmapVertex.d.ts +7 -0
  162. package/src/Shader/wgsl/vertex/BitmapVertex.js +7 -0
  163. package/src/Shader/wgsl/vertex/FillVertex.d.ts +7 -0
  164. package/src/Shader/wgsl/vertex/FillVertex.js +7 -0
  165. package/src/Shader/wgsl/vertex/FilterVertex.d.ts +77 -1
  166. package/src/Shader/wgsl/vertex/FilterVertex.js +135 -42
  167. package/src/Shader/wgsl/vertex/GradientVertex.d.ts +7 -0
  168. package/src/Shader/wgsl/vertex/GradientVertex.js +7 -0
  169. package/src/Shader/wgsl/vertex/InstancedVertex.d.ts +7 -0
  170. package/src/Shader/wgsl/vertex/InstancedVertex.js +7 -0
  171. package/src/Shader/wgsl/vertex/MaskVertex.d.ts +7 -0
  172. package/src/Shader/wgsl/vertex/MaskVertex.js +7 -0
  173. package/src/Shader/wgsl/vertex/StencilVertex.d.ts +14 -0
  174. package/src/Shader/wgsl/vertex/StencilVertex.js +14 -0
  175. package/src/TextureManager/service/TextureManagerInitializeSamplersService.d.ts +2 -2
  176. package/src/TextureManager/service/TextureManagerInitializeSamplersService.js +2 -2
  177. package/src/TextureManager.d.ts +36 -5
  178. package/src/TextureManager.js +36 -24
  179. package/src/TexturePool/service/TexturePoolCleanupService.d.ts +4 -4
  180. package/src/TexturePool/service/TexturePoolCleanupService.js +6 -6
  181. package/src/TexturePool/service/TexturePoolReleaseService.d.ts +4 -4
  182. package/src/TexturePool/service/TexturePoolReleaseService.js +5 -5
  183. package/src/TexturePool/usecase/TexturePoolAcquireUseCase.d.ts +10 -10
  184. package/src/TexturePool/usecase/TexturePoolAcquireUseCase.js +19 -18
  185. package/src/TexturePool.d.ts +36 -35
  186. package/src/TexturePool.js +44 -65
  187. package/src/WebGPUUtil.d.ts +79 -34
  188. package/src/WebGPUUtil.js +79 -36
  189. package/src/interface/IAttachmentObject.d.ts +36 -0
  190. package/src/interface/IBlendMode.d.ts +7 -0
  191. package/src/interface/IBlendState.d.ts +8 -0
  192. package/src/interface/IBounds.d.ts +23 -0
  193. package/src/interface/IColorBufferObject.d.ts +28 -0
  194. package/src/interface/IComplexBlendItem.d.ts +48 -0
  195. package/src/interface/IFilterConfig.d.ts +28 -2
  196. package/src/interface/IGradientStop.d.ts +20 -0
  197. package/src/interface/ILocalFilterConfig.d.ts +32 -2
  198. package/src/interface/IMeshResult.d.ts +8 -0
  199. package/src/interface/IPoint.d.ts +12 -0
  200. package/src/interface/IPooledTexture.d.ts +24 -0
  201. package/src/interface/IQuadraticSegment.d.ts +8 -0
  202. package/src/interface/IStencilBufferObject.d.ts +28 -0
  203. package/src/interface/IStorageBufferConfig.d.ts +8 -1
  204. package/src/interface/ITextureObject.d.ts +28 -0
  205. package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.d.ts +0 -5
  206. package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.js +0 -42
  207. package/src/Blend/service/BlendAddService.d.ts +0 -1
  208. package/src/Blend/service/BlendAddService.js +0 -8
  209. package/src/Blend/service/BlendAlphaService.d.ts +0 -1
  210. package/src/Blend/service/BlendAlphaService.js +0 -8
  211. package/src/Blend/service/BlendEraseService.d.ts +0 -1
  212. package/src/Blend/service/BlendEraseService.js +0 -8
  213. package/src/Blend/service/BlendGetStateService.d.ts +0 -12
  214. package/src/Blend/service/BlendGetStateService.js +0 -13
  215. package/src/Blend/service/BlendOneZeroService.d.ts +0 -1
  216. package/src/Blend/service/BlendOneZeroService.js +0 -8
  217. package/src/Blend/service/BlendResetService.d.ts +0 -1
  218. package/src/Blend/service/BlendResetService.js +0 -8
  219. package/src/Blend/service/BlendScreenService.d.ts +0 -1
  220. package/src/Blend/service/BlendScreenService.js +0 -8
  221. package/src/Blend/service/BlendSetModeService.d.ts +0 -2
  222. package/src/Blend/service/BlendSetModeService.js +0 -4
  223. package/src/Blend/usecase/BlendOperationUseCase.d.ts +0 -11
  224. package/src/Blend/usecase/BlendOperationUseCase.js +0 -31
  225. package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.d.ts +0 -9
  226. package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.js +0 -15
  227. package/src/Compute/ComputePipelineManager.d.ts +0 -61
  228. package/src/Compute/ComputePipelineManager.js +0 -313
  229. package/src/Compute/service/ComputeExecuteBlurService.d.ts +0 -21
  230. package/src/Compute/service/ComputeExecuteBlurService.js +0 -81
  231. package/src/Filter/BevelFilterShader.d.ts +0 -2
  232. package/src/Filter/BevelFilterShader.js +0 -107
  233. package/src/Filter/BitmapFilterShader.d.ts +0 -2
  234. package/src/Filter/BitmapFilterShader.js +0 -207
  235. package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.d.ts +0 -40
  236. package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.js +0 -51
  237. package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.d.ts +0 -25
  238. package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.js +0 -180
  239. package/src/Filter/BlurFilterShader.d.ts +0 -5
  240. package/src/Filter/BlurFilterShader.js +0 -109
  241. package/src/Filter/ColorMatrixFilterShader.d.ts +0 -4
  242. package/src/Filter/ColorMatrixFilterShader.js +0 -51
  243. package/src/Filter/ConvolutionFilterShader.d.ts +0 -2
  244. package/src/Filter/ConvolutionFilterShader.js +0 -115
  245. package/src/Filter/DisplacementMapFilterShader.d.ts +0 -2
  246. package/src/Filter/DisplacementMapFilterShader.js +0 -114
  247. package/src/Filter/DropShadowFilterShader.d.ts +0 -4
  248. package/src/Filter/DropShadowFilterShader.js +0 -93
  249. package/src/Filter/GlowFilterShader.d.ts +0 -4
  250. package/src/Filter/GlowFilterShader.js +0 -66
  251. package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.d.ts +0 -11
  252. package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.js +0 -19
  253. package/src/Mask/usecase/MaskBindUseCase.d.ts +0 -10
  254. package/src/Mask/usecase/MaskBindUseCase.js +0 -20
  255. package/src/Mesh/service/MeshLerpService.d.ts +0 -13
  256. package/src/Mesh/service/MeshLerpService.js +0 -17
  257. package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.d.ts +0 -14
  258. package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.js +0 -28
  259. package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.d.ts +0 -18
  260. package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.js +0 -54
  261. package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.d.ts +0 -11
  262. package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.js +0 -35
  263. package/src/SamplerCache/service/SamplerCacheGenerateKeyService.d.ts +0 -13
  264. package/src/SamplerCache/service/SamplerCacheGenerateKeyService.js +0 -15
  265. package/src/SamplerCache/service/SamplerCacheGetOrCreateService.d.ts +0 -15
  266. package/src/SamplerCache/service/SamplerCacheGetOrCreateService.js +0 -30
  267. package/src/SamplerCache.d.ts +0 -18
  268. package/src/SamplerCache.js +0 -61
  269. package/src/Shader/BlendModeShader.d.ts +0 -51
  270. package/src/Shader/BlendModeShader.js +0 -71
  271. package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.d.ts +0 -12
  272. package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.js +0 -28
  273. package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.d.ts +0 -13
  274. package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.js +0 -61
  275. package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.d.ts +0 -19
  276. package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.js +0 -37
  277. package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.d.ts +0 -11
  278. package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.js +0 -24
  279. package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.d.ts +0 -14
  280. package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.js +0 -24
  281. package/src/Shader/wgsl/fragment/BlendFragment.d.ts +0 -8
  282. package/src/Shader/wgsl/fragment/BlendFragment.js +0 -63
  283. package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.d.ts +0 -13
  284. package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.js +0 -30
  285. package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.d.ts +0 -15
  286. package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.js +0 -26
  287. package/src/TexturePool/service/TexturePoolEvictOldestService.d.ts +0 -11
  288. package/src/TexturePool/service/TexturePoolEvictOldestService.js +0 -24
  289. package/src/interface/ICachedBindGroup.d.ts +0 -8
  290. package/src/interface/ICachedBindGroup.js +0 -1
  291. package/src/interface/IGradientLUTData.d.ts +0 -8
  292. package/src/interface/IGradientLUTData.js +0 -1
  293. package/src/interface/IPooledBuffer.d.ts +0 -8
  294. package/src/interface/IPooledBuffer.js +0 -1
  295. package/src/interface/IRectangleInfo.d.ts +0 -13
  296. package/src/interface/IRectangleInfo.js +0 -1
@@ -1,10 +1,14 @@
1
1
  import { ShaderSource } from "../../Shader/ShaderSource";
2
2
  /**
3
3
  * @description プリアロケートされた uniform データ (12 floats = 48 bytes)
4
+ * Pre-allocated uniform data array (12 floats = 48 bytes)
5
+ * @type {Float32Array}
4
6
  */
5
7
  const $uniform12 = new Float32Array(12);
6
8
  /**
7
9
  * @description プリアロケートされた BindGroupEntry 配列 (4 bindings)
10
+ * Pre-allocated BindGroupEntry array (4 bindings)
11
+ * @type {GPUBindGroupEntry[]}
8
12
  */
9
13
  const $entries4 = [
10
14
  { "binding": 0, "resource": { "buffer": null } },
@@ -13,22 +17,29 @@ const $entries4 = [
13
17
  { "binding": 3, "resource": null }
14
18
  ];
15
19
  /**
16
- * @description 複雑なブレンドモードを適用
20
+ * @description 複雑なブレンドモードを適用し、ブレンド結果のアタッチメントを返す
21
+ * Applies a complex blend mode and returns the resulting attachment
22
+ * @param {IAttachmentObject} src_attachment - ソースアタッチメント / Source attachment
23
+ * @param {IAttachmentObject} dst_attachment - デスティネーションアタッチメント / Destination attachment
24
+ * @param {string} blend_mode - ブレンドモード名 / Blend mode name
25
+ * @param {Float32Array} color_transform - カラートランスフォーム配列 / Color transform array
26
+ * @param {IFilterConfig} config - フィルター設定 / Filter configuration
27
+ * @return {IAttachmentObject}
17
28
  */
18
- export const execute = (srcAttachment, dstAttachment, blendMode, colorTransform, config) => {
29
+ export const execute = (src_attachment, dst_attachment, blend_mode, color_transform, config) => {
19
30
  const { device, commandEncoder, frameBufferManager, pipelineManager, textureManager } = config;
20
31
  // 出力サイズは両方の大きい方を使用
21
- const width = Math.max(srcAttachment.width, dstAttachment.width);
22
- const height = Math.max(srcAttachment.height, dstAttachment.height);
32
+ const width = Math.max(src_attachment.width, dst_attachment.width);
33
+ const height = Math.max(src_attachment.height, dst_attachment.height);
23
34
  // 出力アタッチメントを作成
24
35
  const destAttachment = frameBufferManager.createTemporaryAttachment(width, height);
25
36
  // 統一パイプラインを使用
26
37
  const pipeline = pipelineManager.getPipeline("complex_blend");
27
38
  const bindGroupLayout = pipelineManager.getBindGroupLayout("complex_blend");
28
39
  if (!pipeline || !bindGroupLayout) {
29
- console.error(`[WebGPU ComplexBlend] Pipeline not found for blend mode: ${blendMode}`);
40
+ console.error(`[WebGPU ComplexBlend] Pipeline not found for blend mode: ${blend_mode}`);
30
41
  // フォールバック: srcをそのまま返す
31
- return srcAttachment;
42
+ return src_attachment;
32
43
  }
33
44
  // サンプラーを作成
34
45
  const sampler = textureManager.createSampler("complex_blend_sampler", true);
@@ -37,15 +48,15 @@ export const execute = (srcAttachment, dstAttachment, blendMode, colorTransform,
37
48
  // addColor: vec4<f32> (16 bytes)
38
49
  // blendMode: f32 + padding: vec3<f32> (16 bytes)
39
50
  // Total: 48 bytes
40
- const blendModeIndex = ShaderSource.getBlendModeIndex(blendMode);
41
- $uniform12[0] = colorTransform[0];
42
- $uniform12[1] = colorTransform[1];
43
- $uniform12[2] = colorTransform[2];
44
- $uniform12[3] = colorTransform[3];
45
- $uniform12[4] = colorTransform[4];
46
- $uniform12[5] = colorTransform[5];
47
- $uniform12[6] = colorTransform[6];
48
- $uniform12[7] = colorTransform[7];
51
+ const blendModeIndex = ShaderSource.getBlendModeIndex(blend_mode);
52
+ $uniform12[0] = color_transform[0];
53
+ $uniform12[1] = color_transform[1];
54
+ $uniform12[2] = color_transform[2];
55
+ $uniform12[3] = color_transform[3];
56
+ $uniform12[4] = color_transform[4];
57
+ $uniform12[5] = color_transform[5];
58
+ $uniform12[6] = color_transform[6];
59
+ $uniform12[7] = color_transform[7];
49
60
  $uniform12[8] = blendModeIndex;
50
61
  $uniform12[9] = 0;
51
62
  $uniform12[10] = 0;
@@ -62,8 +73,8 @@ export const execute = (srcAttachment, dstAttachment, blendMode, colorTransform,
62
73
  // バインドグループを作成
63
74
  $entries4[0].resource.buffer = uniformBuffer;
64
75
  $entries4[1].resource = sampler;
65
- $entries4[2].resource = dstAttachment.texture.view;
66
- $entries4[3].resource = srcAttachment.texture.view;
76
+ $entries4[2].resource = dst_attachment.texture.view;
77
+ $entries4[3].resource = src_attachment.texture.view;
67
78
  const bindGroup = device.createBindGroup({
68
79
  "layout": bindGroupLayout,
69
80
  "entries": $entries4
package/src/Blend.d.ts CHANGED
@@ -1,8 +1,26 @@
1
1
  import type { IBlendMode } from "./interface/IBlendMode";
2
2
  import type { IBlendState } from "./interface/IBlendState";
3
3
  export type { IBlendState };
4
+ /**
5
+ * @description 現在のブレンドモード
6
+ * The current blend mode used for rendering
7
+ *
8
+ * @type {IBlendMode}
9
+ */
4
10
  export declare let $currentBlendMode: IBlendMode;
5
- export declare let $funcCode: number;
11
+ /**
12
+ * @description 現在のブレンドモードを設定する
13
+ * Set the current blend mode
14
+ *
15
+ * @param {IBlendMode} blend_mode - ブレンドモード / blend mode to apply
16
+ * @return {void}
17
+ */
6
18
  export declare const $setCurrentBlendMode: (blend_mode: IBlendMode) => void;
7
- export declare const $setFuncCode: (code: number) => void;
19
+ /**
20
+ * @description 指定されたブレンドモードに対応するWebGPUブレンドステートを返す
21
+ * Returns the WebGPU blend state configuration for the given blend mode
22
+ *
23
+ * @param {IBlendMode} mode - ブレンドモード / blend mode
24
+ * @return {IBlendState}
25
+ */
8
26
  export declare const $getBlendState: (mode: IBlendMode) => IBlendState;
package/src/Blend.js CHANGED
@@ -1,11 +1,27 @@
1
+ /**
2
+ * @description 現在のブレンドモード
3
+ * The current blend mode used for rendering
4
+ *
5
+ * @type {IBlendMode}
6
+ */
1
7
  export let $currentBlendMode = "normal";
2
- export let $funcCode = 0;
8
+ /**
9
+ * @description 現在のブレンドモードを設定する
10
+ * Set the current blend mode
11
+ *
12
+ * @param {IBlendMode} blend_mode - ブレンドモード / blend mode to apply
13
+ * @return {void}
14
+ */
3
15
  export const $setCurrentBlendMode = (blend_mode) => {
4
16
  $currentBlendMode = blend_mode;
5
17
  };
6
- export const $setFuncCode = (code) => {
7
- $funcCode = code;
8
- };
18
+ /**
19
+ * @description 指定されたブレンドモードに対応するWebGPUブレンドステートを返す
20
+ * Returns the WebGPU blend state configuration for the given blend mode
21
+ *
22
+ * @param {IBlendMode} mode - ブレンドモード / blend mode
23
+ * @return {IBlendState}
24
+ */
9
25
  export const $getBlendState = (mode) => {
10
26
  switch (mode) {
11
27
  case "add":
@@ -4,7 +4,7 @@
4
4
  * @type {number}
5
5
  * @const
6
6
  */
7
- const MAX_BUCKET_SIZE = 32;
7
+ const $MAX_BUCKET_SIZE = 32;
8
8
  /**
9
9
  * @description ユニフォームバッファをプールに返却
10
10
  * Release uniform buffer back to pool
@@ -23,7 +23,7 @@ export const execute = (buckets, buffer) => {
23
23
  bucket = [];
24
24
  buckets.set(size, bucket);
25
25
  }
26
- if (bucket.length >= MAX_BUCKET_SIZE) {
26
+ if (bucket.length >= $MAX_BUCKET_SIZE) {
27
27
  // バケットが満杯の場合、このバッファを破棄
28
28
  buffer.destroy();
29
29
  return;
@@ -4,7 +4,7 @@
4
4
  * @type {number}
5
5
  * @const
6
6
  */
7
- const MAX_BUCKET_SIZE = 32;
7
+ const $MAX_BUCKET_SIZE = 32;
8
8
  /**
9
9
  * @description 頂点バッファをプールに返却
10
10
  * Release vertex buffer back to pool
@@ -23,7 +23,7 @@ export const execute = (buckets, buffer) => {
23
23
  bucket = [];
24
24
  buckets.set(size, bucket);
25
25
  }
26
- if (bucket.length >= MAX_BUCKET_SIZE) {
26
+ if (bucket.length >= $MAX_BUCKET_SIZE) {
27
27
  // バケットが満杯の場合、このバッファを破棄
28
28
  buffer.destroy();
29
29
  return;
@@ -8,5 +8,6 @@
8
8
  * @param {number} instance_count - インスタンス数
9
9
  * @param {number} first_vertex - 開始頂点インデックス
10
10
  * @param {number} first_instance - 開始インスタンスインデックス
11
+ * @return {void}
11
12
  */
12
13
  export declare const execute: (device: GPUDevice, buffer: GPUBuffer, vertex_count: number, instance_count: number, first_vertex?: number, first_instance?: number) => void;
@@ -8,6 +8,7 @@
8
8
  * @param {number} instance_count - インスタンス数
9
9
  * @param {number} first_vertex - 開始頂点インデックス
10
10
  * @param {number} first_instance - 開始インスタンスインデックス
11
+ * @return {void}
11
12
  */
12
13
  export const execute = (device, buffer, vertex_count, instance_count, first_vertex = 0, first_instance = 0) => {
13
14
  const indirectData = new Uint32Array([
@@ -8,5 +8,6 @@ import type { IPooledStorageBuffer } from "../../interface/IStorageBufferConfig"
8
8
  * @param {IPooledStorageBuffer[]} pool - Storage Bufferプール
9
9
  * @param {number} current_frame - 現在のフレーム番号
10
10
  * @param {number} max_age - 最大保持フレーム数
11
+ * @return {void}
11
12
  */
12
13
  export declare const execute: (pool: IPooledStorageBuffer[], current_frame: number, max_age?: number) => void;
@@ -7,6 +7,7 @@
7
7
  * @param {IPooledStorageBuffer[]} pool - Storage Bufferプール
8
8
  * @param {number} current_frame - 現在のフレーム番号
9
9
  * @param {number} max_age - 最大保持フレーム数
10
+ * @return {void}
10
11
  */
11
12
  export const execute = (pool, current_frame, max_age = 60) => {
12
13
  // 古いバッファを削除
@@ -1,7 +1,6 @@
1
1
  /**
2
- * @description Dynamic Uniform Buffer Allocator
3
- * 1フレーム内の全fill uniform データを1本の大バッファにサブアロケートし、
4
- * BindGroup作成を1回に削減する。
2
+ * @description 動的Uniformバッファアロケータ。1フレーム内の全uniformデータを1本の大バッファにサブアロケートし、BindGroup作成を1回に削減
3
+ * Dynamic Uniform Buffer Allocator. Sub-allocates all uniform data within a frame into a single large buffer, reducing BindGroup creation to once
5
4
  */
6
5
  export declare class DynamicUniformAllocator {
7
6
  private device;
@@ -13,38 +12,54 @@ export declare class DynamicUniformAllocator {
13
12
  private stagingBuffer;
14
13
  private stagingFloat32;
15
14
  private dirtyEnd;
15
+ /**
16
+ * @description コンストラクタ。GPUデバイスとバッファ容量を設定
17
+ * Constructor. Sets up GPU device and buffer capacity
18
+ * @param {GPUDevice} device - WebGPUデバイス
19
+ * @param {number} capacity - 初期バッファ容量(バイト単位、デフォルト: 65536)
20
+ */
16
21
  constructor(device: GPUDevice, capacity?: number);
17
22
  /**
18
- * @description フレーム開始時にオフセットをリセット
19
- * 前フレームの旧バッファを安全に破棄(submit済みのため)
23
+ * @description フレーム開始時にオフセットをリセットし、前フレームの旧バッファを安全に破棄
24
+ * Reset offset at frame start and safely destroy old buffers from previous frame
25
+ * @return {void}
20
26
  */
21
27
  resetFrame(): void;
22
28
  /**
23
29
  * @description バッファを取得(遅延生成)
30
+ * Get buffer with lazy initialization
31
+ * @return {GPUBuffer} GPUバッファ
24
32
  */
25
33
  getBuffer(): GPUBuffer;
26
34
  /**
27
- * @description uniform データをCPUステージングバッファにコピーし、アライメント済みオフセットを返す
28
- * 実際のGPU書き込みはflush()で一括実行される
29
- * @param data - 書き込むデータ
30
- * @return アライメント済みオフセット(バイト単位)
35
+ * @description uniformデータをCPUステージングバッファにコピーし、アライメント済みオフセットを返す。実際のGPU書き込みはflush()で一括実行
36
+ * Copy uniform data to CPU staging buffer and return aligned offset. Actual GPU write is batched in flush()
37
+ * @param {Float32Array} data - 書き込むデータ
38
+ * @return {number} アライメント済みオフセット(バイト単位)
31
39
  */
32
40
  allocate(data: Float32Array): number;
33
41
  /**
34
- * @description ステージングバッファの内容をGPUバッファに一括書き込み
35
- * submit前に1回だけ呼び出す
42
+ * @description ステージングバッファの内容をGPUバッファに一括書き込み。submit前に1回だけ呼び出す
43
+ * Flush staging buffer content to GPU buffer in bulk. Call once before submit
44
+ * @return {void}
36
45
  */
37
46
  flush(): void;
47
+ /**
48
+ * @description バッファを破棄してリソースを解放
49
+ * Dispose buffers and release resources
50
+ * @return {void}
51
+ */
38
52
  dispose(): void;
39
53
  }
54
+ /**
55
+ * @description GPUバッファの管理クラス。頂点・ユニフォーム・ストレージ・インダイレクトバッファのプール管理と再利用を提供
56
+ * GPU buffer management class. Provides pooling and reuse for vertex, uniform, storage, and indirect buffers
57
+ */
40
58
  export declare class BufferManager {
41
59
  private device;
42
- private vertexBuffers;
43
- private uniformBuffers;
44
60
  private vertexBufferBuckets;
45
61
  private uniformBufferBuckets;
46
62
  private storageBufferPool;
47
- private indirectBuffer;
48
63
  private indirectBufferPool;
49
64
  private frameIndirectBuffers;
50
65
  private frameNumber;
@@ -52,42 +67,92 @@ export declare class BufferManager {
52
67
  private frameVertexPoolBuffers;
53
68
  private frameUniformPoolBuffers;
54
69
  readonly dynamicUniform: DynamicUniformAllocator;
70
+ /**
71
+ * @description コンストラクタ。GPUデバイスを設定し、各種バッファプールを初期化
72
+ * Constructor. Sets up GPU device and initializes buffer pools
73
+ * @param {GPUDevice} device - WebGPUデバイス
74
+ */
55
75
  constructor(device: GPUDevice);
56
- createVertexBuffer(name: string, data: Float32Array): GPUBuffer;
57
- createUniformBuffer(name: string, size: number): GPUBuffer;
58
- updateUniformBuffer(name: string, data: Float32Array): void;
59
- getVertexBuffer(name: string): GPUBuffer | undefined;
60
- getUniformBuffer(name: string): GPUBuffer | undefined;
76
+ /**
77
+ * @description 矩形の頂点データを作成
78
+ * Create rect vertices data
79
+ * @param {number} x - X座標
80
+ * @param {number} y - Y座標
81
+ * @param {number} width - 幅
82
+ * @param {number} height - 高さ
83
+ * @return {Float32Array} 矩形の頂点データ
84
+ */
61
85
  createRectVertices(x: number, y: number, width: number, height: number): Float32Array;
62
- acquireVertexBuffer(requiredSize: number, data?: Float32Array): GPUBuffer;
63
- releaseVertexBuffer(buffer: GPUBuffer): void;
64
- acquireUniformBuffer(requiredSize: number): GPUBuffer;
86
+ /**
87
+ * @description プールから頂点バッファを取得(または新規作成)
88
+ * Acquire vertex buffer from pool or create new one
89
+ * @param {number} required_size - 必要なバイトサイズ
90
+ * @param {Float32Array} [data] - 初期データ
91
+ * @return {GPUBuffer} 取得された頂点バッファ
92
+ */
93
+ acquireVertexBuffer(required_size: number, data?: Float32Array): GPUBuffer;
94
+ /**
95
+ * @description プールからユニフォームバッファを取得(または新規作成)
96
+ * Acquire uniform buffer from pool or create new one
97
+ * @param {number} required_size - 必要なバイトサイズ
98
+ * @return {GPUBuffer} 取得されたユニフォームバッファ
99
+ */
100
+ acquireUniformBuffer(required_size: number): GPUBuffer;
65
101
  /**
66
102
  * @description Uniform Bufferの取得と書き込みを一括で行うヘルパー
67
- * acquireUniformBuffer + writeBuffer の2ステップを1呼び出しに統合
68
- * @param data - 書き込むデータ
69
- * @param byteLength - 書き込みバイト数(省略時はdata.byteLength)
70
- * @return GPUBuffer
71
- */
72
- acquireAndWriteUniformBuffer(data: Float32Array, byteLength?: number): GPUBuffer;
73
- releaseUniformBuffer(buffer: GPUBuffer): void;
74
- destroyBuffer(name: string): void;
103
+ * Helper to acquire and write uniform buffer in one call, combining acquireUniformBuffer + writeBuffer
104
+ * @param {Float32Array} data - 書き込むデータ
105
+ * @param {number} [byte_length] - 書き込みバイト数(省略時はdata.byteLength)
106
+ * @return {GPUBuffer} 取得されたユニフォームバッファ
107
+ */
108
+ acquireAndWriteUniformBuffer(data: Float32Array, byte_length?: number): GPUBuffer;
109
+ /**
110
+ * @description 全バッファを破棄してリソースを解放
111
+ * Dispose all buffers and release resources
112
+ * @return {void}
113
+ */
75
114
  dispose(): void;
76
- getPoolStats(): {
77
- vertexPoolSize: number;
78
- uniformPoolSize: number;
79
- };
115
+ /**
116
+ * @description フレーム内で使用したバッファをクリアし、プールに返却
117
+ * Clear frame buffers and return them to pool
118
+ * @return {void}
119
+ */
80
120
  clearFrameBuffers(): void;
121
+ /**
122
+ * @description 全てのStorage Bufferを未使用状態に戻す
123
+ * Mark all storage buffers as not in use
124
+ * @return {void}
125
+ */
81
126
  releaseAllStorageBuffers(): void;
82
- acquireStorageBuffer(requiredSize: number): GPUBuffer;
83
- releaseStorageBuffer(buffer: GPUBuffer): void;
127
+ /**
128
+ * @description プールからStorage Bufferを取得(または新規作成)
129
+ * Acquire storage buffer from pool or create new one
130
+ * @param {number} required_size - 必要なバイトサイズ
131
+ * @return {GPUBuffer} 取得されたStorage Buffer
132
+ */
133
+ acquireStorageBuffer(required_size: number): GPUBuffer;
134
+ /**
135
+ * @description Storage Bufferにデータを書き込む
136
+ * Write data to storage buffer
137
+ * @param {GPUBuffer} buffer - 書き込み先バッファ
138
+ * @param {Float32Array | Uint32Array} data - 書き込むデータ
139
+ * @return {void}
140
+ */
84
141
  writeStorageBuffer(buffer: GPUBuffer, data: Float32Array | Uint32Array): void;
85
- getOrCreateIndirectBuffer(vertexCount: number, instanceCount: number, firstVertex?: number, firstInstance?: number): GPUBuffer;
86
- createIndirectBuffer(vertexCount: number, instanceCount: number, firstVertex?: number, firstInstance?: number): GPUBuffer;
142
+ /**
143
+ * @description 新しいIndirect Bufferを作成(プールから再利用または新規作成)
144
+ * Create new indirect buffer (reuse from pool or create new)
145
+ * @param {number} vertex_count - 頂点数
146
+ * @param {number} instance_count - インスタンス数
147
+ * @param {number} first_vertex - 開始頂点インデックス
148
+ * @param {number} first_instance - 開始インスタンスインデックス
149
+ * @return {GPUBuffer} 作成されたIndirect Buffer
150
+ */
151
+ createIndirectBuffer(vertex_count: number, instance_count: number, first_vertex?: number, first_instance?: number): GPUBuffer;
152
+ /**
153
+ * @description 単位矩形(0,0,1,1)の頂点バッファを取得(遅延生成)
154
+ * Get unit rect (0,0,1,1) vertex buffer with lazy creation
155
+ * @return {GPUBuffer} 単位矩形の頂点バッファ
156
+ */
87
157
  getUnitRectBuffer(): GPUBuffer;
88
- getFrameNumber(): number;
89
- getStoragePoolStats(): {
90
- storagePoolSize: number;
91
- storagePoolInUse: number;
92
- };
93
158
  }