@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
@@ -2,86 +2,152 @@ import { getComplexBlendQueue, clearComplexBlendQueue } from "../../Blend/BlendI
2
2
  import { execute as blendApplyComplexBlendUseCase } from "../../Blend/usecase/BlendApplyComplexBlendUseCase";
3
3
  import { $getAtlasAttachmentObject } from "../../AtlasManager";
4
4
  // プリアロケート配列
5
+ /**
6
+ * @description ユニフォームデータの事前確保配列(4要素)
7
+ * Pre-allocated uniform data array (4 elements)
8
+ */
5
9
  const $uniform4 = new Float32Array(4);
10
+ /**
11
+ * @description ユニフォームデータの事前確保配列(6要素)
12
+ * Pre-allocated uniform data array (6 elements)
13
+ */
6
14
  const $uniform6 = new Float32Array(6);
15
+ /**
16
+ * @description ユニフォームデータの事前確保配列(8要素)
17
+ * Pre-allocated uniform data array (8 elements)
18
+ */
7
19
  const $uniform8 = new Float32Array(8);
20
+ /**
21
+ * @description ユニフォームデータの事前確保配列(12要素)
22
+ * Pre-allocated uniform data array (12 elements)
23
+ */
8
24
  const $uniform12 = new Float32Array(12);
9
25
  // プリアロケート BindGroup Entry 配列
26
+ /**
27
+ * @description バインドグループエントリの事前確保配列
28
+ * Pre-allocated bind group entry array
29
+ */
10
30
  const $entries3 = [
11
31
  { "binding": 0, "resource": { "buffer": null } },
12
32
  { "binding": 1, "resource": null },
13
33
  { "binding": 2, "resource": null }
14
34
  ];
15
- const copyTextureRegionViaRenderPass = (device, commandEncoder, srcView, dstAttachment, srcX, srcY, srcWidth, srcHeight, copyWidth, copyHeight, frameBufferManager, textureManager, pipelineManager, bufferManager) => {
16
- const pipeline = pipelineManager.getPipeline("complex_blend_copy");
17
- const bindGroupLayout = pipelineManager.getBindGroupLayout("texture_copy");
35
+ /**
36
+ * @description レンダーパスを使用してテクスチャ領域をコピーする
37
+ * Copies a texture region via render pass
38
+ * @param {GPUDevice} device GPUデバイス / GPU device
39
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
40
+ * @param {GPUTextureView} src_view ソーステクスチャビュー / Source texture view
41
+ * @param {IAttachmentObject} dst_attachment デスティネーションアタッチメント / Destination attachment
42
+ * @param {number} src_x ソースX座標 / Source X coordinate
43
+ * @param {number} src_y ソースY座標 / Source Y coordinate
44
+ * @param {number} src_width ソース幅 / Source width
45
+ * @param {number} src_height ソース高さ / Source height
46
+ * @param {number} copy_width コピー幅 / Copy width
47
+ * @param {number} copy_height コピー高さ / Copy height
48
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
49
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
50
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
51
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
52
+ * @return {void}
53
+ */
54
+ const $copyTextureRegionViaRenderPass = (device, command_encoder, src_view, dst_attachment, src_x, src_y, src_width, src_height, copy_width, copy_height, frame_buffer_manager, texture_manager, pipeline_manager, buffer_manager) => {
55
+ const pipeline = pipeline_manager.getPipeline("complex_blend_copy");
56
+ const bindGroupLayout = pipeline_manager.getBindGroupLayout("texture_copy");
18
57
  if (!pipeline || !bindGroupLayout) {
19
58
  return;
20
59
  }
21
- $uniform4[0] = copyWidth / srcWidth;
22
- $uniform4[1] = copyHeight / srcHeight;
23
- $uniform4[2] = srcX / srcWidth;
24
- $uniform4[3] = srcY / srcHeight;
25
- const uniformBuffer = bufferManager.acquireAndWriteUniformBuffer($uniform4);
26
- const sampler = textureManager.createSampler("complex_blend_copy_sampler", false);
60
+ $uniform4[0] = copy_width / src_width;
61
+ $uniform4[1] = copy_height / src_height;
62
+ $uniform4[2] = src_x / src_width;
63
+ $uniform4[3] = src_y / src_height;
64
+ const uniformBuffer = buffer_manager.acquireAndWriteUniformBuffer($uniform4);
65
+ const sampler = texture_manager.createSampler("complex_blend_copy_sampler", false);
27
66
  $entries3[0].resource.buffer = uniformBuffer;
28
67
  $entries3[1].resource = sampler;
29
- $entries3[2].resource = srcView;
68
+ $entries3[2].resource = src_view;
30
69
  const bindGroup = device.createBindGroup({
31
70
  "layout": bindGroupLayout,
32
71
  "entries": $entries3
33
72
  });
34
- const renderPassDescriptor = frameBufferManager.createRenderPassDescriptor(dstAttachment.texture.view, 0, 0, 0, 0, "clear");
35
- const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
73
+ const renderPassDescriptor = frame_buffer_manager.createRenderPassDescriptor(dst_attachment.texture.view, 0, 0, 0, 0, "clear");
74
+ const passEncoder = command_encoder.beginRenderPass(renderPassDescriptor);
36
75
  passEncoder.setPipeline(pipeline);
37
76
  passEncoder.setBindGroup(0, bindGroup);
38
77
  passEncoder.draw(6, 1, 0, 0);
39
78
  passEncoder.end();
40
79
  };
41
- const drawToMainAttachment = (device, commandEncoder, srcAttachment, mainAttachment, dstX, dstY, frameBufferManager, textureManager, pipelineManager, bufferManager) => {
42
- const useMsaa = mainAttachment.msaa && mainAttachment.msaaTexture?.view;
80
+ /**
81
+ * @description ブレンド結果をメインアタッチメントに描画する
82
+ * Draws blend result to the main attachment
83
+ * @param {GPUDevice} device GPUデバイス / GPU device
84
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
85
+ * @param {IAttachmentObject} src_attachment ソースアタッチメント / Source attachment
86
+ * @param {IAttachmentObject} main_attachment メインアタッチメント / Main attachment
87
+ * @param {number} dst_x デスティネーションX座標 / Destination X coordinate
88
+ * @param {number} dst_y デスティネーションY座標 / Destination Y coordinate
89
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
90
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
91
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
92
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
93
+ * @return {void}
94
+ */
95
+ const $drawToMainAttachment = (device, command_encoder, src_attachment, main_attachment, dst_x, dst_y, frame_buffer_manager, texture_manager, pipeline_manager, buffer_manager) => {
96
+ const useMsaa = main_attachment.msaa && main_attachment.msaaTexture?.view;
43
97
  const pipelineName = useMsaa ? "complex_blend_output_msaa" : "complex_blend_output";
44
- const pipeline = pipelineManager.getPipeline(pipelineName);
45
- const bindGroupLayout = pipelineManager.getBindGroupLayout("positioned_texture");
98
+ const pipeline = pipeline_manager.getPipeline(pipelineName);
99
+ const bindGroupLayout = pipeline_manager.getBindGroupLayout("positioned_texture");
46
100
  if (!pipeline || !bindGroupLayout) {
47
101
  return;
48
102
  }
49
- $uniform8[0] = dstX;
50
- $uniform8[1] = dstY;
51
- $uniform8[2] = srcAttachment.width;
52
- $uniform8[3] = srcAttachment.height;
53
- $uniform8[4] = mainAttachment.width;
54
- $uniform8[5] = mainAttachment.height;
103
+ $uniform8[0] = dst_x;
104
+ $uniform8[1] = dst_y;
105
+ $uniform8[2] = src_attachment.width;
106
+ $uniform8[3] = src_attachment.height;
107
+ $uniform8[4] = main_attachment.width;
108
+ $uniform8[5] = main_attachment.height;
55
109
  $uniform8[6] = 0;
56
110
  $uniform8[7] = 0;
57
- const uniformBuffer = bufferManager.acquireAndWriteUniformBuffer($uniform8);
58
- const sampler = textureManager.createSampler("complex_blend_output_sampler", false);
111
+ const uniformBuffer = buffer_manager.acquireAndWriteUniformBuffer($uniform8);
112
+ const sampler = texture_manager.createSampler("complex_blend_output_sampler", false);
59
113
  $entries3[0].resource.buffer = uniformBuffer;
60
114
  $entries3[1].resource = sampler;
61
- $entries3[2].resource = srcAttachment.texture.view;
115
+ $entries3[2].resource = src_attachment.texture.view;
62
116
  const bindGroup = device.createBindGroup({
63
117
  "layout": bindGroupLayout,
64
118
  "entries": $entries3
65
119
  });
66
- const colorView = useMsaa ? mainAttachment.msaaTexture.view : mainAttachment.texture.view;
67
- const resolveTarget = useMsaa ? mainAttachment.texture.view : null;
68
- const renderPassDescriptor = frameBufferManager.createRenderPassDescriptor(colorView, 0, 0, 0, 0, "load", resolveTarget);
69
- const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
120
+ const colorView = useMsaa ? main_attachment.msaaTexture.view : main_attachment.texture.view;
121
+ const resolveTarget = useMsaa ? main_attachment.texture.view : null;
122
+ const renderPassDescriptor = frame_buffer_manager.createRenderPassDescriptor(colorView, 0, 0, 0, 0, "load", resolveTarget);
123
+ const passEncoder = command_encoder.beginRenderPass(renderPassDescriptor);
70
124
  passEncoder.setPipeline(pipeline);
71
125
  passEncoder.setBindGroup(0, bindGroup);
72
126
  passEncoder.draw(6, 1, 0, 0);
73
127
  passEncoder.end();
74
128
  };
75
- export const execute = (device, commandEncoder, mainAttachment, frameBufferManager, textureManager, pipelineManager, bufferManager) => {
129
+ /**
130
+ * @description 複雑なブレンドモードキューを処理する
131
+ * Processes the complex blend mode queue
132
+ * @param {GPUDevice} device GPUデバイス / GPU device
133
+ * @param {GPUCommandEncoder} command_encoder コマンドエンコーダ / Command encoder
134
+ * @param {IAttachmentObject | null} main_attachment メインアタッチメント / Main attachment
135
+ * @param {FrameBufferManager} frame_buffer_manager フレームバッファマネージャ / Frame buffer manager
136
+ * @param {TextureManager} texture_manager テクスチャマネージャ / Texture manager
137
+ * @param {PipelineManager} pipeline_manager パイプラインマネージャ / Pipeline manager
138
+ * @param {BufferManager} buffer_manager バッファマネージャ / Buffer manager
139
+ * @return {void}
140
+ */
141
+ export const execute = (device, command_encoder, main_attachment, frame_buffer_manager, texture_manager, pipeline_manager, buffer_manager) => {
76
142
  const queue = getComplexBlendQueue();
77
143
  if (queue.length === 0) {
78
144
  return;
79
145
  }
80
- if (!mainAttachment || !mainAttachment.texture) {
146
+ if (!main_attachment || !main_attachment.texture) {
81
147
  clearComplexBlendQueue();
82
148
  return;
83
149
  }
84
- const atlasAttachment = $getAtlasAttachmentObject() || frameBufferManager.getAttachment("atlas");
150
+ const atlasAttachment = $getAtlasAttachmentObject() || frame_buffer_manager.getAttachment("atlas");
85
151
  if (!atlasAttachment || !atlasAttachment.texture) {
86
152
  clearComplexBlendQueue();
87
153
  return;
@@ -95,23 +161,23 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
95
161
  }
96
162
  const dstX = Math.max(0, Math.floor(matrix[6]));
97
163
  const dstY = Math.max(0, Math.floor(matrix[7]));
98
- if (dstX >= mainAttachment.width || dstY >= mainAttachment.height) {
164
+ if (dstX >= main_attachment.width || dstY >= main_attachment.height) {
99
165
  continue;
100
166
  }
101
167
  const hasScale = matrix[0] !== 1 || matrix[1] !== 0 || matrix[3] !== 0 || matrix[4] !== 1;
102
168
  const blendWidth = hasScale ? width : node.w;
103
169
  const blendHeight = hasScale ? height : node.h;
104
- const clippedWidth = Math.min(blendWidth, mainAttachment.width - dstX);
105
- const clippedHeight = Math.min(blendHeight, mainAttachment.height - dstY);
170
+ const clippedWidth = Math.min(blendWidth, main_attachment.width - dstX);
171
+ const clippedHeight = Math.min(blendHeight, main_attachment.height - dstY);
106
172
  if (clippedWidth <= 0 || clippedHeight <= 0) {
107
173
  continue;
108
174
  }
109
175
  // 1. ソーステクスチャを作成
110
176
  let srcAttachment;
111
177
  if (hasScale) {
112
- srcAttachment = frameBufferManager.createTemporaryAttachment(blendWidth, blendHeight);
113
- const scalePipeline = pipelineManager.getPipeline("complex_blend_scale");
114
- const scaleBindGroupLayout = pipelineManager.getBindGroupLayout("texture_scale");
178
+ srcAttachment = frame_buffer_manager.createTemporaryAttachment(blendWidth, blendHeight);
179
+ const scalePipeline = pipeline_manager.getPipeline("complex_blend_scale");
180
+ const scaleBindGroupLayout = pipeline_manager.getBindGroupLayout("texture_scale");
115
181
  if (scalePipeline && scaleBindGroupLayout) {
116
182
  const halfW = blendWidth / 2;
117
183
  const halfH = blendHeight / 2;
@@ -123,8 +189,8 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
123
189
  $uniform6[3] = matrix[4];
124
190
  $uniform6[4] = -halfNodeW * matrix[0] - halfNodeH * matrix[3] + halfW;
125
191
  $uniform6[5] = -halfNodeW * matrix[1] - halfNodeH * matrix[4] + halfH;
126
- const originalAttachment = frameBufferManager.createTemporaryAttachment(node.w, node.h);
127
- commandEncoder.copyTextureToTexture({
192
+ const originalAttachment = frame_buffer_manager.createTemporaryAttachment(node.w, node.h);
193
+ command_encoder.copyTextureToTexture({
128
194
  "texture": atlasAttachment.texture.resource,
129
195
  "origin": { "x": node.x, "y": node.y, "z": 0 }
130
196
  }, {
@@ -143,8 +209,8 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
143
209
  $uniform12[9] = blendHeight;
144
210
  $uniform12[10] = 0;
145
211
  $uniform12[11] = 0;
146
- const uniformBuffer = bufferManager.acquireAndWriteUniformBuffer($uniform12, 48);
147
- const sampler = textureManager.createSampler("scale_sampler", true);
212
+ const uniformBuffer = buffer_manager.acquireAndWriteUniformBuffer($uniform12, 48);
213
+ const sampler = texture_manager.createSampler("scale_sampler", true);
148
214
  $entries3[0].resource.buffer = uniformBuffer;
149
215
  $entries3[1].resource = sampler;
150
216
  $entries3[2].resource = originalAttachment.texture.view;
@@ -152,16 +218,16 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
152
218
  "layout": scaleBindGroupLayout,
153
219
  "entries": $entries3
154
220
  });
155
- const renderPassDescriptor = frameBufferManager.createRenderPassDescriptor(srcAttachment.texture.view, 0, 0, 0, 0, "clear");
156
- const passEncoder = commandEncoder.beginRenderPass(renderPassDescriptor);
221
+ const renderPassDescriptor = frame_buffer_manager.createRenderPassDescriptor(srcAttachment.texture.view, 0, 0, 0, 0, "clear");
222
+ const passEncoder = command_encoder.beginRenderPass(renderPassDescriptor);
157
223
  passEncoder.setPipeline(scalePipeline);
158
224
  passEncoder.setBindGroup(0, bindGroup);
159
225
  passEncoder.draw(6, 1, 0, 0);
160
226
  passEncoder.end();
161
- frameBufferManager.releaseTemporaryAttachment(originalAttachment);
227
+ frame_buffer_manager.releaseTemporaryAttachment(originalAttachment);
162
228
  }
163
229
  else {
164
- commandEncoder.copyTextureToTexture({
230
+ command_encoder.copyTextureToTexture({
165
231
  "texture": atlasAttachment.texture.resource,
166
232
  "origin": { "x": node.x, "y": node.y, "z": 0 }
167
233
  }, {
@@ -171,8 +237,8 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
171
237
  }
172
238
  }
173
239
  else {
174
- srcAttachment = frameBufferManager.createTemporaryAttachment(blendWidth, blendHeight);
175
- commandEncoder.copyTextureToTexture({
240
+ srcAttachment = frame_buffer_manager.createTemporaryAttachment(blendWidth, blendHeight);
241
+ command_encoder.copyTextureToTexture({
176
242
  "texture": atlasAttachment.texture.resource,
177
243
  "origin": { "x": node.x, "y": node.y, "z": 0 }
178
244
  }, {
@@ -181,8 +247,8 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
181
247
  }, { "width": blendWidth, "height": blendHeight });
182
248
  }
183
249
  // 2. デスティネーションテクスチャを作成(メインからレンダーパスでコピー)
184
- const dstAttachment = frameBufferManager.createTemporaryAttachment(blendWidth, blendHeight);
185
- copyTextureRegionViaRenderPass(device, commandEncoder, mainAttachment.texture.view, dstAttachment, dstX, dstY, mainAttachment.width, mainAttachment.height, blendWidth, blendHeight, frameBufferManager, textureManager, pipelineManager, bufferManager);
250
+ const dstAttachment = frame_buffer_manager.createTemporaryAttachment(blendWidth, blendHeight);
251
+ $copyTextureRegionViaRenderPass(device, command_encoder, main_attachment.texture.view, dstAttachment, dstX, dstY, main_attachment.width, main_attachment.height, blendWidth, blendHeight, frame_buffer_manager, texture_manager, pipeline_manager, buffer_manager);
186
252
  // 3. カラートランスフォームを準備(add値は生値)
187
253
  $uniform8[0] = color_transform[0];
188
254
  $uniform8[1] = color_transform[1];
@@ -194,20 +260,20 @@ export const execute = (device, commandEncoder, mainAttachment, frameBufferManag
194
260
  $uniform8[7] = 0;
195
261
  // 4. 複雑なブレンドを適用
196
262
  const blendedAttachment = blendApplyComplexBlendUseCase(srcAttachment, dstAttachment, blend_mode, $uniform8, {
197
- device,
198
- commandEncoder,
199
- bufferManager,
200
- frameBufferManager,
201
- pipelineManager,
202
- textureManager,
263
+ "device": device,
264
+ "commandEncoder": command_encoder,
265
+ "bufferManager": buffer_manager,
266
+ "frameBufferManager": frame_buffer_manager,
267
+ "pipelineManager": pipeline_manager,
268
+ "textureManager": texture_manager,
203
269
  "frameTextures": []
204
270
  });
205
271
  // 5. 結果をメインアタッチメントに描画
206
- drawToMainAttachment(device, commandEncoder, blendedAttachment, mainAttachment, dstX, dstY, frameBufferManager, textureManager, pipelineManager, bufferManager);
272
+ $drawToMainAttachment(device, command_encoder, blendedAttachment, main_attachment, dstX, dstY, frame_buffer_manager, texture_manager, pipeline_manager, buffer_manager);
207
273
  // 6. 一時テクスチャを解放
208
- frameBufferManager.releaseTemporaryAttachment(srcAttachment);
209
- frameBufferManager.releaseTemporaryAttachment(dstAttachment);
210
- frameBufferManager.releaseTemporaryAttachment(blendedAttachment);
274
+ frame_buffer_manager.releaseTemporaryAttachment(srcAttachment);
275
+ frame_buffer_manager.releaseTemporaryAttachment(dstAttachment);
276
+ frame_buffer_manager.releaseTemporaryAttachment(blendedAttachment);
211
277
  }
212
278
  clearComplexBlendQueue();
213
279
  };