@next2d/webgpu 3.0.5 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,4 +1,3 @@
1
- import type { IPoint } from "./interface/IPoint";
2
1
  import type { IPath } from "./interface/IPath";
3
2
  /**
4
3
  * @description WebGPU用パスコマンド(WebGL互換形式)
@@ -9,11 +8,35 @@ import type { IPath } from "./interface/IPath";
9
8
  * - isControlPoint = false: 通常の頂点または終点
10
9
  */
11
10
  export declare class PathCommand {
11
+ /**
12
+ * @description 現在のパスデータ
13
+ * Current path data array
14
+ */
12
15
  private $currentPath;
16
+ /**
17
+ * @description 確定済みパスの配列
18
+ * Array of finalized path vertices
19
+ */
13
20
  private $vertices;
21
+ /**
22
+ * @description 現在のX座標
23
+ * Current X coordinate
24
+ */
14
25
  private $currentX;
26
+ /**
27
+ * @description 現在のY座標
28
+ * Current Y coordinate
29
+ */
15
30
  private $currentY;
31
+ /**
32
+ * @description サブパスの開始X座標
33
+ * Start X coordinate of current sub-path
34
+ */
16
35
  private $startX;
36
+ /**
37
+ * @description サブパスの開始Y座標
38
+ * Start Y coordinate of current sub-path
39
+ */
17
40
  private $startY;
18
41
  /**
19
42
  * @constructor
@@ -53,13 +76,6 @@ export declare class PathCommand {
53
76
  * 0.25 = 0.5px squared(滑らかなストローク描画用)
54
77
  */
55
78
  private $flatnessThreshold;
56
- /**
57
- * @description フラットネス閾値を設定
58
- * Set flatness threshold for adaptive bezier tessellation
59
- * @param {number} scale - 現在のスケール(行列のスケール成分)
60
- * @return {void}
61
- */
62
- setScale(scale: number): void;
63
79
  /**
64
80
  * @description 三次ベジェ曲線を二次ベジェ曲線に適応的に近似
65
81
  * Adaptively approximate cubic bezier with quadratic beziers
@@ -94,21 +110,6 @@ export declare class PathCommand {
94
110
  * @return {IPath[]}
95
111
  */
96
112
  get $getVertices(): IPath[];
97
- /**
98
- * @description パスから頂点配列を生成(従来互換用・単純なfan triangulation)
99
- * @return {Float32Array}
100
- */
101
- generateVertices(): Float32Array;
102
- /**
103
- * @description 現在のパスを取得(ストローク用)
104
- * @return {IPoint[]}
105
- */
106
- getCurrentPath(): IPoint[];
107
- /**
108
- * @description すべてのパスを取得(ストローク用)
109
- * @return {IPoint[][]}
110
- */
111
- getAllPaths(): IPoint[][];
112
113
  /**
113
114
  * @description WebGL互換形式でパスを取得(ストローク用)
114
115
  * [x, y, isCurve, x, y, isCurve, ...] 形式
@@ -1,4 +1,4 @@
1
- import { adaptiveCubicToQuad, calculateAdaptiveThreshold } from "./BezierConverter/BezierConverter";
1
+ import { adaptiveCubicToQuad } from "./BezierConverter/BezierConverter";
2
2
  /**
3
3
  * @description WebGPU用パスコマンド(WebGL互換形式)
4
4
  * Path commands for WebGPU (WebGL compatible format)
@@ -12,36 +12,60 @@ export class PathCommand {
12
12
  * @constructor
13
13
  */
14
14
  constructor() {
15
+ /**
16
+ * @description 現在のパスデータ
17
+ * Current path data array
18
+ */
15
19
  Object.defineProperty(this, "$currentPath", {
16
20
  enumerable: true,
17
21
  configurable: true,
18
22
  writable: true,
19
23
  value: void 0
20
24
  });
25
+ /**
26
+ * @description 確定済みパスの配列
27
+ * Array of finalized path vertices
28
+ */
21
29
  Object.defineProperty(this, "$vertices", {
22
30
  enumerable: true,
23
31
  configurable: true,
24
32
  writable: true,
25
33
  value: void 0
26
34
  });
35
+ /**
36
+ * @description 現在のX座標
37
+ * Current X coordinate
38
+ */
27
39
  Object.defineProperty(this, "$currentX", {
28
40
  enumerable: true,
29
41
  configurable: true,
30
42
  writable: true,
31
43
  value: void 0
32
44
  });
45
+ /**
46
+ * @description 現在のY座標
47
+ * Current Y coordinate
48
+ */
33
49
  Object.defineProperty(this, "$currentY", {
34
50
  enumerable: true,
35
51
  configurable: true,
36
52
  writable: true,
37
53
  value: void 0
38
54
  });
55
+ /**
56
+ * @description サブパスの開始X座標
57
+ * Start X coordinate of current sub-path
58
+ */
39
59
  Object.defineProperty(this, "$startX", {
40
60
  enumerable: true,
41
61
  configurable: true,
42
62
  writable: true,
43
63
  value: void 0
44
64
  });
65
+ /**
66
+ * @description サブパスの開始Y座標
67
+ * Start Y coordinate of current sub-path
68
+ */
45
69
  Object.defineProperty(this, "$startY", {
46
70
  enumerable: true,
47
71
  configurable: true,
@@ -127,15 +151,6 @@ export class PathCommand {
127
151
  this.$currentX = x;
128
152
  this.$currentY = y;
129
153
  }
130
- /**
131
- * @description フラットネス閾値を設定
132
- * Set flatness threshold for adaptive bezier tessellation
133
- * @param {number} scale - 現在のスケール(行列のスケール成分)
134
- * @return {void}
135
- */
136
- setScale(scale) {
137
- this.$flatnessThreshold = calculateAdaptiveThreshold(scale);
138
- }
139
154
  /**
140
155
  * @description 三次ベジェ曲線を二次ベジェ曲線に適応的に近似
141
156
  * Adaptively approximate cubic bezier with quadratic beziers
@@ -221,75 +236,6 @@ export class PathCommand {
221
236
  }
222
237
  return vertices;
223
238
  }
224
- /**
225
- * @description パスから頂点配列を生成(従来互換用・単純なfan triangulation)
226
- * @return {Float32Array}
227
- */
228
- generateVertices() {
229
- const vertices = this.$getVertices;
230
- const triangles = [];
231
- for (const path of vertices) {
232
- if (path.length < 9) {
233
- continue;
234
- } // 最低3点(9要素)必要
235
- // 点を抽出
236
- const points = [];
237
- for (let i = 0; i < path.length; i += 3) {
238
- points.push({ "x": path[i], "y": path[i + 1] });
239
- }
240
- // Fan triangulation
241
- for (let i = 1; i < points.length - 1; i++) {
242
- triangles.push(points[0].x, points[0].y, points[i].x, points[i].y, points[i + 1].x, points[i + 1].y);
243
- }
244
- }
245
- return new Float32Array(triangles);
246
- }
247
- /**
248
- * @description 現在のパスを取得(ストローク用)
249
- * @return {IPoint[]}
250
- */
251
- getCurrentPath() {
252
- const points = [];
253
- for (let i = 0; i < this.$currentPath.length; i += 3) {
254
- points.push({
255
- "x": this.$currentPath[i],
256
- "y": this.$currentPath[i + 1]
257
- });
258
- }
259
- return points;
260
- }
261
- /**
262
- * @description すべてのパスを取得(ストローク用)
263
- * @return {IPoint[][]}
264
- */
265
- getAllPaths() {
266
- const allPaths = [];
267
- for (const path of this.$vertices) {
268
- const points = [];
269
- for (let i = 0; i < path.length; i += 3) {
270
- points.push({
271
- "x": path[i],
272
- "y": path[i + 1]
273
- });
274
- }
275
- if (points.length > 0) {
276
- allPaths.push(points);
277
- }
278
- }
279
- if (this.$currentPath.length >= 3) {
280
- const points = [];
281
- for (let i = 0; i < this.$currentPath.length; i += 3) {
282
- points.push({
283
- "x": this.$currentPath[i],
284
- "y": this.$currentPath[i + 1]
285
- });
286
- }
287
- if (points.length > 0) {
288
- allPaths.push(points);
289
- }
290
- }
291
- return allPaths;
292
- }
293
239
  /**
294
240
  * @description WebGL互換形式でパスを取得(ストローク用)
295
241
  * [x, y, isCurve, x, y, isCurve, ...] 形式
@@ -1,57 +1,274 @@
1
+ /**
2
+ * @description WebGPUレンダーパイプラインの管理クラス。パイプラインとバインドグループレイアウトの生成・キャッシュを行う
3
+ * Manager class for WebGPU render pipelines. Creates, caches, and manages pipelines and bind group layouts
4
+ */
1
5
  export declare class PipelineManager {
6
+ /**
7
+ * @description GPUデバイスの参照
8
+ * Reference to the GPU device
9
+ */
2
10
  private device;
11
+ /**
12
+ * @description 出力テクスチャフォーマット
13
+ * Output texture format
14
+ */
3
15
  private format;
16
+ /**
17
+ * @description パイプライン名からGPURenderPipelineへのキャッシュマップ
18
+ * Cache map from pipeline name to GPURenderPipeline
19
+ */
4
20
  private pipelines;
21
+ /**
22
+ * @description バインドグループレイアウト名からGPUBindGroupLayoutへのキャッシュマップ
23
+ * Cache map from layout name to GPUBindGroupLayout
24
+ */
5
25
  private bindGroupLayouts;
26
+ /**
27
+ * @description MSAAサンプル数
28
+ * MSAA sample count
29
+ */
6
30
  private sampleCount;
31
+ /**
32
+ * @description シェーダーモジュールのキャッシュ
33
+ * Shader module cache by key
34
+ */
7
35
  private shaderModuleCache;
36
+ /**
37
+ * @description フィルター用バインドグループレイアウトキャッシュ(テクスチャ数別)
38
+ * Filter bind group layout cache indexed by texture count
39
+ */
8
40
  private filterBindGroupLayouts;
41
+ /**
42
+ * @description PipelineManagerのコンストラクタ。GPUデバイスとフォーマットを設定し、パイプラインを初期化する
43
+ * Construct PipelineManager. Sets GPU device, format, and initializes pipelines
44
+ * @param {GPUDevice} device - GPUデバイス / GPU device instance
45
+ * @param {GPUTextureFormat} format - テクスチャフォーマット / Texture format for output
46
+ */
9
47
  constructor(device: GPUDevice, format: GPUTextureFormat);
48
+ /**
49
+ * @description シェーダーモジュールをキャッシュから取得、または新規作成する
50
+ * Get a shader module from cache, or create and cache a new one
51
+ * @param {string} key - キャッシュキー / Cache key
52
+ * @param {string} code - WGSLシェーダーコード / WGSL shader source code
53
+ * @return {GPUShaderModule} シェーダーモジュール / The shader module
54
+ */
10
55
  private getOrCreateShaderModule;
56
+ /**
57
+ * @description 初期パイプライン群を一括作成する
58
+ * Create all initial render pipelines
59
+ */
11
60
  private initialize;
61
+ /**
62
+ * @description 初期化済みの遅延グループ名セット
63
+ * Set of initialized lazy group names
64
+ */
12
65
  private lazyInitGroups;
66
+ /**
67
+ * @description パイプライン名から遅延初期化グループ名への読み取り専用マップ
68
+ * Read-only map from pipeline name to lazy initialization group name
69
+ */
13
70
  private readonly lazyGroupMap;
71
+ /**
72
+ * @description 指定された名前に対応する遅延初期化グループをまだ初期化されていなければ初期化する
73
+ * Ensure the lazy initialization group for the given name is initialized
74
+ * @param {string} name - パイプライン名 / Pipeline name to look up its lazy group
75
+ */
14
76
  private ensureLazyGroup;
77
+ /**
78
+ * @description すべての遅延初期化グループを事前にロードする
79
+ * Preload all lazy initialization groups eagerly
80
+ */
15
81
  preloadLazyGroups(): void;
82
+ /**
83
+ * @description 塗りつぶし描画用パイプラインを作成する(RGBA/BGRA/ステンシル対応)
84
+ * Create fill render pipelines (RGBA, BGRA, and stencil variants)
85
+ */
16
86
  private createFillPipeline;
87
+ /**
88
+ * @description ステンシル塗りつぶし用パイプラインを作成する(書き込み・塗りつぶし・アトラス・メイン・マスク対応)
89
+ * Create stencil fill pipelines (write, fill, atlas, main, and masked variants)
90
+ */
17
91
  private createStencilFillPipelines;
92
+ /**
93
+ * @description クリッピング用パイプラインを作成する(レベル別の書き込み・クリア)
94
+ * Create clip pipelines (level-based write and clear variants)
95
+ */
18
96
  private createClipPipeline;
97
+ /**
98
+ * @description マスク合成用パイプラインを作成する(レベル別のマージ・クリア)
99
+ * Create mask union pipelines (level-based merge and clear variants)
100
+ */
19
101
  private createMaskUnionPipelines;
102
+ /**
103
+ * @description マスク描画用パイプラインを作成する
104
+ * Create mask render pipeline
105
+ */
20
106
  private createMaskPipeline;
107
+ /**
108
+ * @description 基本描画パイプラインを作成する(RGBA/BGRA)
109
+ * Create basic render pipelines (RGBA and BGRA variants)
110
+ */
21
111
  private createBasicPipeline;
112
+ /**
113
+ * @description テクスチャ描画用パイプラインを作成する
114
+ * Create texture render pipeline
115
+ */
22
116
  private createTexturePipeline;
117
+ /**
118
+ * @description インスタンス描画用パイプラインを作成する(ブレンドバリアント・マスク対応)
119
+ * Create instanced render pipelines (blend variants and masked)
120
+ */
23
121
  private createInstancedPipeline;
122
+ /**
123
+ * @description グラデーション塗りつぶし用パイプラインを作成する(RGBA/BGRA/ステンシル対応)
124
+ * Create gradient fill pipelines (RGBA, BGRA, stencil, and stroke variants)
125
+ */
24
126
  private createGradientPipeline;
127
+ /**
128
+ * @description ビットマップ塗りつぶし用パイプラインを作成する(RGBA/BGRA/ステンシル・ストローク対応)
129
+ * Create bitmap fill pipelines (RGBA, BGRA, stencil, and stroke variants)
130
+ */
25
131
  private createBitmapFillPipeline;
132
+ /**
133
+ * @description ブレンド描画用パイプラインを作成する(デュアルテクスチャブレンド)
134
+ * Create blend render pipeline for dual-texture blending
135
+ */
26
136
  private createBlendPipeline;
137
+ /**
138
+ * @description ブラーフィルター用パイプラインを作成する(halfBlur 1〜16のバリアント)
139
+ * Create blur filter pipelines (halfBlur 1-16 variants)
140
+ */
27
141
  private createBlurFilterPipeline;
142
+ /**
143
+ * @description テクスチャコピー用パイプラインを作成する(各種ブレンド・フィルター出力・MSAA対応)
144
+ * Create texture copy pipelines (various blend modes, filter output, MSAA variants)
145
+ */
28
146
  private createTextureCopyPipeline;
147
+ /**
148
+ * @description 位置指定テクスチャ描画用パイプラインを作成する(RGBA/ビットマップレンダー対応)
149
+ * Create positioned texture pipelines (RGBA, bitmap render, MSAA variants)
150
+ */
29
151
  private createPositionedTexturePipeline;
152
+ /**
153
+ * @description テクスチャスケーリング用パイプラインを作成する
154
+ * Create texture scale pipelines
155
+ */
30
156
  private createTextureScalePipeline;
157
+ /**
158
+ * @description ビットマップ同期描画用パイプラインを作成する(MSAA 4x)
159
+ * Create bitmap sync render pipeline (MSAA 4x)
160
+ */
31
161
  private createBitmapSyncPipeline;
162
+ /**
163
+ * @description カラーマトリクスフィルター・ベベル・グロー・ドロップシャドウ等のフィルターパイプラインを作成する
164
+ * Create filter pipelines (color matrix, bevel, glow, drop shadow, gradient glow/bevel)
165
+ */
32
166
  private createColorMatrixFilterPipeline;
167
+ /**
168
+ * @description 複合ブレンド用パイプラインを作成する
169
+ * Create complex blend pipelines
170
+ */
33
171
  private createComplexBlendPipelines;
172
+ /**
173
+ * @description 複合ブレンドのコピー・スケール用パイプラインを作成する
174
+ * Create complex blend copy and scale pipelines
175
+ */
34
176
  private createComplexBlendCopyPipeline;
177
+ /**
178
+ * @description 複合ブレンドの出力用パイプラインを作成する(MSAA対応含む)
179
+ * Create complex blend output pipelines (including MSAA variants)
180
+ */
35
181
  private createComplexBlendOutputPipeline;
182
+ /**
183
+ * @description 指定されたフラグメントシェーダーとテクスチャ数でフィルターパイプラインを作成する
184
+ * Create a filter pipeline with the specified fragment shader and texture count
185
+ * @param {string} name - パイプライン名 / Pipeline name
186
+ * @param {string} fragment_shader_code - フラグメントシェーダーコード / Fragment shader WGSL source code
187
+ * @param {number} texture_count - テクスチャバインディング数 / Number of texture bindings
188
+ * @param {GPUBlendState} blend - ブレンドステート / Blend state configuration
189
+ */
36
190
  private createFilterPipelineWithLayout;
191
+ /**
192
+ * @description フルスクリーンクアッド描画用の汎用パイプラインを作成する
193
+ * Create a generic fullscreen quad render pipeline
194
+ * @param {GPUPipelineLayout} pipeline_layout - パイプラインレイアウト / Pipeline layout
195
+ * @param {GPUShaderModule} vertex_module - 頂点シェーダーモジュール / Vertex shader module
196
+ * @param {GPUShaderModule} fragment_module - フラグメントシェーダーモジュール / Fragment shader module
197
+ * @param {GPUTextureFormat} format - テクスチャフォーマット / Target texture format
198
+ * @param {GPUBlendState} blend - ブレンドステート / Blend state configuration
199
+ * @param {number} multisample_count - MSAAサンプル数(任意) / Optional MSAA sample count
200
+ * @param {GPUDepthStencilState} depth_stencil - 深度ステンシルステート(任意) / Optional depth-stencil state
201
+ * @return {GPURenderPipeline} レンダーパイプライン / The created render pipeline
202
+ */
37
203
  private createFullscreenQuadPipeline;
204
+ /**
205
+ * @description 名前からレンダーパイプラインを取得する(遅延初期化を含む)
206
+ * Get a render pipeline by name, initializing lazy groups if needed
207
+ * @param {string} name - パイプライン名 / Pipeline name
208
+ * @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
209
+ */
38
210
  getPipeline(name: string): GPURenderPipeline | undefined;
39
211
  /**
40
- * @description フィルターパイプラインのoverride定数バリアントを取得
41
- * GPU warp divergenceを排除するコンパイル時分岐特殊化
212
+ * @description フィルターパイプラインのoverride定数バリアントを取得する。GPU warp divergenceを排除するコンパイル時分岐特殊化
213
+ * Get a filter pipeline variant with override constants. Compile-time branch specialization to eliminate GPU warp divergence
214
+ * @param {string} base_name - ベースパイプライン名 / Base pipeline name
215
+ * @param {Record<string, number>} constants - オーバーライド定数 / Override constant values
216
+ * @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
42
217
  */
43
- getFilterPipeline(baseName: string, constants: Record<string, number>): GPURenderPipeline | undefined;
218
+ getFilterPipeline(base_name: string, constants: Record<string, number>): GPURenderPipeline | undefined;
44
219
  /**
45
- * @description グラデーションタイプとスプレッドモードに応じた特殊化パイプラインを取得
46
- * override定数でGPU warp divergenceを排除
220
+ * @description グラデーションタイプとスプレッドモードに応じた特殊化パイプラインを取得する。override定数でGPU warp divergenceを排除
221
+ * Get a gradient pipeline specialized by gradient type and spread mode. Uses override constants to eliminate GPU warp divergence
222
+ * @param {string} base_name - ベースパイプライン名 / Base pipeline name
223
+ * @param {number} gradient_type - グラデーションタイプ / Gradient type identifier
224
+ * @param {number} spread_mode - スプレッドモード / Spread mode identifier
225
+ * @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
226
+ */
227
+ getGradientPipeline(base_name: string, gradient_type: number, spread_mode: number): GPURenderPipeline | undefined;
228
+ /**
229
+ * @description グラデーション用パイプラインレイアウト
230
+ * Pipeline layout for gradient pipelines
47
231
  */
48
- getGradientPipeline(baseName: string, gradientType: number, spreadMode: number): GPURenderPipeline | undefined;
49
232
  private gradientPipelineLayout;
233
+ /**
234
+ * @description グラデーション用頂点シェーダーモジュール
235
+ * Vertex shader module for gradient pipelines
236
+ */
50
237
  private gradientVertexShaderModule;
238
+ /**
239
+ * @description グラデーション用フラグメントシェーダーモジュール
240
+ * Fragment shader module for gradient pipelines
241
+ */
51
242
  private gradientFragmentShaderModule;
243
+ /**
244
+ * @description グラデーション用ステンシルフラグメントシェーダーモジュール
245
+ * Stencil fragment shader module for gradient pipelines
246
+ */
52
247
  private gradientStencilFragmentShaderModule;
248
+ /**
249
+ * @description グラデーションバリアントパイプラインを作成する(override定数による特殊化)
250
+ * Create a gradient variant pipeline with override constants for specialization
251
+ * @param {string} base_name - ベースパイプライン名 / Base pipeline name
252
+ * @param {number} gradient_type - グラデーションタイプ / Gradient type identifier
253
+ * @param {number} spread_mode - スプレッドモード / Spread mode identifier
254
+ * @return {GPURenderPipeline | undefined} パイプラインまたはundefined / The pipeline or undefined
255
+ */
53
256
  private createGradientVariant;
257
+ /**
258
+ * @description 名前からバインドグループレイアウトを取得する(遅延初期化を含む)
259
+ * Get a bind group layout by name, initializing lazy groups if needed
260
+ * @param {string} name - バインドグループレイアウト名 / Bind group layout name
261
+ * @return {GPUBindGroupLayout | undefined} レイアウトまたはundefined / The layout or undefined
262
+ */
54
263
  getBindGroupLayout(name: string): GPUBindGroupLayout | undefined;
264
+ /**
265
+ * @description ノードクリア用パイプラインを作成する(カラーとステンシルの同時クリア)
266
+ * Create node clear pipeline for simultaneous color and stencil clear
267
+ */
55
268
  private createNodeClearPipeline;
269
+ /**
270
+ * @description すべてのパイプライン・レイアウト・シェーダーモジュールを解放する
271
+ * Dispose all pipelines, layouts, and shader module caches
272
+ */
56
273
  dispose(): void;
57
274
  }