@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,10 +3,10 @@ import type { ITextureObject } from "../../interface/ITextureObject";
3
3
  * @description テクスチャをプールに返却
4
4
  * Release texture back to pool
5
5
  *
6
- * @param {Map<string, ITextureObject[]>} texturePool
7
- * @param {ITextureObject} textureObject
6
+ * @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
7
+ * @param {ITextureObject} texture_object - 返却するテクスチャオブジェクト
8
8
  * @return {void}
9
9
  * @method
10
10
  * @protected
11
11
  */
12
- export declare const execute: (texturePool: Map<string, ITextureObject[]>, textureObject: ITextureObject) => void;
12
+ export declare const execute: (texture_pool: Map<string, ITextureObject[]>, texture_object: ITextureObject) => void;
@@ -2,16 +2,16 @@
2
2
  * @description テクスチャをプールに返却
3
3
  * Release texture back to pool
4
4
  *
5
- * @param {Map<string, ITextureObject[]>} texturePool
6
- * @param {ITextureObject} textureObject
5
+ * @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
6
+ * @param {ITextureObject} texture_object - 返却するテクスチャオブジェクト
7
7
  * @return {void}
8
8
  * @method
9
9
  * @protected
10
10
  */
11
- export const execute = (texturePool, textureObject) => {
12
- const key = `${textureObject.width}x${textureObject.height}_${textureObject.smooth ? "smooth" : "nearest"}`;
13
- if (!texturePool.has(key)) {
14
- texturePool.set(key, []);
11
+ export const execute = (texture_pool, texture_object) => {
12
+ const key = `${texture_object.width}x${texture_object.height}_${texture_object.smooth ? "smooth" : "nearest"}`;
13
+ if (!texture_pool.has(key)) {
14
+ texture_pool.set(key, []);
15
15
  }
16
- texturePool.get(key).push(textureObject);
16
+ texture_pool.get(key).push(texture_object);
17
17
  };
@@ -6,20 +6,20 @@ import type { IStencilBufferObject } from "../../interface/IStencilBufferObject"
6
6
  * @description アタッチメントオブジェクトを取得
7
7
  * Get attachment object
8
8
  *
9
- * @param {GPUDevice} device
10
- * @param {IAttachmentObject[]} attachmentPool
11
- * @param {Map<string, ITextureObject[]>} texturePool
12
- * @param {IColorBufferObject[]} colorBufferPool
13
- * @param {IStencilBufferObject[]} stencilBufferPool
14
- * @param {number} width
15
- * @param {number} height
16
- * @param {boolean} msaa
17
- * @param {{ attachmentId: number, textureId: number, stencilId: number }} idCounter
9
+ * @param {GPUDevice} device - GPUデバイス
10
+ * @param {IAttachmentObject[]} attachment_pool - アタッチメントプール
11
+ * @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
12
+ * @param {IColorBufferObject[]} color_buffer_pool - カラーバッファプール
13
+ * @param {IStencilBufferObject[]} stencil_buffer_pool - ステンシルバッファプール
14
+ * @param {number} width - バッファ幅
15
+ * @param {number} height - バッファ高さ
16
+ * @param {boolean} msaa - MSAA有効フラグ
17
+ * @param {{ attachmentId: number, textureId: number, stencilId: number }} id_counter - ID管理カウンタ
18
18
  * @return {IAttachmentObject}
19
19
  * @method
20
20
  * @protected
21
21
  */
22
- export declare const execute: (device: GPUDevice, attachmentPool: IAttachmentObject[], texturePool: Map<string, ITextureObject[]>, colorBufferPool: IColorBufferObject[], stencilBufferPool: IStencilBufferObject[], width: number, height: number, msaa: boolean, idCounter: {
22
+ export declare const execute: (device: GPUDevice, attachment_pool: IAttachmentObject[], texture_pool: Map<string, ITextureObject[]>, color_buffer_pool: IColorBufferObject[], stencil_buffer_pool: IStencilBufferObject[], width: number, height: number, msaa: boolean, id_counter: {
23
23
  attachmentId: number;
24
24
  textureId: number;
25
25
  stencilId: number;
@@ -6,24 +6,24 @@ import { execute as attachmentManagerGetTextureService } from "../service/Attach
6
6
  * @description アタッチメントオブジェクトを取得
7
7
  * Get attachment object
8
8
  *
9
- * @param {GPUDevice} device
10
- * @param {IAttachmentObject[]} attachmentPool
11
- * @param {Map<string, ITextureObject[]>} texturePool
12
- * @param {IColorBufferObject[]} colorBufferPool
13
- * @param {IStencilBufferObject[]} stencilBufferPool
14
- * @param {number} width
15
- * @param {number} height
16
- * @param {boolean} msaa
17
- * @param {{ attachmentId: number, textureId: number, stencilId: number }} idCounter
9
+ * @param {GPUDevice} device - GPUデバイス
10
+ * @param {IAttachmentObject[]} attachment_pool - アタッチメントプール
11
+ * @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
12
+ * @param {IColorBufferObject[]} color_buffer_pool - カラーバッファプール
13
+ * @param {IStencilBufferObject[]} stencil_buffer_pool - ステンシルバッファプール
14
+ * @param {number} width - バッファ幅
15
+ * @param {number} height - バッファ高さ
16
+ * @param {boolean} msaa - MSAA有効フラグ
17
+ * @param {{ attachmentId: number, textureId: number, stencilId: number }} id_counter - ID管理カウンタ
18
18
  * @return {IAttachmentObject}
19
19
  * @method
20
20
  * @protected
21
21
  */
22
- export const execute = (device, attachmentPool, texturePool, colorBufferPool, stencilBufferPool, width, height, msaa, idCounter) => {
22
+ export const execute = (device, attachment_pool, texture_pool, color_buffer_pool, stencil_buffer_pool, width, height, msaa, id_counter) => {
23
23
  // プールから再利用
24
- const attachment = attachmentPool.length > 0
25
- ? attachmentPool.pop()
26
- : attachmentManagerCreateAttachmentObjectService(idCounter);
24
+ const attachment = attachment_pool.length > 0
25
+ ? attachment_pool.pop()
26
+ : attachmentManagerCreateAttachmentObjectService(id_counter);
27
27
  // サイズとフラグを更新
28
28
  attachment.width = width;
29
29
  attachment.height = height;
@@ -31,13 +31,13 @@ export const execute = (device, attachmentPool, texturePool, colorBufferPool, st
31
31
  attachment.mask = false;
32
32
  attachment.clipLevel = 0;
33
33
  // ステンシルバッファを取得または作成
34
- const stencil = attachmentManagerGetStencilBufferService(device, stencilBufferPool, width, height, idCounter);
34
+ const stencil = attachmentManagerGetStencilBufferService(device, stencil_buffer_pool, width, height, id_counter);
35
35
  // カラーバッファを取得または作成(ステンシルを参照)
36
- const color = attachmentManagerGetColorBufferService(device, colorBufferPool, width, height, stencil);
36
+ const color = attachmentManagerGetColorBufferService(device, color_buffer_pool, width, height, stencil);
37
37
  attachment.color = color;
38
38
  attachment.stencil = stencil;
39
39
  // テクスチャを取得
40
- const texture = attachmentManagerGetTextureService(device, texturePool, width, height, true, idCounter);
40
+ const texture = attachmentManagerGetTextureService(device, texture_pool, width, height, true, id_counter);
41
41
  attachment.texture = texture;
42
42
  return attachment;
43
43
  };
@@ -6,13 +6,13 @@ import type { IStencilBufferObject } from "../../interface/IStencilBufferObject"
6
6
  * @description アタッチメントを解放してプールに返却
7
7
  * Release attachment and return to pool
8
8
  *
9
- * @param {IAttachmentObject[]} attachmentPool
10
- * @param {Map<string, ITextureObject[]>} texturePool
11
- * @param {IColorBufferObject[]} colorBufferPool
12
- * @param {IStencilBufferObject[]} stencilBufferPool
13
- * @param {IAttachmentObject} attachment
9
+ * @param {IAttachmentObject[]} attachment_pool - アタッチメントプール
10
+ * @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
11
+ * @param {IColorBufferObject[]} color_buffer_pool - カラーバッファプール
12
+ * @param {IStencilBufferObject[]} stencil_buffer_pool - ステンシルバッファプール
13
+ * @param {IAttachmentObject} attachment - 解放するアタッチメント
14
14
  * @return {void}
15
15
  * @method
16
16
  * @protected
17
17
  */
18
- export declare const execute: (attachmentPool: IAttachmentObject[], texturePool: Map<string, ITextureObject[]>, colorBufferPool: IColorBufferObject[], stencilBufferPool: IStencilBufferObject[], attachment: IAttachmentObject) => void;
18
+ export declare const execute: (attachment_pool: IAttachmentObject[], texture_pool: Map<string, ITextureObject[]>, color_buffer_pool: IColorBufferObject[], stencil_buffer_pool: IStencilBufferObject[], attachment: IAttachmentObject) => void;
@@ -3,31 +3,31 @@ import { execute as attachmentManagerReleaseTextureService } from "../service/At
3
3
  * @description アタッチメントを解放してプールに返却
4
4
  * Release attachment and return to pool
5
5
  *
6
- * @param {IAttachmentObject[]} attachmentPool
7
- * @param {Map<string, ITextureObject[]>} texturePool
8
- * @param {IColorBufferObject[]} colorBufferPool
9
- * @param {IStencilBufferObject[]} stencilBufferPool
10
- * @param {IAttachmentObject} attachment
6
+ * @param {IAttachmentObject[]} attachment_pool - アタッチメントプール
7
+ * @param {Map<string, ITextureObject[]>} texture_pool - テクスチャプール
8
+ * @param {IColorBufferObject[]} color_buffer_pool - カラーバッファプール
9
+ * @param {IStencilBufferObject[]} stencil_buffer_pool - ステンシルバッファプール
10
+ * @param {IAttachmentObject} attachment - 解放するアタッチメント
11
11
  * @return {void}
12
12
  * @method
13
13
  * @protected
14
14
  */
15
- export const execute = (attachmentPool, texturePool, colorBufferPool, stencilBufferPool, attachment) => {
15
+ export const execute = (attachment_pool, texture_pool, color_buffer_pool, stencil_buffer_pool, attachment) => {
16
16
  // テクスチャをプールに返却
17
17
  if (attachment.texture) {
18
- attachmentManagerReleaseTextureService(texturePool, attachment.texture);
18
+ attachmentManagerReleaseTextureService(texture_pool, attachment.texture);
19
19
  attachment.texture = null;
20
20
  }
21
21
  // カラーバッファをプールに返却
22
22
  if (attachment.color) {
23
- colorBufferPool.push(attachment.color);
23
+ color_buffer_pool.push(attachment.color);
24
24
  attachment.color = null;
25
25
  }
26
26
  // ステンシルバッファをプールに返却
27
27
  if (attachment.stencil) {
28
- stencilBufferPool.push(attachment.stencil);
28
+ stencil_buffer_pool.push(attachment.stencil);
29
29
  attachment.stencil = null;
30
30
  }
31
31
  // アタッチメントをプールに返却
32
- attachmentPool.push(attachment);
32
+ attachment_pool.push(attachment);
33
33
  };
@@ -1,4 +1,8 @@
1
1
  import type { IAttachmentObject } from "./interface/IAttachmentObject";
2
+ /**
3
+ * @description アタッチメントリソースのプール管理クラス
4
+ * Pool manager class for attachment resources
5
+ */
2
6
  export declare class AttachmentManager {
3
7
  private device;
4
8
  private attachmentPool;
@@ -6,14 +10,32 @@ export declare class AttachmentManager {
6
10
  private colorBufferPool;
7
11
  private stencilBufferPool;
8
12
  private idCounter;
9
- private currentAttachment;
13
+ /**
14
+ * @description AttachmentManagerのコンストラクタ
15
+ * Constructor for AttachmentManager
16
+ * @param {GPUDevice} device - WebGPUデバイス / WebGPU device
17
+ */
10
18
  constructor(device: GPUDevice);
19
+ /**
20
+ * @description プールからアタッチメントオブジェクトを取得する
21
+ * Get an attachment object from the pool
22
+ * @param {number} width - テクスチャの幅 / Texture width
23
+ * @param {number} height - テクスチャの高さ / Texture height
24
+ * @param {boolean} [msaa=false] - MSAAを有効にするか / Whether to enable MSAA
25
+ * @return {IAttachmentObject}
26
+ */
11
27
  getAttachmentObject(width: number, height: number, msaa?: boolean): IAttachmentObject;
12
- bindAttachment(attachment: IAttachmentObject): void;
13
- getCurrentAttachment(): IAttachmentObject | null;
14
- get currentAttachmentObject(): IAttachmentObject | null;
15
- unbindAttachment(): void;
28
+ /**
29
+ * @description アタッチメントをプールに返却する
30
+ * Release an attachment back to the pool
31
+ * @param {IAttachmentObject} attachment - 返却するアタッチメント / Attachment to release
32
+ * @return {void}
33
+ */
16
34
  releaseAttachment(attachment: IAttachmentObject): void;
17
- createRenderPassDescriptor(attachment: IAttachmentObject, r: number, g: number, b: number, a: number, loadOp?: GPULoadOp): GPURenderPassDescriptor;
35
+ /**
36
+ * @description 全リソースを破棄する
37
+ * Dispose all resources
38
+ * @return {void}
39
+ */
18
40
  dispose(): void;
19
41
  }
@@ -1,7 +1,15 @@
1
1
  import { execute as attachmentManagerGetAttachmentObjectUseCase } from "./AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase";
2
2
  import { execute as attachmentManagerReleaseAttachmentUseCase } from "./AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase";
3
- import { execute as attachmentManagerCreateRenderPassDescriptorService } from "./AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService";
3
+ /**
4
+ * @description アタッチメントリソースのプール管理クラス
5
+ * Pool manager class for attachment resources
6
+ */
4
7
  export class AttachmentManager {
8
+ /**
9
+ * @description AttachmentManagerのコンストラクタ
10
+ * Constructor for AttachmentManager
11
+ * @param {GPUDevice} device - WebGPUデバイス / WebGPU device
12
+ */
5
13
  constructor(device) {
6
14
  Object.defineProperty(this, "device", {
7
15
  enumerable: true,
@@ -39,41 +47,38 @@ export class AttachmentManager {
39
47
  writable: true,
40
48
  value: void 0
41
49
  });
42
- Object.defineProperty(this, "currentAttachment", {
43
- enumerable: true,
44
- configurable: true,
45
- writable: true,
46
- value: void 0
47
- });
48
50
  this.device = device;
49
51
  this.attachmentPool = [];
50
52
  this.texturePool = new Map();
51
53
  this.colorBufferPool = [];
52
54
  this.stencilBufferPool = [];
53
55
  this.idCounter = { "attachmentId": 0, "textureId": 0, "stencilId": 0 };
54
- this.currentAttachment = null;
55
56
  }
57
+ /**
58
+ * @description プールからアタッチメントオブジェクトを取得する
59
+ * Get an attachment object from the pool
60
+ * @param {number} width - テクスチャの幅 / Texture width
61
+ * @param {number} height - テクスチャの高さ / Texture height
62
+ * @param {boolean} [msaa=false] - MSAAを有効にするか / Whether to enable MSAA
63
+ * @return {IAttachmentObject}
64
+ */
56
65
  getAttachmentObject(width, height, msaa = false) {
57
66
  return attachmentManagerGetAttachmentObjectUseCase(this.device, this.attachmentPool, this.texturePool, this.colorBufferPool, this.stencilBufferPool, width, height, msaa, this.idCounter);
58
67
  }
59
- bindAttachment(attachment) {
60
- this.currentAttachment = attachment;
61
- }
62
- getCurrentAttachment() {
63
- return this.currentAttachment;
64
- }
65
- get currentAttachmentObject() {
66
- return this.currentAttachment;
67
- }
68
- unbindAttachment() {
69
- this.currentAttachment = null;
70
- }
68
+ /**
69
+ * @description アタッチメントをプールに返却する
70
+ * Release an attachment back to the pool
71
+ * @param {IAttachmentObject} attachment - 返却するアタッチメント / Attachment to release
72
+ * @return {void}
73
+ */
71
74
  releaseAttachment(attachment) {
72
75
  attachmentManagerReleaseAttachmentUseCase(this.attachmentPool, this.texturePool, this.colorBufferPool, this.stencilBufferPool, attachment);
73
76
  }
74
- createRenderPassDescriptor(attachment, r, g, b, a, loadOp = "clear") {
75
- return attachmentManagerCreateRenderPassDescriptorService(attachment, r, g, b, a, loadOp);
76
- }
77
+ /**
78
+ * @description 全リソースを破棄する
79
+ * Dispose all resources
80
+ * @return {void}
81
+ */
77
82
  dispose() {
78
83
  for (const pool of this.texturePool.values()) {
79
84
  for (const textureObj of pool) {
@@ -10,7 +10,13 @@
10
10
  *
11
11
  * これにより品質を維持しながら不要な計算を削減。
12
12
  */
13
- export { execute as adaptiveCubicToQuad, calculateAdaptiveThreshold } from "./usecase/BezierConverterAdaptiveCubicToQuadUseCase";
13
+ /**
14
+ * @description 三次ベジェ曲線を適応的に二次ベジェ曲線群に変換する関数
15
+ * Function to adaptively convert cubic bezier to quadratic bezier segments
16
+ */
17
+ export { execute as adaptiveCubicToQuad } from "./usecase/BezierConverterAdaptiveCubicToQuadUseCase";
18
+ /**
19
+ * @description 二次ベジェ曲線セグメントのインターフェース
20
+ * Interface for quadratic bezier curve segment
21
+ */
14
22
  export type { IQuadraticSegment } from "../interface/IQuadraticSegment";
15
- export { execute as calculateFlatness } from "./service/BezierConverterCalculateFlatnessService";
16
- export { execute as splitCubic } from "./service/BezierConverterSplitCubicService";
@@ -10,6 +10,8 @@
10
10
  *
11
11
  * これにより品質を維持しながら不要な計算を削減。
12
12
  */
13
- export { execute as adaptiveCubicToQuad, calculateAdaptiveThreshold } from "./usecase/BezierConverterAdaptiveCubicToQuadUseCase";
14
- export { execute as calculateFlatness } from "./service/BezierConverterCalculateFlatnessService";
15
- export { execute as splitCubic } from "./service/BezierConverterSplitCubicService";
13
+ /**
14
+ * @description 三次ベジェ曲線を適応的に二次ベジェ曲線群に変換する関数
15
+ * Function to adaptively convert cubic bezier to quadratic bezier segments
16
+ */
17
+ export { execute as adaptiveCubicToQuad } from "./usecase/BezierConverterAdaptiveCubicToQuadUseCase";
@@ -12,18 +12,7 @@ export type { IQuadraticSegment };
12
12
  * @param {IPoint} p1 - 制御点1
13
13
  * @param {IPoint} p2 - 制御点2
14
14
  * @param {IPoint} p3 - 終点
15
- * @param {number} flatnessThreshold - フラットネス閾値(オプション)
15
+ * @param {number} flatness_threshold - フラットネス閾値(オプション)
16
16
  * @return {IQuadraticSegment[]} 二次ベジェ曲線のセグメント配列
17
17
  */
18
- export declare const execute: (p0: IPoint, p1: IPoint, p2: IPoint, p3: IPoint, flatnessThreshold?: number) => IQuadraticSegment[];
19
- /**
20
- * @description スケールに応じたフラットネス閾値を計算
21
- * Calculate flatness threshold based on scale
22
- *
23
- * ズームレベルが高い場合は高品質な近似が必要。
24
- * スケール = sqrt(matrix[0]^2 + matrix[1]^2) などで計算可能。
25
- *
26
- * @param {number} scale - 現在のスケール
27
- * @return {number} 調整されたフラットネス閾値
28
- */
29
- export declare const calculateAdaptiveThreshold: (scale: number) => number;
18
+ export declare const execute: (p0: IPoint, p1: IPoint, p2: IPoint, p3: IPoint, flatness_threshold?: number) => IQuadraticSegment[];
@@ -25,17 +25,26 @@ const MAX_RECURSION_DEPTH = 8;
25
25
  * @param {IPoint} p1 - 制御点1
26
26
  * @param {IPoint} p2 - 制御点2
27
27
  * @param {IPoint} p3 - 終点
28
- * @param {number} flatnessThreshold - フラットネス閾値(オプション)
28
+ * @param {number} flatness_threshold - フラットネス閾値(オプション)
29
29
  * @return {IQuadraticSegment[]} 二次ベジェ曲線のセグメント配列
30
30
  */
31
- export const execute = (p0, p1, p2, p3, flatnessThreshold = DEFAULT_FLATNESS_THRESHOLD) => {
31
+ export const execute = (p0, p1, p2, p3, flatness_threshold = DEFAULT_FLATNESS_THRESHOLD) => {
32
32
  const result = [];
33
- // 再帰的に分割を行う内部関数
33
+ /**
34
+ * @description 再帰的に三次ベジェ曲線を分割し、二次ベジェ曲線に近似する内部関数
35
+ * Internal recursive function that subdivides cubic bezier and approximates with quadratic bezier
36
+ * @param {IPoint} start - 始点
37
+ * @param {IPoint} ctrl1 - 制御点1
38
+ * @param {IPoint} ctrl2 - 制御点2
39
+ * @param {IPoint} end - 終点
40
+ * @param {number} depth - 現在の再帰深度
41
+ * @return {void}
42
+ */
34
43
  const subdivide = (start, ctrl1, ctrl2, end, depth) => {
35
44
  // フラットネスを計算
36
45
  const flatness = calculateFlatness(start, ctrl1, ctrl2, end);
37
46
  // フラットネスが閾値以下、または最大深度に達した場合は近似
38
- if (flatness <= flatnessThreshold || depth >= MAX_RECURSION_DEPTH) {
47
+ if (flatness <= flatness_threshold || depth >= MAX_RECURSION_DEPTH) {
39
48
  // 三次ベジェを二次ベジェに近似
40
49
  // WebGL版と同じ: 分割後は単純に2つの制御点の中点を使用
41
50
  const ctrl = {
@@ -57,24 +66,3 @@ export const execute = (p0, p1, p2, p3, flatnessThreshold = DEFAULT_FLATNESS_THR
57
66
  subdivide(p0, p1, p2, p3, 0);
58
67
  return result;
59
68
  };
60
- /**
61
- * @description スケールに応じたフラットネス閾値を計算
62
- * Calculate flatness threshold based on scale
63
- *
64
- * ズームレベルが高い場合は高品質な近似が必要。
65
- * スケール = sqrt(matrix[0]^2 + matrix[1]^2) などで計算可能。
66
- *
67
- * @param {number} scale - 現在のスケール
68
- * @return {number} 調整されたフラットネス閾値
69
- */
70
- export const calculateAdaptiveThreshold = (scale) => {
71
- // スケールが大きい場合は閾値を小さくして高品質に
72
- // スケールが小さい場合は閾値を大きくしてパフォーマンス優先
73
- const baseThreshold = DEFAULT_FLATNESS_THRESHOLD;
74
- // スケールの逆数に比例した閾値
75
- // 最小値と最大値を設定して極端な値を防ぐ
76
- const adjustedThreshold = baseThreshold / (scale * scale);
77
- // 閾値の範囲を制限(0.0625〜4.0)
78
- // 0.0625 = 0.25px squared, 4.0 = 2px squared
79
- return Math.max(0.0625, Math.min(4.0, adjustedThreshold));
80
- };
@@ -3,33 +3,37 @@ import type { IComplexBlendItem } from "../interface/IComplexBlendItem";
3
3
  import { ShaderInstancedManager } from "../Shader/ShaderInstancedManager";
4
4
  /**
5
5
  * @description 複雑なブレンドモードの描画キューを取得
6
+ * Returns the queue of complex blend mode draw items
6
7
  * @return {IComplexBlendItem[]}
7
8
  */
8
9
  export declare const getComplexBlendQueue: () => IComplexBlendItem[];
9
10
  /**
10
- * @description 複雑なブレンドモードの描画キューをクリア
11
+ * @description 複雑なブレンドモードの描画キューをクリアし、プールへ返却する
12
+ * Clears the complex blend queue and returns arrays to their pools
11
13
  * @return {void}
12
14
  */
13
15
  export declare const clearComplexBlendQueue: () => void;
14
16
  /**
15
- * @description インスタンスシェーダーマネージャーを取得
17
+ * @description インスタンスシェーダーマネージャーを取得(なければ生成)
18
+ * Gets or creates the instanced shader manager
16
19
  * @return {ShaderInstancedManager}
17
20
  */
18
21
  export declare const getInstancedShaderManager: () => ShaderInstancedManager;
19
22
  /**
20
- * @description DisplayObject単体の描画をインスタンス配列に追加
21
- * @param {Node} node
22
- * @param {number} x_min
23
- * @param {number} y_min
24
- * @param {number} x_max
25
- * @param {number} y_max
26
- * @param {Float32Array} color_transform
27
- * @param {Float32Array} matrix
28
- * @param {string} blend_mode
29
- * @param {number} viewport_width
30
- * @param {number} viewport_height
31
- * @param {number} render_max_size
32
- * @param {number} global_alpha
23
+ * @description DisplayObject単体の描画をインスタンス配列に追加する
24
+ * Adds a single DisplayObject's draw data to the instanced array
25
+ * @param {Node} node - テクスチャアトラスノード / Texture atlas node
26
+ * @param {number} x_min - バウンディングボックス左端 / Bounding box left edge
27
+ * @param {number} y_min - バウンディングボックス上端 / Bounding box top edge
28
+ * @param {number} x_max - バウンディングボックス右端 / Bounding box right edge
29
+ * @param {number} y_max - バウンディングボックス下端 / Bounding box bottom edge
30
+ * @param {Float32Array} color_transform - カラートランスフォーム配列 / Color transform array
31
+ * @param {Float32Array} matrix - 変換行列配列 / Transformation matrix array
32
+ * @param {string} blend_mode - ブレンドモード名 / Blend mode name
33
+ * @param {number} viewport_width - ビューポート幅 / Viewport width
34
+ * @param {number} viewport_height - ビューポート高さ / Viewport height
35
+ * @param {number} render_max_size - レンダーテクスチャ最大サイズ / Render texture max size
36
+ * @param {number} global_alpha - グローバルアルファ値 / Global alpha value
33
37
  * @return {void}
34
38
  */
35
39
  export declare const addDisplayObjectToInstanceArray: (node: Node, x_min: number, y_min: number, x_max: number, y_max: number, color_transform: Float32Array, matrix: Float32Array, blend_mode: string, viewport_width: number, viewport_height: number, render_max_size: number, global_alpha: number) => void;
@@ -5,31 +5,41 @@ import { renderQueue } from "@next2d/render-queue";
5
5
  import { $context } from "../WebGPUUtil";
6
6
  /**
7
7
  * @description シンプルなブレンドモード(インスタンス描画可能)
8
+ * Simple blend modes that support instanced rendering
9
+ * @type {ReadonlySet<string>}
8
10
  */
9
- const SIMPLE_BLEND_MODES = new Set([
11
+ const $SIMPLE_BLEND_MODES = new Set([
10
12
  "normal", "layer", "add", "screen", "alpha", "erase", "copy"
11
13
  ]);
12
14
  /**
13
15
  * @description 複雑なブレンドモード描画キュー
16
+ * Queue for complex blend mode draw items
17
+ * @type {IComplexBlendItem[]}
14
18
  */
15
19
  const $complexBlendQueue = [];
16
20
  /**
17
21
  * @description Float32Array(8) プール(color_transform 用)
22
+ * Object pool for Float32Array(8) used by color transforms
23
+ * @type {Float32Array[]}
18
24
  */
19
25
  const $ct8Pool = [];
20
26
  /**
21
27
  * @description Float32Array(9) プール(matrix 用)
28
+ * Object pool for Float32Array(9) used by matrices
29
+ * @type {Float32Array[]}
22
30
  */
23
31
  const $m9Pool = [];
24
32
  /**
25
33
  * @description 複雑なブレンドモードの描画キューを取得
34
+ * Returns the queue of complex blend mode draw items
26
35
  * @return {IComplexBlendItem[]}
27
36
  */
28
37
  export const getComplexBlendQueue = () => {
29
38
  return $complexBlendQueue;
30
39
  };
31
40
  /**
32
- * @description 複雑なブレンドモードの描画キューをクリア
41
+ * @description 複雑なブレンドモードの描画キューをクリアし、プールへ返却する
42
+ * Clears the complex blend queue and returns arrays to their pools
33
43
  * @return {void}
34
44
  */
35
45
  export const clearComplexBlendQueue = () => {
@@ -43,34 +53,37 @@ export const clearComplexBlendQueue = () => {
43
53
  };
44
54
  /**
45
55
  * @description インスタンスシェーダーマネージャーのキャッシュ
46
- * @private
56
+ * Cache map for instanced shader managers
57
+ * @type {Map<string, ShaderInstancedManager>}
47
58
  */
48
- const shaderManagers = new Map();
59
+ const $shaderManagers = new Map();
49
60
  /**
50
- * @description インスタンスシェーダーマネージャーを取得
61
+ * @description インスタンスシェーダーマネージャーを取得(なければ生成)
62
+ * Gets or creates the instanced shader manager
51
63
  * @return {ShaderInstancedManager}
52
64
  */
53
65
  export const getInstancedShaderManager = () => {
54
66
  const key = "blend_instanced";
55
- if (!shaderManagers.has(key)) {
56
- shaderManagers.set(key, new ShaderInstancedManager());
67
+ if (!$shaderManagers.has(key)) {
68
+ $shaderManagers.set(key, new ShaderInstancedManager());
57
69
  }
58
- return shaderManagers.get(key);
70
+ return $shaderManagers.get(key);
59
71
  };
60
72
  /**
61
- * @description DisplayObject単体の描画をインスタンス配列に追加
62
- * @param {Node} node
63
- * @param {number} x_min
64
- * @param {number} y_min
65
- * @param {number} x_max
66
- * @param {number} y_max
67
- * @param {Float32Array} color_transform
68
- * @param {Float32Array} matrix
69
- * @param {string} blend_mode
70
- * @param {number} viewport_width
71
- * @param {number} viewport_height
72
- * @param {number} render_max_size
73
- * @param {number} global_alpha
73
+ * @description DisplayObject単体の描画をインスタンス配列に追加する
74
+ * Adds a single DisplayObject's draw data to the instanced array
75
+ * @param {Node} node - テクスチャアトラスノード / Texture atlas node
76
+ * @param {number} x_min - バウンディングボックス左端 / Bounding box left edge
77
+ * @param {number} y_min - バウンディングボックス上端 / Bounding box top edge
78
+ * @param {number} x_max - バウンディングボックス右端 / Bounding box right edge
79
+ * @param {number} y_max - バウンディングボックス下端 / Bounding box bottom edge
80
+ * @param {Float32Array} color_transform - カラートランスフォーム配列 / Color transform array
81
+ * @param {Float32Array} matrix - 変換行列配列 / Transformation matrix array
82
+ * @param {string} blend_mode - ブレンドモード名 / Blend mode name
83
+ * @param {number} viewport_width - ビューポート幅 / Viewport width
84
+ * @param {number} viewport_height - ビューポート高さ / Viewport height
85
+ * @param {number} render_max_size - レンダーテクスチャ最大サイズ / Render texture max size
86
+ * @param {number} global_alpha - グローバルアルファ値 / Global alpha value
74
87
  * @return {void}
75
88
  */
76
89
  export const addDisplayObjectToInstanceArray = (node, x_min, y_min, x_max, y_max, color_transform, matrix, blend_mode, viewport_width, viewport_height, render_max_size, global_alpha) => {
@@ -83,7 +96,7 @@ export const addDisplayObjectToInstanceArray = (node, x_min, y_min, x_max, y_max
83
96
  const ct5 = color_transform[5] / 255;
84
97
  const ct6 = color_transform[6] / 255;
85
98
  const ct7 = 0;
86
- if (SIMPLE_BLEND_MODES.has(blend_mode)) {
99
+ if ($SIMPLE_BLEND_MODES.has(blend_mode)) {
87
100
  // ブレンドモードまたはアトラスインデックスが変わった場合
88
101
  if ($currentBlendMode !== blend_mode || $getCurrentAtlasIndex() !== node.index) {
89
102
  // 異なるブレンドモード/アトラスになるので、切り替え前にバッチを描画
@@ -1,6 +1,13 @@
1
1
  import type { IAttachmentObject } from "../../interface/IAttachmentObject";
2
2
  import type { IFilterConfig } from "../../interface/IFilterConfig";
3
3
  /**
4
- * @description 複雑なブレンドモードを適用
4
+ * @description 複雑なブレンドモードを適用し、ブレンド結果のアタッチメントを返す
5
+ * Applies a complex blend mode and returns the resulting attachment
6
+ * @param {IAttachmentObject} src_attachment - ソースアタッチメント / Source attachment
7
+ * @param {IAttachmentObject} dst_attachment - デスティネーションアタッチメント / Destination attachment
8
+ * @param {string} blend_mode - ブレンドモード名 / Blend mode name
9
+ * @param {Float32Array} color_transform - カラートランスフォーム配列 / Color transform array
10
+ * @param {IFilterConfig} config - フィルター設定 / Filter configuration
11
+ * @return {IAttachmentObject}
5
12
  */
6
- export declare const execute: (srcAttachment: IAttachmentObject, dstAttachment: IAttachmentObject, blendMode: string, colorTransform: Float32Array, config: IFilterConfig) => IAttachmentObject;
13
+ export declare const execute: (src_attachment: IAttachmentObject, dst_attachment: IAttachmentObject, blend_mode: string, color_transform: Float32Array, config: IFilterConfig) => IAttachmentObject;