@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
package/src/Context.d.ts CHANGED
@@ -9,423 +9,805 @@ import type { Node } from "@next2d/texture-packer";
9
9
  * @class
10
10
  */
11
11
  export declare class Context {
12
+ /** @description 変換行列スタック / Transform matrix stack */
12
13
  readonly $stack: Float32Array[];
14
+ /** @description 現在の2D変換行列 / Current 2D transform matrix */
13
15
  readonly $matrix: Float32Array;
16
+ /** @description 背景クリア色R / Background clear color R */
14
17
  $clearColorR: number;
18
+ /** @description 背景クリア色G / Background clear color G */
15
19
  $clearColorG: number;
20
+ /** @description 背景クリア色B / Background clear color B */
16
21
  $clearColorB: number;
22
+ /** @description 背景クリア色A / Background clear color A */
17
23
  $clearColorA: number;
24
+ /** @description メインアタッチメントオブジェクト / Main attachment object */
18
25
  $mainAttachmentObject: IAttachmentObject | null;
26
+ /** @description アタッチメントオブジェクトのスタック / Attachment object stack */
19
27
  readonly $stackAttachmentObject: IAttachmentObject[];
28
+ /** @description グローバルアルファ値 / Global alpha value */
20
29
  globalAlpha: number;
30
+ /** @description グローバル合成操作 / Global composite operation */
21
31
  globalCompositeOperation: IBlendMode;
32
+ /** @description 画像スムージングの有効/無効 / Whether image smoothing is enabled */
22
33
  imageSmoothingEnabled: boolean;
34
+ /** @description 塗りつぶしスタイル / Fill style color */
23
35
  $fillStyle: Float32Array;
36
+ /** @description 線スタイル / Stroke style color */
24
37
  $strokeStyle: Float32Array;
38
+ /** @description マスク描画範囲 / Mask drawing bounds */
25
39
  readonly maskBounds: IBounds;
40
+ /** @description 線の太さ / Line thickness */
26
41
  thickness: number;
42
+ /** @description 線端の形状 / Line cap style */
27
43
  caps: number;
44
+ /** @description 線の結合スタイル / Line joint style */
28
45
  joints: number;
46
+ /** @description マイターリミット / Miter limit */
29
47
  miterLimit: number;
48
+ /** @description GPUデバイス / GPU device instance */
30
49
  private device;
50
+ /** @description GPUキャンバスコンテキスト / GPU canvas context */
31
51
  private canvasContext;
52
+ /** @description 優先テクスチャフォーマット / Preferred texture format */
32
53
  private preferredFormat;
54
+ /** @description コマンドエンコーダー / Command encoder */
33
55
  private commandEncoder;
56
+ /** @description レンダーパスエンコーダー / Render pass encoder */
34
57
  private renderPassEncoder;
58
+ /** @description メインキャンバステクスチャ(最終表示用、フレームごとに1回取得) / Main canvas texture (for final display, acquired once per frame) */
35
59
  private mainTexture;
60
+ /** @description メインキャンバステクスチャビュー / Main canvas texture view */
36
61
  private mainTextureView;
62
+ /** @description フレーム開始済みフラグ / Whether the frame has been started */
37
63
  private frameStarted;
64
+ /** @description フレームごとの一時テクスチャ(endFrame()でdestroy) / Per-frame temporary textures (destroyed in endFrame()) */
38
65
  private frameTextures;
66
+ /** @description フレームごとのプール管理テクスチャ(endFrame()でプールに返却) / Per-frame pooled textures (returned to pool in endFrame()) */
39
67
  private pooledTextures;
68
+ /** @description フレームごとのレンダーテクスチャプール管理(endFrame()でプールに返却) / Per-frame render texture pool (returned to pool in endFrame()) */
40
69
  private pooledRenderTextures;
70
+ /** @description 現在のレンダーターゲット(メインまたはアトラス) / Current render target (could be main or atlas) */
41
71
  private currentRenderTarget;
72
+ /** @description 現在のビューポート幅(アトラス描画時はアトラスサイズ) / Current viewport width (atlas size during atlas rendering) */
42
73
  private viewportWidth;
74
+ /** @description 現在のビューポート高さ(アトラス描画時はアトラスサイズ) / Current viewport height (atlas size during atlas rendering) */
43
75
  private viewportHeight;
76
+ /** @description パスコマンド / Path command handler */
44
77
  private pathCommand;
78
+ /** @description バッファマネージャー / Buffer manager */
45
79
  private bufferManager;
80
+ /** @description テクスチャマネージャー / Texture manager */
46
81
  private textureManager;
82
+ /** @description フレームバッファマネージャー / Frame buffer manager */
47
83
  private frameBufferManager;
84
+ /** @description パイプラインマネージャー / Pipeline manager */
48
85
  private pipelineManager;
49
- private computePipelineManager;
50
- private attachmentManager;
86
+ /** @description 新しい描画状態フラグ / New draw state flag */
51
87
  newDrawState: boolean;
88
+ /** @description cacheAsBitmap用の保留中アトラスノードスタック / Pending atlas nodes stack for cacheAsBitmap */
89
+ private readonly _pendingAtlasNodes;
90
+ /** @description コンテナレイヤースタック(フィルター/ブレンド用) / Container layer stack (for filter/blend) */
52
91
  private readonly $containerLayerStack;
92
+ /** @description コンテナレイヤーのコンテンツサイズ / Container layer content sizes */
53
93
  private containerLayerContentSizes;
94
+ /** @description マスク描画モードフラグ(beginMask〜endMask間でtrue) / Mask drawing mode flag (true between beginMask and endMask) */
54
95
  private inMaskMode;
96
+ /** @description ノード領域クリア済みフラグ(beginNodeRendering〜endNodeRendering間で使用) / Node area cleared flag (used between beginNodeRendering and endNodeRendering) */
55
97
  private nodeAreaCleared;
98
+ /** @description 現在のノードのシザー範囲(クリア後に戻すため) / Current node scissor rect (to restore after clearing) */
56
99
  private currentNodeScissor;
100
+ /** @description アトラスレンダーパス統合: 同一アトラスへの連続描画でパスを再利用 / Atlas render pass integration: reuse pass for consecutive draws to the same atlas */
57
101
  private nodeRenderPassAtlasIndex;
102
+ /** @description Dynamic Uniform BindGroup(fill/stencilパイプライン共有、フレームごとに1回作成) / Dynamic Uniform BindGroup (shared by fill/stencil pipelines, created once per frame) */
58
103
  private fillDynamicBindGroup;
104
+ /** @description Dynamic Uniform BindGroupのバッファ / Dynamic Uniform BindGroup buffer */
59
105
  private fillDynamicBindGroupBuffer;
106
+ /** @description clearNodeArea() 用頂点バッファキャッシュ / Vertex buffer cache for clearNodeArea() */
60
107
  private nodeClearQuadBuffer;
108
+ /** @description Storage Buffer + Indirect Drawing を使用するかどうか / Whether to use Storage Buffer + Indirect Drawing */
61
109
  private useOptimizedInstancing;
110
+ /** @description リサイズ後にcanvasContextの再設定が必要かどうか / Whether canvasContext reconfiguration is needed after resize */
62
111
  private $needsReconfigure;
112
+ /** @description Hot Path 用の事前割り当てバッファ / Pre-allocated buffer for hot path */
63
113
  private readonly $uniformData8;
114
+ /** @description Hot Path 用の事前割り当てシザーレクト / Pre-allocated scissor rect for hot path */
64
115
  private readonly $scissorRect;
116
+ /** @description フィルター/コンテナレイヤー用のプリアロケートされた設定オブジェクト / Pre-allocated config object for filter/container layers */
65
117
  private readonly $filterConfig;
118
+ /**
119
+ * @description WebGPUコンテキストを初期化する
120
+ * Initialize the WebGPU context
121
+ *
122
+ * @param {GPUDevice} device - GPUデバイス / GPU device instance
123
+ * @param {GPUCanvasContext} canvas_context - GPUキャンバスコンテキスト / GPU canvas context
124
+ * @param {GPUTextureFormat} preferred_format - 優先テクスチャフォーマット / Preferred texture format
125
+ * @param {number} device_pixel_ratio - デバイスピクセル比 / Device pixel ratio
126
+ */
66
127
  constructor(device: GPUDevice, canvas_context: GPUCanvasContext, preferred_format: GPUTextureFormat, device_pixel_ratio?: number);
67
128
  /**
68
129
  * @description 転送範囲をリセット(フレーム開始)
130
+ * Reset transfer bounds (frame start)
131
+ *
132
+ * @return {void}
69
133
  */
70
134
  clearTransferBounds(): void;
71
135
  /**
72
136
  * @description 背景色を更新
137
+ * Update the background color
138
+ *
139
+ * @param {number} red - 赤色成分 / Red component
140
+ * @param {number} green - 緑色成分 / Green component
141
+ * @param {number} blue - 青色成分 / Blue component
142
+ * @param {number} alpha - アルファ成分 / Alpha component
143
+ * @return {void}
73
144
  */
74
145
  updateBackgroundColor(red: number, green: number, blue: number, alpha: number): void;
75
146
  /**
76
147
  * @description 背景色で塗りつぶす(メインアタッチメント)
148
+ * Fill with background color (main attachment)
149
+ *
150
+ * @return {void}
77
151
  */
78
152
  fillBackgroundColor(): void;
79
153
  /**
80
154
  * @description メインcanvasのサイズを変更
155
+ * Resize the main canvas
156
+ *
157
+ * @param {number} width - 新しい幅 / New width
158
+ * @param {number} height - 新しい高さ / New height
159
+ * @param {boolean} cache_clear - キャッシュをクリアするか / Whether to clear cache
160
+ * @return {void}
81
161
  */
82
162
  resize(width: number, height: number, cache_clear?: boolean): void;
83
- /**
84
- * @description 指定範囲をクリアする
85
- */
86
- clearRect(_x: number, _y: number, _w: number, _h: number): void;
87
163
  /**
88
164
  * @description 現在の2D変換行列を保存
165
+ * Save the current 2D transform matrix
166
+ *
167
+ * @return {void}
89
168
  */
90
169
  save(): void;
91
170
  /**
92
171
  * @description 2D変換行列を復元
172
+ * Restore the 2D transform matrix
173
+ *
174
+ * @return {void}
93
175
  */
94
176
  restore(): void;
95
177
  /**
96
178
  * @description 2D変換行列を設定
179
+ * Set the 2D transform matrix
180
+ *
181
+ * @param {number} a - 水平スケール / Horizontal scale
182
+ * @param {number} b - 垂直スキュー / Vertical skew
183
+ * @param {number} c - 水平スキュー / Horizontal skew
184
+ * @param {number} d - 垂直スケール / Vertical scale
185
+ * @param {number} e - 水平移動 / Horizontal translation
186
+ * @param {number} f - 垂直移動 / Vertical translation
187
+ * @return {void}
97
188
  */
98
189
  setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
99
190
  /**
100
191
  * @description 現在の2D変換行列に対して乗算を行います
192
+ * Multiply the current 2D transform matrix
193
+ *
194
+ * @param {number} a - 水平スケール / Horizontal scale
195
+ * @param {number} b - 垂直スキュー / Vertical skew
196
+ * @param {number} c - 水平スキュー / Horizontal skew
197
+ * @param {number} d - 垂直スケール / Vertical scale
198
+ * @param {number} e - 水平移動 / Horizontal translation
199
+ * @param {number} f - 垂直移動 / Vertical translation
200
+ * @return {void}
101
201
  */
102
202
  transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
103
203
  /**
104
204
  * @description コンテキストの値を初期化する
205
+ * Reset all context values to their initial state
206
+ *
207
+ * @return {void}
105
208
  */
106
209
  reset(): void;
107
210
  /**
108
211
  * @description パスを開始
212
+ * Begin a new path
213
+ *
214
+ * @return {void}
109
215
  */
110
216
  beginPath(): void;
111
217
  /**
112
218
  * @description パスを移動
219
+ * Move the path to the specified point
220
+ *
221
+ * @param {number} x - X座標 / X coordinate
222
+ * @param {number} y - Y座標 / Y coordinate
223
+ * @return {void}
113
224
  */
114
225
  moveTo(x: number, y: number): void;
115
226
  /**
116
227
  * @description パスを線で結ぶ
228
+ * Draw a line to the specified point
229
+ *
230
+ * @param {number} x - X座標 / X coordinate
231
+ * @param {number} y - Y座標 / Y coordinate
232
+ * @return {void}
117
233
  */
118
234
  lineTo(x: number, y: number): void;
119
235
  /**
120
236
  * @description 二次ベジェ曲線を描画
237
+ * Draw a quadratic Bézier curve
238
+ *
239
+ * @param {number} cx - 制御点X / Control point X
240
+ * @param {number} cy - 制御点Y / Control point Y
241
+ * @param {number} x - 終点X / End point X
242
+ * @param {number} y - 終点Y / End point Y
243
+ * @return {void}
121
244
  */
122
245
  quadraticCurveTo(cx: number, cy: number, x: number, y: number): void;
123
246
  /**
124
247
  * @description 塗りつぶしスタイルを設定
248
+ * Set the fill style color
249
+ *
250
+ * @param {number} red - 赤色成分 / Red component
251
+ * @param {number} green - 緑色成分 / Green component
252
+ * @param {number} blue - 青色成分 / Blue component
253
+ * @param {number} alpha - アルファ成分 / Alpha component
254
+ * @return {void}
125
255
  */
126
256
  fillStyle(red: number, green: number, blue: number, alpha: number): void;
127
257
  /**
128
258
  * @description 線のスタイルを設定
259
+ * Set the stroke style color
260
+ *
261
+ * @param {number} red - 赤色成分 / Red component
262
+ * @param {number} green - 緑色成分 / Green component
263
+ * @param {number} blue - 青色成分 / Blue component
264
+ * @param {number} alpha - アルファ成分 / Alpha component
265
+ * @return {void}
129
266
  */
130
267
  strokeStyle(red: number, green: number, blue: number, alpha: number): void;
131
268
  /**
132
269
  * @description パスを閉じる
270
+ * Close the current path
271
+ *
272
+ * @return {void}
133
273
  */
134
274
  closePath(): void;
135
275
  /**
136
276
  * @description 円弧を描画
277
+ * Draw an arc
278
+ *
279
+ * @param {number} x - 中心X / Center X
280
+ * @param {number} y - 中心Y / Center Y
281
+ * @param {number} radius - 半径 / Radius
282
+ * @return {void}
137
283
  */
138
284
  arc(x: number, y: number, radius: number): void;
139
285
  /**
140
286
  * @description 3次ベジェ曲線を描画
287
+ * Draw a cubic Bézier curve
288
+ *
289
+ * @param {number} cx1 - 第1制御点X / First control point X
290
+ * @param {number} cy1 - 第1制御点Y / First control point Y
291
+ * @param {number} cx2 - 第2制御点X / Second control point X
292
+ * @param {number} cy2 - 第2制御点Y / Second control point Y
293
+ * @param {number} x - 終点X / End point X
294
+ * @param {number} y - 終点Y / End point Y
295
+ * @return {void}
141
296
  */
142
297
  bezierCurveTo(cx1: number, cy1: number, cx2: number, cy2: number, x: number, y: number): void;
143
298
  /**
144
299
  * @description 描画メソッド共通: レンダーパスの確保とノード領域クリア
300
+ * Common drawing method: ensure render pass and clear node area
145
301
  * fill(), stroke(), gradientFill(), bitmapFill(), gradientStroke(), bitmapStroke() で使用
302
+ *
303
+ * @return {void}
146
304
  */
147
305
  private ensureFillRenderPass;
148
306
  /**
149
307
  * @description 塗りつぶしを実行(Loop-Blinn方式対応)
308
+ * Execute fill operation (with Loop-Blinn support)
309
+ *
310
+ * @return {void}
150
311
  */
151
312
  fill(): void;
152
313
  /**
153
314
  * @description Dynamic Uniform BindGroupを取得(フレーム内で初回呼び出し時に作成)
315
+ * Get or create the Dynamic Uniform BindGroup (created on first call within a frame)
316
+ *
317
+ * @return {GPUBindGroup} Dynamic Uniform BindGroup
154
318
  */
155
319
  private getOrCreateFillDynamicBindGroup;
156
320
  /**
157
321
  * @description fill/stroke用のcolor/matrix uniformを書き込む
158
- * FillUniforms構造体: color(vec4) + matrix0(vec4) + matrix1(vec4) + matrix2(vec4) = 64 bytes
159
- * @return Dynamic Uniform Buffer内のアライメント済みオフセット
322
+ * Write color/matrix uniform for fill/stroke operations
323
+ * FillUniforms構造体: color(vec4) + matrix0(vec4) + matrix1(vec4) + matrix2(vec4) = 64 bytes
324
+ *
325
+ * @param {number} red - 赤色成分 / Red component
326
+ * @param {number} green - 緑色成分 / Green component
327
+ * @param {number} blue - 青色成分 / Blue component
328
+ * @param {number} alpha - アルファ成分 / Alpha component
329
+ * @param {number} a - 変換行列a / Transform matrix a
330
+ * @param {number} b - 変換行列b / Transform matrix b
331
+ * @param {number} c - 変換行列c / Transform matrix c
332
+ * @param {number} d - 変換行列d / Transform matrix d
333
+ * @param {number} tx - 変換行列tx / Transform matrix tx
334
+ * @param {number} ty - 変換行列ty / Transform matrix ty
335
+ * @param {number} viewport_width - ビューポート幅 / Viewport width
336
+ * @param {number} viewport_height - ビューポート高さ / Viewport height
337
+ * @return {number} Dynamic Uniform Buffer内のアライメント済みオフセット / Aligned offset in the Dynamic Uniform Buffer
160
338
  */
161
339
  private writeFillUniform;
162
340
  /**
163
341
  * @description 2パスステンシルフィル(アトラス用)
342
+ * Two-pass stencil fill (for atlas)
343
+ *
344
+ * @param {GPUBuffer} vertex_buffer - 頂点バッファ / Vertex buffer
345
+ * @param {number} vertex_count - 頂点数 / Vertex count
346
+ * @param {GPUBindGroup} bind_group - バインドグループ / Bind group
347
+ * @param {number} uniform_offset - ユニフォームオフセット / Uniform offset
348
+ * @return {void}
164
349
  */
165
350
  private fillWithStencil;
166
351
  /**
167
352
  * @description 2パスステンシルフィル(メインキャンバス用)
353
+ * Two-pass stencil fill (for main canvas)
354
+ *
355
+ * @param {GPUBuffer} vertex_buffer - 頂点バッファ / Vertex buffer
356
+ * @param {number} vertex_count - 頂点数 / Vertex count
357
+ * @param {GPUBindGroup} bind_group - バインドグループ / Bind group
358
+ * @param {number} uniform_offset - ユニフォームオフセット / Uniform offset
359
+ * @return {void}
168
360
  */
169
361
  private fillWithStencilMain;
170
362
  /**
171
363
  * @description 単純なフィル(ステンシルなし、キャンバス描画用)
364
+ * Simple fill (no stencil, for canvas rendering)
365
+ *
366
+ * @param {GPUBuffer} vertex_buffer - 頂点バッファ / Vertex buffer
367
+ * @param {number} vertex_count - 頂点数 / Vertex count
368
+ * @param {boolean} use_stencil_pipeline - ステンシルパイプラインを使用するか / Whether to use stencil pipeline
369
+ * @param {GPUBindGroup} bind_group - バインドグループ / Bind group
370
+ * @param {number} uniform_offset - ユニフォームオフセット / Uniform offset
371
+ * @return {void}
172
372
  */
173
373
  private fillSimple;
174
- /**
175
- * @description オフスクリーンアタッチメントにバインド
176
- * WebGL: FrameBufferManagerBindAttachmentObjectService
177
- */
178
- bindAttachment(attachment: IAttachmentObject): void;
179
- /**
180
- * @description メインキャンバスにバインド
181
- * WebGL: FrameBufferManagerUnBindAttachmentObjectService
182
- */
183
- unbindAttachment(): void;
184
- /**
185
- * @description アタッチメントオブジェクトを取得
186
- * WebGL: FrameBufferManagerGetAttachmentObjectUseCase
187
- */
188
- getAttachmentObject(width: number, height: number, msaa?: boolean): IAttachmentObject;
189
- /**
190
- * @description アタッチメントオブジェクトを解放
191
- * WebGL: FrameBufferManagerReleaseAttachmentObjectUseCase
192
- */
193
- releaseAttachment(attachment: IAttachmentObject): void;
194
374
  /**
195
375
  * @description 線の描画を実行(WebGL版と同じ仕様)
376
+ * Execute stroke drawing (same specification as WebGL version)
196
377
  * WebGL版と同様に、ストロークを塗りとして描画する
378
+ *
379
+ * @return {void}
197
380
  */
198
381
  stroke(): void;
199
382
  /**
200
383
  * @description グラデーションの塗りつぶしを実行
384
+ * Execute gradient fill
385
+ *
386
+ * @param {number} type - グラデーションタイプ / Gradient type
387
+ * @param {number[]} stops - カラーストップ配列 / Color stop array
388
+ * @param {Float32Array} matrix - グラデーション変換行列 / Gradient transform matrix
389
+ * @param {number} spread - スプレッドメソッド / Spread method
390
+ * @param {number} interpolation - 補間方法 / Interpolation method
391
+ * @param {number} focal - 焦点距離 / Focal point ratio
392
+ * @return {void}
201
393
  */
202
394
  gradientFill(type: number, stops: number[], matrix: Float32Array, spread: number, interpolation: number, focal: number): void;
203
395
  /**
204
396
  * @description ビットマップの塗りつぶしを実行
397
+ * Execute bitmap fill
398
+ *
399
+ * @param {Uint8Array} pixels - ピクセルデータ / Pixel data
400
+ * @param {Float32Array} matrix - ビットマップ変換行列 / Bitmap transform matrix
401
+ * @param {number} width - ビットマップ幅 / Bitmap width
402
+ * @param {number} height - ビットマップ高さ / Bitmap height
403
+ * @param {boolean} repeat - 繰り返しフラグ / Repeat flag
404
+ * @param {boolean} smooth - スムージングフラグ / Smoothing flag
405
+ * @return {void}
205
406
  */
206
407
  bitmapFill(pixels: Uint8Array, matrix: Float32Array, width: number, height: number, repeat: boolean, smooth: boolean): void;
207
408
  /**
208
409
  * @description グラデーション線の描画を実行
410
+ * Execute gradient stroke drawing
411
+ *
412
+ * @param {number} type - グラデーションタイプ / Gradient type
413
+ * @param {number[]} stops - カラーストップ配列 / Color stop array
414
+ * @param {Float32Array} matrix - グラデーション変換行列 / Gradient transform matrix
415
+ * @param {number} spread - スプレッドメソッド / Spread method
416
+ * @param {number} interpolation - 補間方法 / Interpolation method
417
+ * @param {number} focal - 焦点距離 / Focal point ratio
418
+ * @return {void}
209
419
  */
210
420
  gradientStroke(type: number, stops: number[], matrix: Float32Array, spread: number, interpolation: number, focal: number): void;
211
421
  /**
212
422
  * @description ビットマップ線の描画を実行
423
+ * Execute bitmap stroke drawing
424
+ *
425
+ * @param {Uint8Array} pixels - ピクセルデータ / Pixel data
426
+ * @param {Float32Array} matrix - ビットマップ変換行列 / Bitmap transform matrix
427
+ * @param {number} width - ビットマップ幅 / Bitmap width
428
+ * @param {number} height - ビットマップ高さ / Bitmap height
429
+ * @param {boolean} repeat - 繰り返しフラグ / Repeat flag
430
+ * @param {boolean} smooth - スムージングフラグ / Smoothing flag
431
+ * @return {void}
213
432
  */
214
433
  bitmapStroke(pixels: Uint8Array, matrix: Float32Array, width: number, height: number, repeat: boolean, smooth: boolean): void;
215
434
  /**
216
435
  * @description マスク処理を実行
436
+ * Execute mask clipping operation
217
437
  * WebGL版と同様にステンシルバッファを使用したクリッピング
218
438
  * メインアタッチメントとアトラス両方でマスク処理をサポート
439
+ *
440
+ * @return {void}
219
441
  */
220
442
  clip(): void;
221
443
  /**
222
444
  * @description アタッチメントオブジェクトをバインド
445
+ * Bind an attachment object
446
+ *
447
+ * @param {IAttachmentObject} attachment_object - バインドするアタッチメント / Attachment to bind
448
+ * @return {void}
223
449
  */
224
450
  bind(attachment_object: IAttachmentObject): void;
225
451
  /**
226
452
  * @description 現在のアタッチメントオブジェクトを取得
453
+ * Get the current attachment object
227
454
  * アトラスがバインドされていない場合はメインアタッチメントを返す
228
455
  * When no atlas is bound, returns the main attachment
456
+ *
457
+ * @return {IAttachmentObject | null} 現在のアタッチメント / Current attachment
229
458
  */
230
459
  get currentAttachmentObject(): IAttachmentObject | null;
231
460
  /**
232
461
  * @description アトラス専用のアタッチメントオブジェクトを取得
462
+ * Get the atlas-specific attachment object
463
+ *
464
+ * @return {IAttachmentObject | null} アトラスアタッチメント / Atlas attachment
233
465
  */
234
466
  get atlasAttachmentObject(): IAttachmentObject | null;
235
467
  /**
236
468
  * @description グリッドの描画データをセット
469
+ * Set grid drawing data
470
+ *
471
+ * @param {Float32Array | null} grid_data - グリッドデータ / Grid data
472
+ * @return {void}
237
473
  */
238
474
  useGrid(grid_data: Float32Array | null): void;
239
475
  /**
240
476
  * @description 指定のノード範囲で描画を開始(アトラステクスチャへの描画)
477
+ * Begin rendering for the specified node region (drawing to atlas texture)
241
478
  * 2パスステンシルフィル対応: ステンシルバッファ付きレンダーパスを使用
479
+ *
480
+ * @param {Node} node - 描画対象ノード / Target node for rendering
481
+ * @return {void}
242
482
  */
243
483
  beginNodeRendering(node: Node): void;
244
484
  /**
245
485
  * @description ノード領域がまだクリアされていない場合にクリアを実行
486
+ * Clear the node area if it has not been cleared yet
246
487
  * 最初の描画操作(fill, gradientFill, gradientStroke等)で呼び出される
488
+ *
489
+ * @return {void}
247
490
  */
248
491
  private ensureNodeAreaCleared;
249
492
  /**
250
493
  * @description ノード領域をクリア(透明色 + ステンシル=0)
494
+ * Clear the node area (transparent color + stencil=0)
251
495
  * WebGL版の gl.clear(COLOR_BUFFER_BIT | STENCIL_BUFFER_BIT) と同等
496
+ *
497
+ * @return {void}
252
498
  */
253
499
  private clearNodeArea;
254
500
  /**
255
501
  * @description 指定のノード範囲で描画を終了
502
+ * End rendering for the current node region
256
503
  * レンダーパスは終了しない(次のbeginNodeRenderingで再利用するため)
504
+ *
505
+ * @return {void}
257
506
  */
258
507
  endNodeRendering(): void;
259
508
  /**
260
509
  * @description 塗りの描画を実行
510
+ * Execute fill drawing
511
+ *
512
+ * @return {void}
261
513
  */
262
514
  drawFill(): void;
263
515
  /**
264
516
  * @description インスタンスを描画
517
+ * Draw a display object instance
518
+ *
519
+ * @param {Node} node - 描画対象ノード / Target node
520
+ * @param {number} x_min - バウンディングボックス左端 / Bounding box left
521
+ * @param {number} y_min - バウンディングボックス上端 / Bounding box top
522
+ * @param {number} x_max - バウンディングボックス右端 / Bounding box right
523
+ * @param {number} y_max - バウンディングボックス下端 / Bounding box bottom
524
+ * @param {Float32Array} color_transform - カラー変換パラメータ / Color transform parameters
525
+ * @return {void}
265
526
  */
266
527
  drawDisplayObject(node: Node, x_min: number, y_min: number, x_max: number, y_max: number, color_transform: Float32Array): void;
267
528
  /**
268
529
  * @description インスタンス配列を描画
269
530
  * Draw instanced arrays
270
531
  *
271
- * useOptimizedInstancingがtrueの場合、Storage BufferとIndirect Drawingを使用。
272
- * - Storage Buffer: メモリアロケーション削減、CPU負荷15-25%軽減
273
- * - Indirect Drawing: CPU-GPUオーバーヘッド5-15%削減
532
+ * useOptimizedInstancingがtrueの場合、Storage BufferとIndirect Drawingを使用。
533
+ * - Storage Buffer: メモリアロケーション削減、CPU負荷15-25%軽減
534
+ * - Indirect Drawing: CPU-GPUオーバーヘッド5-15%削減
274
535
  *
536
+ * @return {void}
275
537
  */
276
538
  drawArraysInstanced(): void;
277
- /**
278
- * @description 最適化インスタンス描画の有効/無効を設定
279
- * Enable or disable optimized instancing
280
- *
281
- */
282
- setOptimizedInstancing(enabled: boolean): void;
283
- /**
284
- * @description 最適化インスタンス描画が有効かどうか
285
- * Whether optimized instancing is enabled
286
- *
287
- */
288
- isOptimizedInstancingEnabled(): boolean;
289
539
  /**
290
540
  * @description 複雑なブレンドモードのキューを処理
541
+ * Process the complex blend mode queue
542
+ *
543
+ * @return {void}
291
544
  */
292
545
  private processComplexBlendQueue;
293
546
  /**
294
547
  * @description インスタンス配列をクリア
548
+ * Clear instanced arrays
549
+ *
550
+ * @return {void}
295
551
  */
296
552
  clearArraysInstanced(): void;
297
553
  /**
298
554
  * @description ピクセルバッファをNodeの指定箇所に転送
555
+ * Transfer pixel buffer to the specified position of the Node
299
556
  * WebGPUでは、Shapeのシェーダーが-ndc.yでY軸反転しているため、
300
557
  * Bitmapも同じ方向になるよう画像を上下反転して書き込む
558
+ *
559
+ * @param {Node} node - 描画対象ノード / Target node
560
+ * @param {Uint8Array} pixels - ピクセルデータ / Pixel data
561
+ * @return {void}
301
562
  */
302
563
  drawPixels(node: Node, pixels: Uint8Array): void;
303
564
  /**
304
565
  * @description 一時テクスチャ経由でピクセルデータをMSAAテクスチャに描画
566
+ * Draw pixel data to MSAA texture via a temporary texture
567
+ *
568
+ * @param {IAttachmentObject} attachment - アタッチメントオブジェクト / Attachment object
569
+ * @param {Node} node - 描画対象ノード / Target node
570
+ * @param {Uint8Array} pixels - ピクセルデータ / Pixel data
571
+ * @param {number} width - 幅 / Width
572
+ * @param {number} height - 高さ / Height
573
+ * @return {void}
305
574
  */
306
575
  private drawPixelsToMsaa;
307
576
  /**
308
577
  * @description OffscreenCanvasをNodeの指定箇所に転送
578
+ * Transfer OffscreenCanvas to the specified position of the Node
309
579
  * WebGPUでは、Shapeのシェーダーが-ndc.yでY軸反転しているため、
310
580
  * Bitmapも同じ方向になるよう画像を上下反転して書き込む
581
+ *
582
+ * @param {Node} node - 描画対象ノード / Target node
583
+ * @param {OffscreenCanvas | ImageBitmap} element - 描画要素 / Element to draw
584
+ * @param {boolean} flip_y - Y軸反転フラグ / Y-axis flip flag
585
+ * @return {void}
311
586
  */
312
- drawElement(node: Node, element: OffscreenCanvas | ImageBitmap, flipY?: boolean): void;
587
+ drawElement(node: Node, element: OffscreenCanvas | ImageBitmap, flip_y?: boolean): void;
313
588
  /**
314
589
  * @description 一時テクスチャ経由でMSAAテクスチャに直接描画
590
+ * Draw to MSAA texture directly via a temporary texture
591
+ *
592
+ * @param {IAttachmentObject} attachment - アタッチメントオブジェクト / Attachment object
593
+ * @param {Node} node - 描画対象ノード / Target node
594
+ * @param {OffscreenCanvas | ImageBitmap} element - 描画要素 / Element to draw
595
+ * @param {number} width - 幅 / Width
596
+ * @param {number} height - 高さ / Height
597
+ * @param {boolean} flip_y - Y軸反転フラグ / Y-axis flip flag
598
+ * @return {void}
315
599
  */
316
600
  private drawElementToMsaa;
317
601
  /**
318
602
  * @description 一時テクスチャ経由で通常テクスチャに描画(非MSAA版)
603
+ * Draw to a regular texture via a temporary texture (non-MSAA version)
604
+ *
605
+ * @param {IAttachmentObject} attachment - アタッチメントオブジェクト / Attachment object
606
+ * @param {Node} node - 描画対象ノード / Target node
607
+ * @param {OffscreenCanvas | ImageBitmap} element - 描画要素 / Element to draw
608
+ * @param {number} width - 幅 / Width
609
+ * @param {number} height - 高さ / Height
610
+ * @param {boolean} flip_y - Y軸反転フラグ / Y-axis flip flag
611
+ * @return {void}
319
612
  */
320
613
  private drawElementToTexture;
321
614
  /**
322
615
  * @description フィルターを適用
616
+ * Apply filter effects
617
+ *
618
+ * @param {Node} node - 描画対象ノード / Target node
619
+ * @param {string} _unique_key - ユニークキー / Unique key
620
+ * @param {boolean} _updated - 更新フラグ / Updated flag
621
+ * @param {number} width - 幅 / Width
622
+ * @param {number} height - 高さ / Height
623
+ * @param {boolean} _is_bitmap - ビットマップかどうか / Whether it is a bitmap
624
+ * @param {Float32Array} matrix - 変換行列 / Transform matrix
625
+ * @param {Float32Array} color_transform - カラー変換パラメータ / Color transform parameters
626
+ * @param {IBlendMode} blend_mode - ブレンドモード / Blend mode
627
+ * @param {Float32Array} bounds - バウンディングボックス / Bounding box
628
+ * @param {Float32Array} params - フィルターパラメータ / Filter parameters
629
+ * @return {void}
323
630
  */
324
631
  applyFilter(node: Node, _unique_key: string, _updated: boolean, width: number, height: number, _is_bitmap: boolean, matrix: Float32Array, color_transform: Float32Array, blend_mode: IBlendMode, bounds: Float32Array, params: Float32Array): void;
325
632
  /**
326
633
  * @description コンテナのフィルター/ブレンド用のレイヤーを開始
327
634
  * Begin a container layer for filter/blend processing
328
635
  *
636
+ * @param {number} width - レイヤー幅 / Layer width
637
+ * @param {number} height - レイヤー高さ / Layer height
638
+ * @return {void}
329
639
  */
330
640
  containerBeginLayer(width: number, height: number): void;
331
641
  /**
332
642
  * @description コンテナのフィルター/ブレンド用レイヤーを終了し、結果を元のメインに合成
333
643
  * End the container layer and composite the result back to the original main
334
644
  *
335
- * @param {IBlendMode} blend_mode
336
- * @param {Float32Array} matrix
337
- * @param {Float32Array | null} color_transform
338
- * @param {boolean} use_filter
339
- * @param {Float32Array | null} filter_bounds
340
- * @param {Float32Array | null} filter_params
341
- * @param {string} unique_key
342
- * @param {string} filter_key
645
+ * @param {IBlendMode} blend_mode - ブレンドモード / Blend mode
646
+ * @param {Float32Array} matrix - 変換行列 / Transform matrix
647
+ * @param {Float32Array | null} color_transform - カラー変換パラメータ / Color transform parameters
648
+ * @param {boolean} use_filter - フィルター使用フラグ / Whether to use filter
649
+ * @param {Float32Array | null} filter_bounds - フィルターバウンド / Filter bounds
650
+ * @param {Float32Array | null} filter_params - フィルターパラメータ / Filter parameters
651
+ * @param {string} unique_key - ユニークキー / Unique key
652
+ * @param {string} filter_key - フィルターキー / Filter key
653
+ * @return {void}
343
654
  */
344
655
  containerEndLayer(blend_mode: IBlendMode, matrix: Float32Array, color_transform: Float32Array | null, use_filter: boolean, filter_bounds: Float32Array | null, filter_params: Float32Array | null, unique_key: string, filter_key: string): void;
656
+ /**
657
+ * @description cacheAsBitmap: temp FBO作成→子要素描画開始
658
+ * Begin container cacheAsBitmap: create temp bgra8unorm FBO for children,
659
+ * allocate atlas node for later copy
660
+ *
661
+ * @param {number} width - ノード幅 / Node width
662
+ * @param {number} height - ノード高さ / Node height
663
+ * @return {Node}
664
+ */
665
+ containerBeginAtlasNode(width: number, height: number): Node;
666
+ /**
667
+ * @description cacheAsBitmap: temp FBO→アトラスノードへコピー
668
+ * End container cacheAsBitmap: copy temp FBO content to atlas node,
669
+ * release temp FBO
670
+ *
671
+ * @return {void}
672
+ */
673
+ containerEndAtlasNode(): void;
674
+ /**
675
+ * @description temp FBOの内容をアトラスノード領域にコピー
676
+ * Copy temp FBO content to the atlas node region using texture_copy pipeline
677
+ *
678
+ * @param {IAttachmentObject} temp_attachment - コピー元のtemp FBO / Source temp FBO
679
+ * @param {Node} node - コピー先のアトラスノード / Destination atlas node
680
+ * @return {void}
681
+ */
682
+ private copyTempToAtlasNode;
345
683
  /**
346
684
  * @description キャッシュされたコンテナフィルターテクスチャをメインに描画
347
685
  * Draw a cached container filter texture to the main attachment
348
686
  *
349
- * @param {IBlendMode} blend_mode
350
- * @param {Float32Array} matrix
351
- * @param {Float32Array} color_transform
352
- * @param {Float32Array} filter_bounds
353
- * @param {string} unique_key
354
- * @param {string} filter_key
687
+ * @param {IBlendMode} blend_mode - ブレンドモード / Blend mode
688
+ * @param {Float32Array} matrix - 変換行列 / Transform matrix
689
+ * @param {Float32Array} color_transform - カラー変換パラメータ / Color transform parameters
690
+ * @param {Float32Array} filter_bounds - フィルターバウンド / Filter bounds
691
+ * @param {string} unique_key - ユニークキー / Unique key
692
+ * @param {string} filter_key - フィルターキー / Filter key
693
+ * @return {void}
355
694
  */
356
695
  containerDrawCachedFilter(blend_mode: IBlendMode, matrix: Float32Array, color_transform: Float32Array, filter_bounds: Float32Array, unique_key: string, filter_key: string): void;
357
696
  /**
358
697
  * @description メインテクスチャを確保(フレーム開始時に一度だけgetCurrentTexture呼び出し)
698
+ * Ensure the main texture is acquired (calls getCurrentTexture once per frame)
699
+ *
700
+ * @return {void}
359
701
  */
360
702
  private ensureMainTexture;
361
703
  /**
362
704
  * @description 現在の描画ターゲットのテクスチャビューを取得
705
+ * Get the texture view of the current render target
706
+ *
707
+ * @return {GPUTextureView} 現在のテクスチャビュー / Current texture view
363
708
  */
364
709
  private getCurrentTextureView;
365
710
  /**
366
711
  * @description コマンドエンコーダーが存在することを保証
712
+ * Ensure the command encoder exists
713
+ *
714
+ * @return {void}
367
715
  */
368
716
  private ensureCommandEncoder;
369
717
  /**
370
718
  * @description フレーム開始(レンダリング開始前に呼ぶ)
719
+ * Begin a new frame (call before rendering starts)
720
+ *
721
+ * @return {void}
371
722
  */
372
723
  beginFrame(): void;
373
724
  /**
374
725
  * @description フレームごとのプール管理テクスチャを追加(endFrame()でプールに返却)
726
+ * Add a pooled texture for the current frame (returned to pool in endFrame())
727
+ *
728
+ * @param {GPUTexture} texture - プール管理テクスチャ / Pooled texture
729
+ * @return {void}
375
730
  */
376
731
  addFrameTexture(texture: GPUTexture): void;
377
732
  /**
378
733
  * @description フレーム終了とコマンド送信(レンダリング完了後に呼ぶ)
734
+ * End the frame and submit commands (call after rendering is complete)
735
+ *
736
+ * @return {void}
379
737
  */
380
738
  endFrame(): void;
381
739
  /**
382
740
  * @description コマンドを送信(後方互換性のため残す)
741
+ * Submit commands (kept for backward compatibility)
742
+ *
743
+ * @return {void}
383
744
  */
384
745
  submit(): void;
385
746
  /**
386
747
  * @description ノードを作成
748
+ * Create a node in the texture atlas
387
749
  * アトラスがいっぱいの場合は新しいアトラスを作成して再試行
750
+ *
751
+ * @param {number} width - ノード幅 / Node width
752
+ * @param {number} height - ノード高さ / Node height
753
+ * @return {Node} 作成されたノード / Created node
388
754
  */
389
755
  createNode(width: number, height: number): Node;
390
756
  /**
391
757
  * @description ノードを削除
758
+ * Remove a node from the texture atlas
759
+ *
760
+ * @param {Node} node - 削除対象ノード / Node to remove
761
+ * @return {void}
392
762
  */
393
763
  removeNode(node: Node): void;
394
764
  /**
395
765
  * @description フレームバッファの描画情報をキャンバスに転送
766
+ * Transfer frame buffer contents to the canvas
396
767
  * スワップチェーンはCopyDstをサポートしないため、レンダーパスでブリット
768
+ *
769
+ * @return {void}
397
770
  */
398
771
  transferMainCanvas(): void;
399
772
  /**
400
773
  * @description ImageBitmapを生成
774
+ * Create an ImageBitmap from the current rendering result
775
+ *
776
+ * @param {number} width - 画像幅 / Image width
777
+ * @param {number} height - 画像高さ / Image height
778
+ * @return {Promise<ImageBitmap>} 生成されたImageBitmap / Created ImageBitmap
401
779
  */
402
780
  createImageBitmap(width: number, height: number): Promise<ImageBitmap>;
403
781
  /**
404
782
  * @description マスク描画の開始準備
405
783
  * Prepare to start drawing the mask
406
784
  *
785
+ * @return {void}
407
786
  */
408
787
  beginMask(): void;
409
788
  /**
410
789
  * @description マスクの描画範囲を設定
411
790
  * Set the mask drawing bounds
412
791
  *
413
- * @param {number} x_min
414
- * @param {number} y_min
415
- * @param {number} x_max
416
- * @param {number} y_max
792
+ * @param {number} x_min - 最小X座標 / Minimum X coordinate
793
+ * @param {number} y_min - 最小Y座標 / Minimum Y coordinate
794
+ * @param {number} x_max - 最大X座標 / Maximum X coordinate
795
+ * @param {number} y_max - 最大Y座標 / Maximum Y coordinate
796
+ * @return {void}
417
797
  */
418
798
  setMaskBounds(x_min: number, y_min: number, x_max: number, y_max: number): void;
419
799
  /**
420
800
  * @description マスクの描画を終了
421
801
  * End mask drawing
422
802
  *
803
+ * @return {void}
423
804
  */
424
805
  endMask(): void;
425
806
  /**
426
807
  * @description マスクの終了処理
427
- * Mask end processing
808
+ * Mask end processing (leave the mask)
428
809
  *
810
+ * @return {void}
429
811
  */
430
812
  leaveMask(): void;
431
813
  }