@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
@@ -3,28 +3,36 @@
3
3
  * Gradient LUT texture generator
4
4
  */
5
5
  /**
6
- * @description ストップ数に応じた適応解像度を取得
7
- * @param {number} stopsLength
8
- * @return {number}
6
+ * @description ストップ数に応じた適応解像度を取得する
7
+ * Get adaptive resolution based on the number of gradient stops
8
+ *
9
+ * @param {number} stops_length - ストップ数 / Number of gradient stops
10
+ * @return {number} 解像度 (256, 512, or 1024) / Resolution
11
+ * @method
12
+ * @protected
9
13
  */
10
- export const getAdaptiveResolution = (stopsLength) => {
11
- if (stopsLength <= 4) {
14
+ export const getAdaptiveResolution = (stops_length) => {
15
+ if (stops_length <= 4) {
12
16
  return 256;
13
17
  }
14
- if (stopsLength <= 8) {
18
+ if (stops_length <= 8) {
15
19
  return 512;
16
20
  }
17
21
  return 1024;
18
22
  };
19
23
  /**
20
- * @description グラデーションLUTテクスチャデータを生成
24
+ * @description グラデーションLUTテクスチャデータを生成する
25
+ * Generate gradient LUT texture data.
21
26
  * stops配列: [offset, R, G, B, A, offset, R, G, B, A, ...]
22
27
  * 注意: R, G, B, A は 0-255 範囲
23
28
  * LUTは0-1の範囲の色を生成し、spread処理はシェーダー側で行う
24
- * @param {number[]} stops - グラデーションストップ配列
25
- * @param {number} _spread - スプレッドメソッド(未使用、シェーダー側で処理)
26
- * @param {number} interpolation - 補間方法 (0: linearRGB, 1: RGB) ※WebGL互換
27
- * @return {Uint8Array}
29
+ *
30
+ * @param {number[]} stops - グラデーションストップ配列 / Gradient stop array
31
+ * @param {number} _spread - スプレッドメソッド(未使用、シェーダー側で処理)/ Spread method (unused, handled by shader)
32
+ * @param {number} interpolation - 補間方法 (0: linearRGB, 1: RGB) / Interpolation method (WebGL compatible)
33
+ * @return {Uint8Array} LUTテクスチャデータ / LUT texture data
34
+ * @method
35
+ * @protected
28
36
  */
29
37
  export const generateGradientLUT = (stops, _spread, interpolation) => {
30
38
  // ストップ数を計算(5要素ずつ: offset, R, G, B, A)
@@ -37,7 +45,7 @@ export const generateGradientLUT = (stops, _spread, interpolation) => {
37
45
  for (let i = 0; i < resolution; i++) {
38
46
  const t = i / (resolution - 1);
39
47
  // 色を補間(色は0-255範囲で返される)
40
- const color = interpolateColor(stops, t, interpolation);
48
+ const color = $interpolateColor(stops, t, interpolation);
41
49
  // WebGL版と同じ: プリマルチプライドアルファは適用しない
42
50
  // LUTにはストレート(非プリマルチプライド)の色を格納
43
51
  // プリマルチプライドはシェーダー側でサンプリング後に行う
@@ -52,14 +60,18 @@ export const generateGradientLUT = (stops, _spread, interpolation) => {
52
60
  return lutData;
53
61
  };
54
62
  /**
55
- * @description 色を補間
63
+ * @description 色を補間する
64
+ * Interpolate color between gradient stops.
56
65
  * 色は0-255範囲で入力され、0-255範囲で出力される
57
- * @param {number[]} stops
58
- * @param {number} t
59
- * @param {number} interpolation - 0: linearRGB, 1: RGB(WebGL互換)
60
- * @return {{ r: number, g: number, b: number, a: number }}
66
+ * Colors are input in 0-255 range and output in 0-255 range.
67
+ *
68
+ * @param {number[]} stops - グラデーションストップ配列 / Gradient stop array
69
+ * @param {number} t - 補間位置 (0-1) / Interpolation position (0-1)
70
+ * @param {number} interpolation - 補間方法 (0: linearRGB, 1: RGB) / Interpolation method (WebGL compatible)
71
+ * @return {{ r: number, g: number, b: number, a: number }} 補間された色 / Interpolated color
72
+ * @private
61
73
  */
62
- const interpolateColor = (stops, t, interpolation) => {
74
+ const $interpolateColor = (stops, t, interpolation) => {
63
75
  const stopsLength = stops.length / 5;
64
76
  // 最初と最後のストップを見つける
65
77
  let startIdx = 0;
@@ -107,49 +119,68 @@ const interpolateColor = (stops, t, interpolation) => {
107
119
  // linearRGB補間(ガンマ補正)
108
120
  // 0-255 → 0-1に正規化してからリニア変換
109
121
  return {
110
- "r": linearToSRGB(lerp(sRGBToLinear(startR / 255), sRGBToLinear(endR / 255), localT)) * 255,
111
- "g": linearToSRGB(lerp(sRGBToLinear(startG / 255), sRGBToLinear(endG / 255), localT)) * 255,
112
- "b": linearToSRGB(lerp(sRGBToLinear(startB / 255), sRGBToLinear(endB / 255), localT)) * 255,
113
- "a": lerp(startA, endA, localT)
122
+ "r": $linearToSRGB($lerp($sRGBToLinear(startR / 255), $sRGBToLinear(endR / 255), localT)) * 255,
123
+ "g": $linearToSRGB($lerp($sRGBToLinear(startG / 255), $sRGBToLinear(endG / 255), localT)) * 255,
124
+ "b": $linearToSRGB($lerp($sRGBToLinear(startB / 255), $sRGBToLinear(endB / 255), localT)) * 255,
125
+ "a": $lerp(startA, endA, localT)
114
126
  };
115
127
  }
116
128
  // RGB補間(リニア、デフォルト)- 0-255範囲でそのまま補間
117
129
  return {
118
- "r": lerp(startR, endR, localT),
119
- "g": lerp(startG, endG, localT),
120
- "b": lerp(startB, endB, localT),
121
- "a": lerp(startA, endA, localT)
130
+ "r": $lerp(startR, endR, localT),
131
+ "g": $lerp(startG, endG, localT),
132
+ "b": $lerp(startB, endB, localT),
133
+ "a": $lerp(startA, endA, localT)
122
134
  };
123
135
  };
124
136
  /**
125
- * @description 線形補間
137
+ * @description 線形補間を行う
138
+ * Perform linear interpolation between two values
139
+ *
140
+ * @param {number} a - 開始値 / Start value
141
+ * @param {number} b - 終了値 / End value
142
+ * @param {number} t - 補間係数 (0-1) / Interpolation factor (0-1)
143
+ * @return {number} 補間結果 / Interpolated result
144
+ * @private
126
145
  */
127
- const lerp = (a, b, t) => {
146
+ const $lerp = (a, b, t) => {
128
147
  return a + (b - a) * t;
129
148
  };
130
149
  /**
131
- * @description sRGBからリニアへ変換(入力: 0-1正規化値)
150
+ * @description sRGBからリニア色空間へ変換する(入力: 0-1正規化値)
151
+ * Convert from sRGB to linear color space (input: 0-1 normalized value).
132
152
  * WebGL版と同じガンマ値 2.23333333 を使用
153
+ *
154
+ * @param {number} value - sRGB色空間の正規化値 (0-1) / Normalized value in sRGB color space
155
+ * @return {number} リニア色空間の値 / Value in linear color space
156
+ * @private
133
157
  */
134
- const sRGBToLinear = (value) => {
135
- // WebGL版と同じ簡易ガンマ補正
158
+ const $sRGBToLinear = (value) => {
136
159
  return Math.pow(value, 2.23333333);
137
160
  };
138
161
  /**
139
- * @description リニアからsRGBへ変換(出力: 0-1正規化値)
162
+ * @description リニア色空間からsRGBへ変換する(出力: 0-1正規化値)
163
+ * Convert from linear color space to sRGB (output: 0-1 normalized value).
140
164
  * WebGL版と同じガンマ値 0.45454545 (= 1/2.2) を使用
165
+ *
166
+ * @param {number} value - リニア色空間の値 / Value in linear color space
167
+ * @return {number} sRGB色空間の正規化値 / Normalized value in sRGB color space
168
+ * @private
141
169
  */
142
- const linearToSRGB = (value) => {
143
- // WebGL版と同じ簡易ガンマ補正
170
+ const $linearToSRGB = (value) => {
144
171
  return Math.pow(value, 0.45454545);
145
172
  };
146
173
  /**
147
- * @description フィルター用グラデーションLUTテクスチャデータを生成
174
+ * @description フィルター用グラデーションLUTテクスチャデータを生成する
175
+ * Generate gradient LUT texture data for filters.
148
176
  * ratios, colors, alphas配列から1D LUTを生成
149
- * @param {Float32Array} ratios - 比率配列 (0-255)
150
- * @param {Float32Array} colors - 色配列 (32bit整数)
151
- * @param {Float32Array} alphas - アルファ配列 (0-1)
152
- * @return {Uint8Array}
177
+ *
178
+ * @param {Float32Array} ratios - 比率配列 (0-255) / Ratio array (0-255)
179
+ * @param {Float32Array} colors - 色配列 (32bit整数) / Color array (32-bit integers)
180
+ * @param {Float32Array} alphas - アルファ配列 (0-1) / Alpha array (0-1)
181
+ * @return {Uint8Array} LUTテクスチャデータ / LUT texture data
182
+ * @method
183
+ * @protected
153
184
  */
154
185
  export const generateFilterGradientLUT = (ratios, colors, alphas) => {
155
186
  const resolution = 256;
@@ -187,10 +218,10 @@ export const generateFilterGradientLUT = (ratios, colors, alphas) => {
187
218
  if (end.offset !== start.offset) {
188
219
  localT = (t - start.offset) / (end.offset - start.offset);
189
220
  }
190
- const r = lerp(start.r, end.r, localT);
191
- const g = lerp(start.g, end.g, localT);
192
- const b = lerp(start.b, end.b, localT);
193
- const a = lerp(start.a, end.a, localT);
221
+ const r = $lerp(start.r, end.r, localT);
222
+ const g = $lerp(start.g, end.g, localT);
223
+ const b = $lerp(start.b, end.b, localT);
224
+ const a = $lerp(start.a, end.a, localT);
194
225
  // プリマルチプライドアルファで書き込み
195
226
  const offset = i * 4;
196
227
  lutData[offset + 0] = Math.round(r * a * 255);
@@ -1,4 +1,19 @@
1
1
  import type { BufferManager } from "../../BufferManager";
2
2
  import type { PipelineManager } from "../../Shader/PipelineManager";
3
3
  import type { IAttachmentObject } from "../../interface/IAttachmentObject";
4
- export declare const execute: (device: GPUDevice, renderPassEncoder: GPURenderPassEncoder, bufferManager: BufferManager, pipelineManager: PipelineManager, currentAttachment: IAttachmentObject) => void;
4
+ /**
5
+ * @description マスクの合成処理(ネストされたマスク対応)
6
+ * Union mask processing for nested masks.
7
+ * WebGL版と同様に、レベル7を超えたステンシルビットをマージする
8
+ * Merges stencil bits exceeding level 7, same as WebGL version.
9
+ *
10
+ * @param {GPUDevice} device - GPUデバイス / GPU device
11
+ * @param {GPURenderPassEncoder} render_pass_encoder - レンダーパスエンコーダ / Render pass encoder
12
+ * @param {BufferManager} buffer_manager - バッファマネージャ / Buffer manager
13
+ * @param {PipelineManager} pipeline_manager - パイプラインマネージャ / Pipeline manager
14
+ * @param {IAttachmentObject} current_attachment - 現在のアタッチメントオブジェクト / Current attachment object
15
+ * @return {void}
16
+ * @method
17
+ * @protected
18
+ */
19
+ export declare const execute: (device: GPUDevice, render_pass_encoder: GPURenderPassEncoder, buffer_manager: BufferManager, pipeline_manager: PipelineManager, current_attachment: IAttachmentObject) => void;
@@ -1,17 +1,10 @@
1
1
  /**
2
- * @description マスクの合成処理(ネストされたマスク対応)
3
- * WebGL版と同様に、レベル7を超えたステンシルビットをマージする
2
+ * @description フルスクリーン矩形の頂点データ(4 floats/vertex: position + bezier)
3
+ * Full-screen rectangle vertex data (4 floats/vertex: position + bezier)
4
4
  *
5
- * @param {GPUDevice} device
6
- * @param {GPURenderPassEncoder} renderPassEncoder
7
- * @param {BufferManager} bufferManager
8
- * @param {PipelineManager} pipelineManager
9
- * @param {IAttachmentObject} currentAttachment
10
- * @return {void}
11
- * @method
12
- * @protected
5
+ * @type {Float32Array}
6
+ * @constant
13
7
  */
14
- // フルスクリーン矩形(4 floats/vertex: position + bezier)
15
8
  const $rectVertices = new Float32Array([
16
9
  // Triangle 1
17
10
  -1, -1, 0.5, 0.5,
@@ -22,24 +15,45 @@ const $rectVertices = new Float32Array([
22
15
  1, -1, 0.5, 0.5,
23
16
  1, 1, 0.5, 0.5
24
17
  ]);
25
- // FillUniforms: identity matrix + white color (NDC座標なので変換不要)
18
+ /**
19
+ * @description FillUniformsデータ: 恒等行列と白色(NDC座標なので変換不要)
20
+ * FillUniforms data: identity matrix + white color (no transform needed for NDC coordinates)
21
+ *
22
+ * @type {Float32Array}
23
+ * @constant
24
+ */
26
25
  const $uniformData16 = new Float32Array([
27
26
  1, 1, 1, 1, // color: white
28
27
  0.5, 0, 0, 0, // matrix0: (0.5, 0, 0, pad) → identity-like for NDC passthrough
29
28
  0, 0.5, 0, 0, // matrix1: (0, 0.5, 0, pad)
30
29
  0.5, 0.5, 1, 0 // matrix2: (0.5, 0.5, 1, pad)
31
30
  ]);
32
- export const execute = (device, renderPassEncoder, bufferManager, pipelineManager, currentAttachment) => {
33
- if (!currentAttachment) {
31
+ /**
32
+ * @description マスクの合成処理(ネストされたマスク対応)
33
+ * Union mask processing for nested masks.
34
+ * WebGL版と同様に、レベル7を超えたステンシルビットをマージする
35
+ * Merges stencil bits exceeding level 7, same as WebGL version.
36
+ *
37
+ * @param {GPUDevice} device - GPUデバイス / GPU device
38
+ * @param {GPURenderPassEncoder} render_pass_encoder - レンダーパスエンコーダ / Render pass encoder
39
+ * @param {BufferManager} buffer_manager - バッファマネージャ / Buffer manager
40
+ * @param {PipelineManager} pipeline_manager - パイプラインマネージャ / Pipeline manager
41
+ * @param {IAttachmentObject} current_attachment - 現在のアタッチメントオブジェクト / Current attachment object
42
+ * @return {void}
43
+ * @method
44
+ * @protected
45
+ */
46
+ export const execute = (device, render_pass_encoder, buffer_manager, pipeline_manager, current_attachment) => {
47
+ if (!current_attachment) {
34
48
  return;
35
49
  }
36
- const clipLevel = currentAttachment.clipLevel;
50
+ const clipLevel = current_attachment.clipLevel;
37
51
  const mask = 1 << clipLevel - 1;
38
- const vertexBuffer = bufferManager.acquireVertexBuffer($rectVertices.byteLength, $rectVertices);
52
+ const vertexBuffer = buffer_manager.acquireVertexBuffer($rectVertices.byteLength, $rectVertices);
39
53
  // Dynamic Uniform Bufferにデータを書き込み
40
- const uniformOffset = bufferManager.dynamicUniform.allocate($uniformData16);
54
+ const uniformOffset = buffer_manager.dynamicUniform.allocate($uniformData16);
41
55
  // Dynamic BindGroupを取得
42
- const layout = pipelineManager.getBindGroupLayout("fill_dynamic");
56
+ const layout = pipeline_manager.getBindGroupLayout("fill_dynamic");
43
57
  if (!layout) {
44
58
  return;
45
59
  }
@@ -48,27 +62,27 @@ export const execute = (device, renderPassEncoder, bufferManager, pipelineManage
48
62
  "entries": [{
49
63
  "binding": 0,
50
64
  "resource": {
51
- "buffer": bufferManager.dynamicUniform.getBuffer(),
65
+ "buffer": buffer_manager.dynamicUniform.getBuffer(),
52
66
  "size": 256
53
67
  }
54
68
  }]
55
69
  });
56
70
  // === Pass 1: ステンシルビットのマージ ===
57
- const mergePipeline = pipelineManager.getPipeline(`mask_union_merge_${clipLevel}`);
71
+ const mergePipeline = pipeline_manager.getPipeline(`mask_union_merge_${clipLevel}`);
58
72
  if (mergePipeline) {
59
- renderPassEncoder.setPipeline(mergePipeline);
60
- renderPassEncoder.setStencilReference(mask);
61
- renderPassEncoder.setVertexBuffer(0, vertexBuffer);
62
- renderPassEncoder.setBindGroup(0, bindGroup, [uniformOffset]);
63
- renderPassEncoder.draw(6, 1, 0, 0);
73
+ render_pass_encoder.setPipeline(mergePipeline);
74
+ render_pass_encoder.setStencilReference(mask);
75
+ render_pass_encoder.setVertexBuffer(0, vertexBuffer);
76
+ render_pass_encoder.setBindGroup(0, bindGroup, [uniformOffset]);
77
+ render_pass_encoder.draw(6, 1, 0, 0);
64
78
  }
65
79
  // === Pass 2: 上位ビットのクリア ===
66
- const clearPipeline = pipelineManager.getPipeline(`mask_union_clear_${clipLevel}`);
80
+ const clearPipeline = pipeline_manager.getPipeline(`mask_union_clear_${clipLevel}`);
67
81
  if (clearPipeline) {
68
- renderPassEncoder.setPipeline(clearPipeline);
69
- renderPassEncoder.setStencilReference(0);
70
- renderPassEncoder.setVertexBuffer(0, vertexBuffer);
71
- renderPassEncoder.setBindGroup(0, bindGroup, [uniformOffset]);
72
- renderPassEncoder.draw(6, 1, 0, 0);
82
+ render_pass_encoder.setPipeline(clearPipeline);
83
+ render_pass_encoder.setStencilReference(0);
84
+ render_pass_encoder.setVertexBuffer(0, vertexBuffer);
85
+ render_pass_encoder.setBindGroup(0, bindGroup, [uniformOffset]);
86
+ render_pass_encoder.draw(6, 1, 0, 0);
73
87
  }
74
88
  };
package/src/Mask.d.ts CHANGED
@@ -1,12 +1,66 @@
1
+ /**
2
+ * @description マスク描画状態を設定する
3
+ * Set the mask drawing state
4
+ *
5
+ * @param {boolean} state - マスク描画中かどうか / whether mask drawing is active
6
+ * @return {void}
7
+ */
1
8
  export declare const $setMaskDrawing: (state: boolean) => void;
9
+ /**
10
+ * @description マスク描画中かどうかを返す
11
+ * Returns whether mask drawing is currently active
12
+ *
13
+ * @return {boolean}
14
+ */
2
15
  export declare const $isMaskDrawing: () => boolean;
16
+ /**
17
+ * @description マスクテストの有効/無効を設定する
18
+ * Enable or disable mask (stencil) testing
19
+ *
20
+ * @param {boolean} enabled - 有効にするかどうか / whether to enable
21
+ * @return {void}
22
+ */
3
23
  export declare const $setMaskTestEnabled: (enabled: boolean) => void;
24
+ /**
25
+ * @description マスクテストが有効かどうかを返す
26
+ * Returns whether mask (stencil) testing is enabled
27
+ *
28
+ * @return {boolean}
29
+ */
4
30
  export declare const $isMaskTestEnabled: () => boolean;
31
+ /**
32
+ * @description マスクステンシル参照値を設定する
33
+ * Set the mask stencil reference value
34
+ *
35
+ * @param {number} value - ステンシル参照値 / stencil reference value
36
+ * @return {void}
37
+ */
5
38
  export declare const $setMaskStencilReference: (value: number) => void;
39
+ /**
40
+ * @description マスクステンシル参照値を取得する
41
+ * Get the current mask stencil reference value
42
+ *
43
+ * @return {number}
44
+ */
6
45
  export declare const $getMaskStencilReference: () => number;
7
- export declare const $pushMaskAttachment: (attachment: any) => void;
8
- export declare const $popMaskAttachment: () => any;
9
- export declare const $hasMaskAttachment: () => boolean;
46
+ /**
47
+ * @description クリップ境界のマップ(キー: ID、値: バウンディングボックス)
48
+ * Map of clip bounds (key: ID, value: bounding box as Float32Array)
49
+ *
50
+ * @type {Map<number, Float32Array>}
51
+ */
10
52
  export declare const $clipBounds: Map<number, Float32Array>;
53
+ /**
54
+ * @description クリップレベルのマップ(キー: ID、値: クリップ深度)
55
+ * Map of clip levels (key: ID, value: clip depth)
56
+ *
57
+ * @type {Map<number, number>}
58
+ */
11
59
  export declare const $clipLevels: Map<number, number>;
60
+ /**
61
+ * @description マスク関連の全状態をリセットする
62
+ * Reset all mask-related state to initial values
63
+ *
64
+ * @return {void}
65
+ */
12
66
  export declare const $resetMaskState: () => void;
package/src/Mask.js CHANGED
@@ -1,41 +1,105 @@
1
+ /**
2
+ * @description マスク描画中かどうかの状態フラグ
3
+ * Flag indicating whether mask drawing is in progress
4
+ *
5
+ * @type {boolean}
6
+ */
1
7
  let $maskDrawingState = false;
8
+ /**
9
+ * @description マスク描画状態を設定する
10
+ * Set the mask drawing state
11
+ *
12
+ * @param {boolean} state - マスク描画中かどうか / whether mask drawing is active
13
+ * @return {void}
14
+ */
2
15
  export const $setMaskDrawing = (state) => {
3
16
  $maskDrawingState = state;
4
17
  };
18
+ /**
19
+ * @description マスク描画中かどうかを返す
20
+ * Returns whether mask drawing is currently active
21
+ *
22
+ * @return {boolean}
23
+ */
5
24
  export const $isMaskDrawing = () => {
6
25
  return $maskDrawingState;
7
26
  };
27
+ /**
28
+ * @description マスクテストが有効かどうかのフラグ
29
+ * Flag indicating whether mask (stencil) testing is enabled
30
+ *
31
+ * @type {boolean}
32
+ */
8
33
  let $maskTestEnabled = false;
34
+ /**
35
+ * @description マスクステンシル参照値
36
+ * Mask stencil reference value used for stencil comparison
37
+ *
38
+ * @type {number}
39
+ */
9
40
  let $maskStencilReference = 0;
41
+ /**
42
+ * @description マスクテストの有効/無効を設定する
43
+ * Enable or disable mask (stencil) testing
44
+ *
45
+ * @param {boolean} enabled - 有効にするかどうか / whether to enable
46
+ * @return {void}
47
+ */
10
48
  export const $setMaskTestEnabled = (enabled) => {
11
49
  $maskTestEnabled = enabled;
12
50
  };
51
+ /**
52
+ * @description マスクテストが有効かどうかを返す
53
+ * Returns whether mask (stencil) testing is enabled
54
+ *
55
+ * @return {boolean}
56
+ */
13
57
  export const $isMaskTestEnabled = () => {
14
58
  return $maskTestEnabled;
15
59
  };
60
+ /**
61
+ * @description マスクステンシル参照値を設定する
62
+ * Set the mask stencil reference value
63
+ *
64
+ * @param {number} value - ステンシル参照値 / stencil reference value
65
+ * @return {void}
66
+ */
16
67
  export const $setMaskStencilReference = (value) => {
17
68
  $maskStencilReference = value;
18
69
  };
70
+ /**
71
+ * @description マスクステンシル参照値を取得する
72
+ * Get the current mask stencil reference value
73
+ *
74
+ * @return {number}
75
+ */
19
76
  export const $getMaskStencilReference = () => {
20
77
  return $maskStencilReference;
21
78
  };
22
- const $maskAttachmentStack = [];
23
- export const $pushMaskAttachment = (attachment) => {
24
- $maskAttachmentStack.push(attachment);
25
- };
26
- export const $popMaskAttachment = () => {
27
- return $maskAttachmentStack.pop();
28
- };
29
- export const $hasMaskAttachment = () => {
30
- return $maskAttachmentStack.length > 0;
31
- };
79
+ /**
80
+ * @description クリップ境界のマップ(キー: ID、値: バウンディングボックス)
81
+ * Map of clip bounds (key: ID, value: bounding box as Float32Array)
82
+ *
83
+ * @type {Map<number, Float32Array>}
84
+ */
32
85
  export const $clipBounds = new Map();
86
+ /**
87
+ * @description クリップレベルのマップ(キー: ID、値: クリップ深度)
88
+ * Map of clip levels (key: ID, value: clip depth)
89
+ *
90
+ * @type {Map<number, number>}
91
+ */
33
92
  export const $clipLevels = new Map();
93
+ /**
94
+ * @description マスク関連の全状態をリセットする
95
+ * Reset all mask-related state to initial values
96
+ *
97
+ * @return {void}
98
+ */
34
99
  export const $resetMaskState = () => {
35
100
  $maskDrawingState = false;
36
101
  $maskTestEnabled = false;
37
102
  $maskStencilReference = 0;
38
- $maskAttachmentStack.length = 0;
39
103
  $clipBounds.clear();
40
104
  $clipLevels.clear();
41
105
  };
@@ -9,10 +9,10 @@ import type { IPath } from "../../interface/IPath";
9
9
  *
10
10
  * color/matrixはuniform bufferで供給される
11
11
  *
12
- * @param {IPath} vertex
13
- * @param {Float32Array} buffer
14
- * @param {number} index - 現在の頂点インデックス
15
- * @return {number} 新しい頂点インデックス
12
+ * @param {IPath} vertex - 頂点パスデータ / Vertex path data
13
+ * @param {Float32Array} buffer - 出力先バッファ / Output buffer
14
+ * @param {number} index - 現在の頂点インデックス / Current vertex index
15
+ * @return {number} 新しい頂点インデックス / New vertex index
16
16
  * @method
17
17
  * @protected
18
18
  */
@@ -8,10 +8,10 @@
8
8
  *
9
9
  * color/matrixはuniform bufferで供給される
10
10
  *
11
- * @param {IPath} vertex
12
- * @param {Float32Array} buffer
13
- * @param {number} index - 現在の頂点インデックス
14
- * @return {number} 新しい頂点インデックス
11
+ * @param {IPath} vertex - 頂点パスデータ / Vertex path data
12
+ * @param {Float32Array} buffer - 出力先バッファ / Output buffer
13
+ * @param {number} index - 現在の頂点インデックス / Current vertex index
14
+ * @return {number} 新しい頂点インデックス / New vertex index
15
15
  * @method
16
16
  * @protected
17
17
  */
@@ -9,10 +9,10 @@ import type { IPath } from "../../interface/IPath";
9
9
  *
10
10
  * color/matrixはuniform bufferで供給される
11
11
  *
12
- * @param {IPath} vertex
13
- * @param {Float32Array} buffer
14
- * @param {number} index - 現在の頂点インデックス
15
- * @return {number} 新しい頂点インデックス
12
+ * @param {IPath} vertex - 頂点パスデータ / Vertex path data
13
+ * @param {Float32Array} buffer - 出力先バッファ / Output buffer
14
+ * @param {number} index - 現在の頂点インデックス / Current vertex index
15
+ * @return {number} 新しい頂点インデックス / New vertex index
16
16
  * @method
17
17
  * @protected
18
18
  */
@@ -8,10 +8,10 @@
8
8
  *
9
9
  * color/matrixはuniform bufferで供給される
10
10
  *
11
- * @param {IPath} vertex
12
- * @param {Float32Array} buffer
13
- * @param {number} index - 現在の頂点インデックス
14
- * @return {number} 新しい頂点インデックス
11
+ * @param {IPath} vertex - 頂点パスデータ / Vertex path data
12
+ * @param {Float32Array} buffer - 出力先バッファ / Output buffer
13
+ * @param {number} index - 現在の頂点インデックス / Current vertex index
14
+ * @return {number} 新しい頂点インデックス / New vertex index
15
15
  * @method
16
16
  * @protected
17
17
  */
@@ -4,9 +4,9 @@ import type { IMeshResult } from "../../interface/IMeshResult";
4
4
  * @description ビットマップストローク用のメッシュを生成する
5
5
  * Generate a mesh for bitmap stroke
6
6
  *
7
- * @param {IPath[]} vertices
8
- * @param {number} thickness
9
- * @return {IMeshResult}
7
+ * @param {IPath[]} vertices - パス頂点配列 / Array of path vertices
8
+ * @param {number} thickness - 線の太さ / Line thickness
9
+ * @return {IMeshResult} メッシュ結果 / Mesh result
10
10
  * @method
11
11
  * @protected
12
12
  */
@@ -4,6 +4,13 @@ import { execute as meshStrokeFillGenerateService } from "../service/MeshStrokeF
4
4
  * @description メッシュ生成用の再利用可能な一時バッファ(GC回避)
5
5
  */
6
6
  let $meshTempBuffer = new Float32Array(32);
7
+ /**
8
+ * @description 2のべき乗に切り上げる
9
+ * Round up to the next power of two
10
+ *
11
+ * @param {number} v - 切り上げ対象の値 / Value to round up
12
+ * @return {number} 2のべき乗の値 / Next power of two
13
+ */
7
14
  const $upperPowerOfTwo = (v) => {
8
15
  v--;
9
16
  v |= v >> 1;
@@ -18,9 +25,9 @@ const $upperPowerOfTwo = (v) => {
18
25
  * @description ビットマップストローク用のメッシュを生成する
19
26
  * Generate a mesh for bitmap stroke
20
27
  *
21
- * @param {IPath[]} vertices
22
- * @param {number} thickness
23
- * @return {IMeshResult}
28
+ * @param {IPath[]} vertices - パス頂点配列 / Array of path vertices
29
+ * @param {number} thickness - 線の太さ / Line thickness
30
+ * @return {IMeshResult} メッシュ結果 / Mesh result
24
31
  * @method
25
32
  * @protected
26
33
  */
@@ -4,8 +4,8 @@ import type { IMeshResult } from "../../interface/IMeshResult";
4
4
  * @description 塗りのメッシュを生成する
5
5
  * Generate a fill mesh
6
6
  *
7
- * @param {IPath[]} vertices
8
- * @return {IMeshResult}
7
+ * @param {IPath[]} vertices - パス頂点配列 / Array of path vertices
8
+ * @return {IMeshResult} メッシュ結果 / Mesh result
9
9
  * @method
10
10
  * @protected
11
11
  */
@@ -3,6 +3,13 @@ import { execute as meshFillGenerateService } from "../service/MeshFillGenerateS
3
3
  * @description メッシュ生成用の再利用可能な一時バッファ(GC回避)
4
4
  */
5
5
  let $meshTempBuffer = new Float32Array(32);
6
+ /**
7
+ * @description 2のべき乗に切り上げる
8
+ * Round up to the next power of two
9
+ *
10
+ * @param {number} v - 切り上げ対象の値 / Value to round up
11
+ * @return {number} 2のべき乗の値 / Next power of two
12
+ */
6
13
  const $upperPowerOfTwo = (v) => {
7
14
  v--;
8
15
  v |= v >> 1;
@@ -17,8 +24,8 @@ const $upperPowerOfTwo = (v) => {
17
24
  * @description 塗りのメッシュを生成する
18
25
  * Generate a fill mesh
19
26
  *
20
- * @param {IPath[]} vertices
21
- * @return {IMeshResult}
27
+ * @param {IPath[]} vertices - パス頂点配列 / Array of path vertices
28
+ * @return {IMeshResult} メッシュ結果 / Mesh result
22
29
  * @method
23
30
  * @protected
24
31
  */