@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,8 +3,48 @@ import { $currentBlendMode } from "../../Blend";
3
3
  import { renderQueue } from "@next2d/render-queue";
4
4
  import { $isMaskTestEnabled, $getMaskStencilReference } from "../../Mask";
5
5
  import { $getAtlasAttachmentObject } from "../../AtlasManager";
6
+ /**
7
+ * @description キャッシュ済みバインドグループ
8
+ * Cached bind group
9
+ */
6
10
  let $cachedBindGroup = null;
11
+ /**
12
+ * @description キャッシュ済みアトラステクスチャビュー
13
+ * Cached atlas texture view
14
+ */
7
15
  let $cachedAtlasView = null;
16
+ /**
17
+ * @description ブレンドモードに応じたインスタンスパイプライン名を返す
18
+ */
19
+ const $getPipelineName = (mode) => {
20
+ switch (mode) {
21
+ case "add":
22
+ return "instanced_add";
23
+ case "screen":
24
+ return "instanced_screen";
25
+ case "alpha":
26
+ return "instanced_alpha";
27
+ case "erase":
28
+ return "instanced_erase";
29
+ case "copy":
30
+ return "instanced_copy";
31
+ default:
32
+ return "instanced";
33
+ }
34
+ };
35
+ /**
36
+ * @description インスタンス描画を実行する
37
+ * Executes instanced array drawing
38
+ * @param {GPUDevice} device GPUデバイス / GPU device
39
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
40
+ * @param {GPURenderPassEncoder | null} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
41
+ * @param {IAttachmentObject} main_attachment メインアタッチメント / Main attachment
42
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
43
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
44
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
45
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
46
+ * @return {GPURenderPassEncoder | null} レンダーパスエンコーダまたはnull / Render pass encoder or null
47
+ */
8
48
  export const execute = (device, command_encoder, render_pass_encoder, main_attachment, buffer_manager, frame_buffer_manager, texture_manager, pipeline_manager) => {
9
49
  const shaderManager = getInstancedShaderManager();
10
50
  if (shaderManager.count === 0) {
@@ -19,26 +59,7 @@ export const execute = (device, command_encoder, render_pass_encoder, main_attac
19
59
  const maskReference = $getMaskStencilReference();
20
60
  // 現在のブレンドモードを取得
21
61
  const blendMode = $currentBlendMode;
22
- // ブレンドモードに応じたパイプライン名を生成
23
- // simpleBlendModes: normal, layer, add, screen, alpha, erase, copy
24
- const getPipelineName = (mode) => {
25
- switch (mode) {
26
- case "add":
27
- return "instanced_add";
28
- case "screen":
29
- return "instanced_screen";
30
- case "alpha":
31
- return "instanced_alpha";
32
- case "erase":
33
- return "instanced_erase";
34
- case "copy":
35
- return "instanced_copy";
36
- default:
37
- // normal, layer
38
- return "instanced";
39
- }
40
- };
41
- const pipelineName = getPipelineName(blendMode);
62
+ const pipelineName = $getPipelineName(blendMode);
42
63
  const normalPipeline = pipeline_manager.getPipeline(pipelineName);
43
64
  const maskedPipeline = pipeline_manager.getPipeline("instanced_masked");
44
65
  // 実際にマスクを使用するか判定
@@ -3,4 +3,19 @@ import type { BufferManager } from "../../BufferManager";
3
3
  import type { FrameBufferManager } from "../../FrameBufferManager";
4
4
  import type { TextureManager } from "../../TextureManager";
5
5
  import type { PipelineManager } from "../../Shader/PipelineManager";
6
- export declare const execute: (device: GPUDevice, commandEncoder: GPUCommandEncoder, renderPassEncoder: GPURenderPassEncoder | null, mainAttachment: IAttachmentObject, bufferManager: BufferManager, frameBufferManager: FrameBufferManager, textureManager: TextureManager, pipelineManager: PipelineManager, useIndirect?: boolean, useStorageBuffer?: boolean) => GPURenderPassEncoder | null;
6
+ /**
7
+ * @description Indirect描画を使用したインスタンス描画を実行する
8
+ * Executes instanced drawing with indirect draw support
9
+ * @param {GPUDevice} device GPUデバイス / GPU device
10
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
11
+ * @param {GPURenderPassEncoder | null} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
12
+ * @param {IAttachmentObject} main_attachment メインアタッチメント / Main attachment
13
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
14
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
15
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
16
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
17
+ * @param {boolean} use_indirect Indirect描画使用フラグ / Whether to use indirect drawing
18
+ * @param {boolean} use_storage_buffer StorageBuffer使用フラグ / Whether to use storage buffer
19
+ * @return {GPURenderPassEncoder | null} レンダーパスエンコーダまたはnull / Render pass encoder or null
20
+ */
21
+ export declare const execute: (device: GPUDevice, command_encoder: GPUCommandEncoder, render_pass_encoder: GPURenderPassEncoder | null, main_attachment: IAttachmentObject, buffer_manager: BufferManager, frame_buffer_manager: FrameBufferManager, texture_manager: TextureManager, pipeline_manager: PipelineManager, use_indirect?: boolean, use_storage_buffer?: boolean) => GPURenderPassEncoder | null;
@@ -3,17 +3,40 @@ import { $currentBlendMode } from "../../Blend";
3
3
  import { renderQueue } from "@next2d/render-queue";
4
4
  import { $isMaskTestEnabled, $getMaskStencilReference } from "../../Mask";
5
5
  import { $getAtlasAttachmentObject } from "../../AtlasManager";
6
+ /**
7
+ * @description キャッシュ済みバインドグループ
8
+ * Cached bind group
9
+ */
6
10
  let $cachedBindGroup = null;
11
+ /**
12
+ * @description キャッシュ済みアトラステクスチャビュー
13
+ * Cached atlas texture view
14
+ */
7
15
  let $cachedAtlasView = null;
8
- export const execute = (device, commandEncoder, renderPassEncoder, mainAttachment, bufferManager, frameBufferManager, textureManager, pipelineManager, useIndirect = true, useStorageBuffer = true) => {
16
+ /**
17
+ * @description Indirect描画を使用したインスタンス描画を実行する
18
+ * Executes instanced drawing with indirect draw support
19
+ * @param {GPUDevice} device GPUデバイス / GPU device
20
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
21
+ * @param {GPURenderPassEncoder | null} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
22
+ * @param {IAttachmentObject} main_attachment メインアタッチメント / Main attachment
23
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
24
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
25
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
26
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
27
+ * @param {boolean} use_indirect Indirect描画使用フラグ / Whether to use indirect drawing
28
+ * @param {boolean} use_storage_buffer StorageBuffer使用フラグ / Whether to use storage buffer
29
+ * @return {GPURenderPassEncoder | null} レンダーパスエンコーダまたはnull / Render pass encoder or null
30
+ */
31
+ export const execute = (device, command_encoder, render_pass_encoder, main_attachment, buffer_manager, frame_buffer_manager, texture_manager, pipeline_manager, use_indirect = true, use_storage_buffer = true) => {
9
32
  const shaderManager = getInstancedShaderManager();
10
33
  if (shaderManager.count === 0) {
11
- return renderPassEncoder;
34
+ return render_pass_encoder;
12
35
  }
13
36
  // 既存のレンダーパスを終了
14
- if (renderPassEncoder) {
15
- renderPassEncoder.end();
16
- renderPassEncoder = null;
37
+ if (render_pass_encoder) {
38
+ render_pass_encoder.end();
39
+ render_pass_encoder = null;
17
40
  }
18
41
  const isMasked = $isMaskTestEnabled();
19
42
  const maskReference = $getMaskStencilReference();
@@ -38,10 +61,10 @@ export const execute = (device, commandEncoder, renderPassEncoder, mainAttachmen
38
61
  }
39
62
  };
40
63
  const pipelineName = getPipelineName(blendMode);
41
- const normalPipeline = pipelineManager.getPipeline(pipelineName);
42
- const maskedPipeline = pipelineManager.getPipeline("instanced_masked");
64
+ const normalPipeline = pipeline_manager.getPipeline(pipelineName);
65
+ const maskedPipeline = pipeline_manager.getPipeline("instanced_masked");
43
66
  const useStencil = isMasked && maskedPipeline
44
- && (mainAttachment.msaaStencil?.view || mainAttachment.stencil?.view);
67
+ && (main_attachment.msaaStencil?.view || main_attachment.stencil?.view);
45
68
  const pipeline = useStencil ? maskedPipeline : normalPipeline;
46
69
  if (!pipeline) {
47
70
  console.error("[WebGPU] Instanced pipeline not found");
@@ -51,21 +74,21 @@ export const execute = (device, commandEncoder, renderPassEncoder, mainAttachmen
51
74
  let passEncoder;
52
75
  if (useStencil) {
53
76
  // MSAA対応
54
- const useMsaa = mainAttachment.msaa && mainAttachment.msaaTexture?.view;
55
- const colorView = useMsaa ? mainAttachment.msaaTexture.view : mainAttachment.texture.view;
56
- const stencilView = useMsaa && mainAttachment.msaaStencil?.view
57
- ? mainAttachment.msaaStencil.view : mainAttachment.stencil.view;
58
- const resolveTarget = useMsaa ? mainAttachment.texture.view : null;
59
- const renderPassDescriptor = frameBufferManager.createStencilRenderPassDescriptor(colorView, stencilView, "load", "load", resolveTarget);
60
- passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
77
+ const useMsaa = main_attachment.msaa && main_attachment.msaaTexture?.view;
78
+ const colorView = useMsaa ? main_attachment.msaaTexture.view : main_attachment.texture.view;
79
+ const stencilView = useMsaa && main_attachment.msaaStencil?.view
80
+ ? main_attachment.msaaStencil.view : main_attachment.stencil.view;
81
+ const resolveTarget = useMsaa ? main_attachment.texture.view : null;
82
+ const renderPassDescriptor = frame_buffer_manager.createStencilRenderPassDescriptor(colorView, stencilView, "load", "load", resolveTarget);
83
+ passEncoder = command_encoder.beginRenderPass(renderPassDescriptor);
61
84
  }
62
85
  else {
63
86
  // 通常のレンダーパス(MSAA対応)
64
- const useMsaa = mainAttachment.msaa && mainAttachment.msaaTexture?.view;
65
- const colorView = useMsaa ? mainAttachment.msaaTexture.view : mainAttachment.texture.view;
66
- const resolveTarget = useMsaa ? mainAttachment.texture.view : null;
67
- const renderPassDescriptor = frameBufferManager.createRenderPassDescriptor(colorView, 0, 0, 0, 0, "load", resolveTarget);
68
- passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
87
+ const useMsaa = main_attachment.msaa && main_attachment.msaaTexture?.view;
88
+ const colorView = useMsaa ? main_attachment.msaaTexture.view : main_attachment.texture.view;
89
+ const resolveTarget = useMsaa ? main_attachment.texture.view : null;
90
+ const renderPassDescriptor = frame_buffer_manager.createRenderPassDescriptor(colorView, 0, 0, 0, 0, "load", resolveTarget);
91
+ passEncoder = command_encoder.beginRenderPass(renderPassDescriptor);
69
92
  }
70
93
  passEncoder.setPipeline(pipeline);
71
94
  if (useStencil) {
@@ -75,29 +98,29 @@ export const execute = (device, commandEncoder, renderPassEncoder, mainAttachmen
75
98
  const instanceData = new Float32Array(renderQueue.buffer.buffer, renderQueue.buffer.byteOffset, renderQueue.offset);
76
99
  // インスタンスバッファを作成または取得
77
100
  let instanceBuffer;
78
- if (useStorageBuffer) {
101
+ if (use_storage_buffer) {
79
102
  // Storage Buffer最適化: プールから再利用してメモリアロケーション削減
80
103
  // Storage BufferはVERTEXフラグ付きで作成されているため、setVertexBufferで使用可能
81
- instanceBuffer = bufferManager.acquireStorageBuffer(instanceData.byteLength);
82
- bufferManager.writeStorageBuffer(instanceBuffer, instanceData);
104
+ instanceBuffer = buffer_manager.acquireStorageBuffer(instanceData.byteLength);
105
+ buffer_manager.writeStorageBuffer(instanceBuffer, instanceData);
83
106
  }
84
107
  else {
85
108
  // 従来方式: プールから再利用
86
- instanceBuffer = bufferManager.acquireVertexBuffer(instanceData.byteLength, instanceData);
109
+ instanceBuffer = buffer_manager.acquireVertexBuffer(instanceData.byteLength, instanceData);
87
110
  }
88
111
  // 頂点バッファ(矩形)を取得(キャッシュ済み)
89
- const vertexBuffer = bufferManager.getUnitRectBuffer();
112
+ const vertexBuffer = buffer_manager.getUnitRectBuffer();
90
113
  // アトラステクスチャをバインド(複数アトラス対応)
91
114
  // AtlasManagerから取得、フォールバックとしてFrameBufferManagerから取得
92
- const atlasAttachment = $getAtlasAttachmentObject() || frameBufferManager.getAttachment("atlas");
115
+ const atlasAttachment = $getAtlasAttachmentObject() || frame_buffer_manager.getAttachment("atlas");
93
116
  if (!atlasAttachment) {
94
117
  console.error("[WebGPU] Atlas attachment not found");
95
118
  passEncoder.end();
96
119
  return null;
97
120
  }
98
121
  // アトラス用サンプラーを取得(キャッシュ済み)
99
- const sampler = textureManager.createSampler("atlas_instanced_sampler", false);
100
- const bindGroupLayout = pipelineManager.getBindGroupLayout("instanced");
122
+ const sampler = texture_manager.createSampler("atlas_instanced_sampler", false);
123
+ const bindGroupLayout = pipeline_manager.getBindGroupLayout("instanced");
101
124
  if (!bindGroupLayout) {
102
125
  console.error("[WebGPU] Instanced bind group layout not found");
103
126
  passEncoder.end();
@@ -125,13 +148,13 @@ export const execute = (device, commandEncoder, renderPassEncoder, mainAttachmen
125
148
  passEncoder.setVertexBuffer(0, vertexBuffer);
126
149
  passEncoder.setVertexBuffer(1, instanceBuffer);
127
150
  passEncoder.setBindGroup(0, $cachedBindGroup);
128
- if (useIndirect) {
151
+ if (use_indirect) {
129
152
  // Indirect Drawing: CPU-GPU間のオーバーヘッドを削減
130
153
  // 注意: 1フレーム内で複数回呼び出される場合があるため、
131
154
  // 毎回新しいIndirect Bufferを作成する必要がある
132
155
  // (共有バッファを使うとqueue.writeBufferの更新が全てGPU実行前に行われ、
133
156
  // 全てのdrawIndirectが最後の更新値を使用してしまう)
134
- const indirectBuffer = bufferManager.createIndirectBuffer(6, // vertexCount (2 triangles = 6 vertices)
157
+ const indirectBuffer = buffer_manager.createIndirectBuffer(6, // vertexCount (2 triangles = 6 vertices)
135
158
  shaderManager.count, // instanceCount
136
159
  0, // firstVertex
137
160
  0 // firstInstance
@@ -1,4 +1,27 @@
1
1
  import type { IPath } from "../../interface/IPath";
2
2
  import type { BufferManager } from "../../BufferManager";
3
3
  import type { PipelineManager } from "../../Shader/PipelineManager";
4
+ /**
5
+ * @description グラデーションフィル描画を実行する
6
+ * Executes gradient fill rendering
7
+ * @param {GPUDevice} device GPUデバイス / GPU device
8
+ * @param {GPURenderPassEncoder} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
9
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
10
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
11
+ * @param {IPath[]} path_vertices パス頂点配列 / Path vertices array
12
+ * @param {Float32Array} context_matrix コンテキスト変換行列 / Context transformation matrix
13
+ * @param {Float32Array} fill_style フィルスタイル(RGBA) / Fill style (RGBA)
14
+ * @param {number} type グラデーションタイプ / Gradient type
15
+ * @param {number[]} stops グラデーションストップ配列 / Gradient stops array
16
+ * @param {Float32Array} gradient_matrix グラデーション変換行列 / Gradient transformation matrix
17
+ * @param {number} spread スプレッドモード / Spread mode
18
+ * @param {number} interpolation 補間モード / Interpolation mode
19
+ * @param {number} focal 焦点距離 / Focal point
20
+ * @param {number} viewport_width ビューポート幅 / Viewport width
21
+ * @param {number} viewport_height ビューポート高さ / Viewport height
22
+ * @param {boolean} use_atlas_target アトラスターゲット使用フラグ / Whether to use atlas target
23
+ * @param {boolean} use_stencil_pipeline ステンシルパイプライン使用フラグ / Whether to use stencil pipeline
24
+ * @param {number} _clip_level クリップレベル(未使用) / Clip level (unused)
25
+ * @return {GPUTexture | null} LUTテクスチャまたはnull / LUT texture or null
26
+ */
4
27
  export declare const execute: (device: GPUDevice, render_pass_encoder: GPURenderPassEncoder, buffer_manager: BufferManager, pipeline_manager: PipelineManager, path_vertices: IPath[], context_matrix: Float32Array, fill_style: Float32Array, type: number, stops: number[], gradient_matrix: Float32Array, spread: number, interpolation: number, focal: number, viewport_width: number, viewport_height: number, use_atlas_target: boolean, use_stencil_pipeline?: boolean, _clip_level?: number) => GPUTexture | null;
@@ -4,16 +4,63 @@ import { execute as contextComputeGradientMatrixService } from "../service/Conte
4
4
  import { $getLUTFromCache, $putLUTToCache } from "../../Gradient/GradientLUTCache";
5
5
  import { $acquireFillTexture } from "../../FillTexturePool";
6
6
  import { $isMaskDrawing, $getMaskStencilReference } from "../../Mask";
7
+ /**
8
+ * @description グラデーションサンプラーのキャッシュ
9
+ * Cached gradient sampler
10
+ */
7
11
  let $gradientSampler = null;
12
+ /**
13
+ * @description ユニフォームデータの事前確保配列(36要素)
14
+ * Pre-allocated uniform data array (36 elements)
15
+ */
8
16
  const $uniformData36 = new Float32Array(36);
17
+ /**
18
+ * @description ステンシルデータの事前確保配列(16要素)
19
+ * Pre-allocated stencil data array (16 elements)
20
+ */
9
21
  const $stencilData16 = new Float32Array(16);
22
+ /**
23
+ * @description ステンシル用動的バインドグループのキャッシュ
24
+ * Cached dynamic bind group for stencil operations
25
+ */
10
26
  let $stencilDynamicBindGroup = null;
27
+ /**
28
+ * @description ステンシル用動的バッファのキャッシュ
29
+ * Cached dynamic buffer for stencil operations
30
+ */
11
31
  let $stencilDynamicBuffer = null;
32
+ /**
33
+ * @description バインドグループエントリの事前確保配列
34
+ * Pre-allocated bind group entry array
35
+ */
12
36
  const $entries3 = [
13
37
  { "binding": 0, "resource": { "buffer": null } },
14
38
  { "binding": 1, "resource": null },
15
39
  { "binding": 2, "resource": null }
16
40
  ];
41
+ /**
42
+ * @description グラデーションフィル描画を実行する
43
+ * Executes gradient fill rendering
44
+ * @param {GPUDevice} device GPUデバイス / GPU device
45
+ * @param {GPURenderPassEncoder} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
46
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
47
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
48
+ * @param {IPath[]} path_vertices パス頂点配列 / Path vertices array
49
+ * @param {Float32Array} context_matrix コンテキスト変換行列 / Context transformation matrix
50
+ * @param {Float32Array} fill_style フィルスタイル(RGBA) / Fill style (RGBA)
51
+ * @param {number} type グラデーションタイプ / Gradient type
52
+ * @param {number[]} stops グラデーションストップ配列 / Gradient stops array
53
+ * @param {Float32Array} gradient_matrix グラデーション変換行列 / Gradient transformation matrix
54
+ * @param {number} spread スプレッドモード / Spread mode
55
+ * @param {number} interpolation 補間モード / Interpolation mode
56
+ * @param {number} focal 焦点距離 / Focal point
57
+ * @param {number} viewport_width ビューポート幅 / Viewport width
58
+ * @param {number} viewport_height ビューポート高さ / Viewport height
59
+ * @param {boolean} use_atlas_target アトラスターゲット使用フラグ / Whether to use atlas target
60
+ * @param {boolean} use_stencil_pipeline ステンシルパイプライン使用フラグ / Whether to use stencil pipeline
61
+ * @param {number} _clip_level クリップレベル(未使用) / Clip level (unused)
62
+ * @return {GPUTexture | null} LUTテクスチャまたはnull / LUT texture or null
63
+ */
17
64
  export const execute = (device, render_pass_encoder, buffer_manager, pipeline_manager, path_vertices, context_matrix, fill_style, type, stops, gradient_matrix, spread, interpolation, focal, viewport_width, viewport_height, use_atlas_target, use_stencil_pipeline = false, _clip_level = 1) => {
18
65
  // MeshFillGenerateUseCaseで頂点データを生成(4 floats/vertex: position + bezier)
19
66
  const mesh = meshFillGenerateUseCase(path_vertices);
@@ -1,4 +1,27 @@
1
1
  import type { IPath } from "../../interface/IPath";
2
2
  import type { BufferManager } from "../../BufferManager";
3
3
  import type { PipelineManager } from "../../Shader/PipelineManager";
4
+ /**
5
+ * @description グラデーションストローク描画を実行する
6
+ * Executes gradient stroke rendering
7
+ * @param {GPUDevice} device GPUデバイス / GPU device
8
+ * @param {GPURenderPassEncoder} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
9
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
10
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
11
+ * @param {IPath[]} vertices パス頂点配列 / Path vertices array
12
+ * @param {number} thickness ストローク太さ / Stroke thickness
13
+ * @param {Float32Array} context_matrix コンテキスト変換行列 / Context transformation matrix
14
+ * @param {Float32Array} stroke_style ストロークスタイル(RGBA) / Stroke style (RGBA)
15
+ * @param {number} type グラデーションタイプ / Gradient type
16
+ * @param {number[]} stops グラデーションストップ配列 / Gradient stops array
17
+ * @param {Float32Array} gradient_matrix グラデーション変換行列 / Gradient transformation matrix
18
+ * @param {number} spread スプレッドモード / Spread mode
19
+ * @param {number} interpolation 補間モード / Interpolation mode
20
+ * @param {number} focal 焦点距離 / Focal point
21
+ * @param {number} viewport_width ビューポート幅 / Viewport width
22
+ * @param {number} viewport_height ビューポート高さ / Viewport height
23
+ * @param {boolean} use_atlas_target アトラスターゲット使用フラグ / Whether to use atlas target
24
+ * @param {boolean} use_stencil_pipeline ステンシルパイプライン使用フラグ / Whether to use stencil pipeline
25
+ * @return {GPUTexture | null} LUTテクスチャまたはnull / LUT texture or null
26
+ */
4
27
  export declare const execute: (device: GPUDevice, render_pass_encoder: GPURenderPassEncoder, buffer_manager: BufferManager, pipeline_manager: PipelineManager, vertices: IPath[], thickness: number, context_matrix: Float32Array, stroke_style: Float32Array, type: number, stops: number[], gradient_matrix: Float32Array, spread: number, interpolation: number, focal: number, viewport_width: number, viewport_height: number, use_atlas_target: boolean, use_stencil_pipeline: boolean) => GPUTexture | null;
@@ -3,13 +3,48 @@ import { generateGradientLUT, getAdaptiveResolution } from "../../Gradient/Gradi
3
3
  import { execute as contextComputeGradientMatrixService } from "../service/ContextComputeGradientMatrixService";
4
4
  import { $getLUTFromCache, $putLUTToCache } from "../../Gradient/GradientLUTCache";
5
5
  import { $acquireFillTexture } from "../../FillTexturePool";
6
+ /**
7
+ * @description グラデーションサンプラーのキャッシュ
8
+ * Cached gradient sampler
9
+ */
6
10
  let $gradientSampler = null;
11
+ /**
12
+ * @description ユニフォームデータの事前確保配列(36要素)
13
+ * Pre-allocated uniform data array (36 elements)
14
+ */
7
15
  const $uniformData36 = new Float32Array(36);
16
+ /**
17
+ * @description バインドグループエントリの事前確保配列
18
+ * Pre-allocated bind group entry array
19
+ */
8
20
  const $entries3 = [
9
21
  { "binding": 0, "resource": { "buffer": null } },
10
22
  { "binding": 1, "resource": null },
11
23
  { "binding": 2, "resource": null }
12
24
  ];
25
+ /**
26
+ * @description グラデーションストローク描画を実行する
27
+ * Executes gradient stroke rendering
28
+ * @param {GPUDevice} device GPUデバイス / GPU device
29
+ * @param {GPURenderPassEncoder} render_pass_encoder レンダーパスエンコーダ / Render pass encoder
30
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
31
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
32
+ * @param {IPath[]} vertices パス頂点配列 / Path vertices array
33
+ * @param {number} thickness ストローク太さ / Stroke thickness
34
+ * @param {Float32Array} context_matrix コンテキスト変換行列 / Context transformation matrix
35
+ * @param {Float32Array} stroke_style ストロークスタイル(RGBA) / Stroke style (RGBA)
36
+ * @param {number} type グラデーションタイプ / Gradient type
37
+ * @param {number[]} stops グラデーションストップ配列 / Gradient stops array
38
+ * @param {Float32Array} gradient_matrix グラデーション変換行列 / Gradient transformation matrix
39
+ * @param {number} spread スプレッドモード / Spread mode
40
+ * @param {number} interpolation 補間モード / Interpolation mode
41
+ * @param {number} focal 焦点距離 / Focal point
42
+ * @param {number} viewport_width ビューポート幅 / Viewport width
43
+ * @param {number} viewport_height ビューポート高さ / Viewport height
44
+ * @param {boolean} use_atlas_target アトラスターゲット使用フラグ / Whether to use atlas target
45
+ * @param {boolean} use_stencil_pipeline ステンシルパイプライン使用フラグ / Whether to use stencil pipeline
46
+ * @return {GPUTexture | null} LUTテクスチャまたはnull / LUT texture or null
47
+ */
13
48
  export const execute = (device, render_pass_encoder, buffer_manager, pipeline_manager, vertices, thickness, context_matrix, stroke_style, type, stops, gradient_matrix, spread, interpolation, focal, viewport_width, viewport_height, use_atlas_target, use_stencil_pipeline) => {
14
49
  // グラデーションストローク用メッシュを生成(4 floats/vertex: position + bezier)
15
50
  const mesh = meshGradientStrokeGenerateUseCase(vertices, thickness);
@@ -3,4 +3,16 @@ import type { BufferManager } from "../../BufferManager";
3
3
  import type { FrameBufferManager } from "../../FrameBufferManager";
4
4
  import type { TextureManager } from "../../TextureManager";
5
5
  import type { PipelineManager } from "../../Shader/PipelineManager";
6
- export declare const execute: (device: GPUDevice, commandEncoder: GPUCommandEncoder, mainAttachment: IAttachmentObject | null, frameBufferManager: FrameBufferManager, textureManager: TextureManager, pipelineManager: PipelineManager, bufferManager: BufferManager) => void;
6
+ /**
7
+ * @description 複雑なブレンドモードキューを処理する
8
+ * Processes the complex blend mode queue
9
+ * @param {GPUDevice} device GPUデバイス / GPU device
10
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
11
+ * @param {IAttachmentObject | null} main_attachment メインアタッチメント / Main attachment
12
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
13
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
14
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
15
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
16
+ * @return {void}
17
+ */
18
+ export declare const execute: (device: GPUDevice, command_encoder: GPUCommandEncoder, main_attachment: IAttachmentObject | null, frame_buffer_manager: FrameBufferManager, texture_manager: TextureManager, pipeline_manager: PipelineManager, buffer_manager: BufferManager) => void;