@next2d/webgpu 3.0.5 → 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
@@ -7,18 +7,18 @@ import type { IFilterConfig } from "../../interface/IFilterConfig";
7
7
  * UV変換方式で元テクスチャとブラーテクスチャを直接サンプリング。
8
8
  * copyTextureToTextureと一時テクスチャを使用しない最適化版。
9
9
  *
10
- * @param {IAttachmentObject} sourceAttachment - 入力テクスチャ
10
+ * @param {IAttachmentObject} source_attachment - 入力テクスチャ
11
11
  * @param {Float32Array} matrix - 変換行列
12
12
  * @param {number} color - グロー色 (32bit整数)
13
13
  * @param {number} alpha - アルファ
14
- * @param {number} blurX - X方向ブラー量
15
- * @param {number} blurY - Y方向ブラー量
14
+ * @param {number} blur_x - X方向ブラー量
15
+ * @param {number} blur_y - Y方向ブラー量
16
16
  * @param {number} strength - グロー強度
17
17
  * @param {number} quality - クオリティ
18
18
  * @param {boolean} inner - インナーグロー
19
19
  * @param {boolean} knockout - ノックアウトモード
20
- * @param {number} devicePixelRatio - デバイスピクセル比
20
+ * @param {number} device_pixel_ratio - デバイスピクセル比
21
21
  * @param {IFilterConfig} config - WebGPUリソース設定
22
22
  * @return {IAttachmentObject} - フィルター適用後のアタッチメント
23
23
  */
24
- export declare const execute: (sourceAttachment: IAttachmentObject, matrix: Float32Array, color: number, alpha: number, blurX: number, blurY: number, strength: number, quality: number, inner: boolean, knockout: boolean, devicePixelRatio: number, config: IFilterConfig) => IAttachmentObject;
24
+ export declare const execute: (source_attachment: IAttachmentObject, matrix: Float32Array, color: number, alpha: number, blur_x: number, blur_y: number, strength: number, quality: number, inner: boolean, knockout: boolean, device_pixel_ratio: number, config: IFilterConfig) => IAttachmentObject;
@@ -1,4 +1,5 @@
1
1
  import { $offset } from "../FilterOffset";
2
+ import { intToPremultipliedRGBA } from "../FilterUtil";
2
3
  import { execute as filterApplyBlurFilterUseCase } from "../BlurFilter/FilterApplyBlurFilterUseCase";
3
4
  /**
4
5
  * @description プリアロケートされたFloat32Array (サイズ16)
@@ -13,15 +14,6 @@ const $entries4 = [
13
14
  { "binding": 2, "resource": null },
14
15
  { "binding": 3, "resource": null }
15
16
  ];
16
- /**
17
- * @description 32bit整数からRGB値を抽出(プリマルチプライドアルファ対応)
18
- */
19
- const intToRGBA = (color, alpha) => {
20
- const r = (color >> 16 & 0xFF) / 255 * alpha;
21
- const g = (color >> 8 & 0xFF) / 255 * alpha;
22
- const b = (color & 0xFF) / 255 * alpha;
23
- return [r, g, b, alpha];
24
- };
25
17
  /**
26
18
  * @description グローフィルターを適用
27
19
  * Apply glow filter
@@ -29,29 +21,28 @@ const intToRGBA = (color, alpha) => {
29
21
  * UV変換方式で元テクスチャとブラーテクスチャを直接サンプリング。
30
22
  * copyTextureToTextureと一時テクスチャを使用しない最適化版。
31
23
  *
32
- * @param {IAttachmentObject} sourceAttachment - 入力テクスチャ
24
+ * @param {IAttachmentObject} source_attachment - 入力テクスチャ
33
25
  * @param {Float32Array} matrix - 変換行列
34
26
  * @param {number} color - グロー色 (32bit整数)
35
27
  * @param {number} alpha - アルファ
36
- * @param {number} blurX - X方向ブラー量
37
- * @param {number} blurY - Y方向ブラー量
28
+ * @param {number} blur_x - X方向ブラー量
29
+ * @param {number} blur_y - Y方向ブラー量
38
30
  * @param {number} strength - グロー強度
39
31
  * @param {number} quality - クオリティ
40
32
  * @param {boolean} inner - インナーグロー
41
33
  * @param {boolean} knockout - ノックアウトモード
42
- * @param {number} devicePixelRatio - デバイスピクセル比
34
+ * @param {number} device_pixel_ratio - デバイスピクセル比
43
35
  * @param {IFilterConfig} config - WebGPUリソース設定
44
36
  * @return {IAttachmentObject} - フィルター適用後のアタッチメント
45
37
  */
46
- export const execute = (sourceAttachment, matrix, color, alpha, blurX, blurY, strength, quality, inner, knockout, devicePixelRatio, config) => {
38
+ export const execute = (source_attachment, matrix, color, alpha, blur_x, blur_y, strength, quality, inner, knockout, device_pixel_ratio, config) => {
47
39
  const { device, commandEncoder, frameBufferManager, pipelineManager, textureManager } = config;
48
40
  // 元のオフセットを保存
49
41
  const baseOffsetX = $offset.x;
50
42
  const baseOffsetY = $offset.y;
51
- const baseWidth = sourceAttachment.width;
52
- const baseHeight = sourceAttachment.height;
53
- // ブラーフィルターを適用(元テクスチャを保持)
54
- const blurAttachment = filterApplyBlurFilterUseCase(sourceAttachment, matrix, blurX, blurY, quality, devicePixelRatio, config);
43
+ const baseWidth = source_attachment.width;
44
+ const baseHeight = source_attachment.height;
45
+ const blurAttachment = filterApplyBlurFilterUseCase(source_attachment, matrix, blur_x, blur_y, quality, device_pixel_ratio, config);
55
46
  const blurWidth = blurAttachment.width;
56
47
  const blurHeight = blurAttachment.height;
57
48
  const blurOffsetX = $offset.x;
@@ -85,7 +76,7 @@ export const execute = (sourceAttachment, matrix, color, alpha, blurX, blurY, st
85
76
  if (!pipeline || !bindGroupLayout) {
86
77
  console.error("[WebGPU GlowFilter] Pipeline not found");
87
78
  frameBufferManager.releaseTemporaryAttachment(blurAttachment);
88
- return sourceAttachment;
79
+ return source_attachment;
89
80
  }
90
81
  // サンプラーを作成
91
82
  const sampler = textureManager.createSampler("glow_sampler", true);
@@ -95,7 +86,7 @@ export const execute = (sourceAttachment, matrix, color, alpha, blurX, blurY, st
95
86
  // blurScale: vec2<f32>, blurOffset: vec2<f32> (16 bytes)
96
87
  // strength: f32, inner: f32, knockout: f32, _padding: f32 (16 bytes)
97
88
  // Total: 64 bytes
98
- const [r, g, b, a] = intToRGBA(color, alpha);
89
+ const [r, g, b, a] = intToPremultipliedRGBA(color, alpha);
99
90
  $uniform16[0] = r;
100
91
  $uniform16[1] = g;
101
92
  $uniform16[2] = b;
@@ -125,7 +116,7 @@ export const execute = (sourceAttachment, matrix, color, alpha, blurX, blurY, st
125
116
  $entries4[0].resource.buffer = uniformBuffer;
126
117
  $entries4[1].resource = sampler;
127
118
  $entries4[2].resource = blurAttachment.texture.view;
128
- $entries4[3].resource = sourceAttachment.texture.view;
119
+ $entries4[3].resource = source_attachment.texture.view;
129
120
  const bindGroup = device.createBindGroup({
130
121
  "layout": bindGroupLayout,
131
122
  "entries": $entries4
@@ -9,21 +9,21 @@ import type { IFilterConfig } from "../../interface/IFilterConfig";
9
9
  * 2. ベベルベースにブラー適用
10
10
  * 3. UV変換方式で最終合成(isInsideでハード境界クリッピング)
11
11
  *
12
- * @param {IAttachmentObject} sourceAttachment - 入力テクスチャ
12
+ * @param {IAttachmentObject} source_attachment - 入力テクスチャ
13
13
  * @param {Float32Array} matrix - 変換行列
14
14
  * @param {number} distance - ベベルの距離
15
15
  * @param {number} angle - ベベルの角度(度)
16
16
  * @param {Float32Array} colors - 色配列
17
17
  * @param {Float32Array} alphas - アルファ配列
18
18
  * @param {Float32Array} ratios - 比率配列
19
- * @param {number} blurX - X方向ブラー量
20
- * @param {number} blurY - Y方向ブラー量
19
+ * @param {number} blur_x - X方向ブラー量
20
+ * @param {number} blur_y - Y方向ブラー量
21
21
  * @param {number} strength - ベベル強度
22
22
  * @param {number} quality - クオリティ
23
23
  * @param {number} type - タイプ (0: full, 1: inner, 2: outer)
24
24
  * @param {boolean} knockout - ノックアウトモード
25
- * @param {number} devicePixelRatio - デバイスピクセル比
26
- * @param {IGradientBevelConfig} config - WebGPUリソース設定
25
+ * @param {number} device_pixel_ratio - デバイスピクセル比
26
+ * @param {IFilterConfig} config - WebGPUリソース設定
27
27
  * @return {IAttachmentObject} - フィルター適用後のアタッチメント
28
28
  */
29
- export declare const execute: (sourceAttachment: IAttachmentObject, matrix: Float32Array, distance: number, angle: number, colors: Float32Array, alphas: Float32Array, ratios: Float32Array, blurX: number, blurY: number, strength: number, quality: number, type: number, knockout: boolean, devicePixelRatio: number, config: IFilterConfig) => IAttachmentObject;
29
+ export declare const execute: (source_attachment: IAttachmentObject, matrix: Float32Array, distance: number, angle: number, colors: Float32Array, alphas: Float32Array, ratios: Float32Array, blur_x: number, blur_y: number, strength: number, quality: number, type: number, knockout: boolean, device_pixel_ratio: number, config: IFilterConfig) => IAttachmentObject;
@@ -1,10 +1,7 @@
1
1
  import { $offset } from "../FilterOffset";
2
2
  import { execute as filterApplyBlurFilterUseCase } from "../BlurFilter/FilterApplyBlurFilterUseCase";
3
3
  import { generateFilterGradientLUT } from "../../Gradient/GradientLUTGenerator";
4
- /**
5
- * @description 度からラジアンへの変換係数
6
- */
7
- const DEG_TO_RAD = Math.PI / 180;
4
+ import { DEG_TO_RAD } from "../FilterUtil";
8
5
  /**
9
6
  * @description プリアロケートされたFloat32Array
10
7
  */
@@ -37,37 +34,37 @@ const $entries5 = [
37
34
  * 2. ベベルベースにブラー適用
38
35
  * 3. UV変換方式で最終合成(isInsideでハード境界クリッピング)
39
36
  *
40
- * @param {IAttachmentObject} sourceAttachment - 入力テクスチャ
37
+ * @param {IAttachmentObject} source_attachment - 入力テクスチャ
41
38
  * @param {Float32Array} matrix - 変換行列
42
39
  * @param {number} distance - ベベルの距離
43
40
  * @param {number} angle - ベベルの角度(度)
44
41
  * @param {Float32Array} colors - 色配列
45
42
  * @param {Float32Array} alphas - アルファ配列
46
43
  * @param {Float32Array} ratios - 比率配列
47
- * @param {number} blurX - X方向ブラー量
48
- * @param {number} blurY - Y方向ブラー量
44
+ * @param {number} blur_x - X方向ブラー量
45
+ * @param {number} blur_y - Y方向ブラー量
49
46
  * @param {number} strength - ベベル強度
50
47
  * @param {number} quality - クオリティ
51
48
  * @param {number} type - タイプ (0: full, 1: inner, 2: outer)
52
49
  * @param {boolean} knockout - ノックアウトモード
53
- * @param {number} devicePixelRatio - デバイスピクセル比
54
- * @param {IGradientBevelConfig} config - WebGPUリソース設定
50
+ * @param {number} device_pixel_ratio - デバイスピクセル比
51
+ * @param {IFilterConfig} config - WebGPUリソース設定
55
52
  * @return {IAttachmentObject} - フィルター適用後のアタッチメント
56
53
  */
57
- export const execute = (sourceAttachment, matrix, distance, angle, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout, devicePixelRatio, config) => {
54
+ export const execute = (source_attachment, matrix, distance, angle, colors, alphas, ratios, blur_x, blur_y, strength, quality, type, knockout, device_pixel_ratio, config) => {
58
55
  const { device, commandEncoder, frameBufferManager, pipelineManager, textureManager } = config;
59
56
  // 元のオフセットを保存
60
57
  const baseOffsetX = $offset.x;
61
58
  const baseOffsetY = $offset.y;
62
- const baseWidth = sourceAttachment.width;
63
- const baseHeight = sourceAttachment.height;
59
+ const baseWidth = source_attachment.width;
60
+ const baseHeight = source_attachment.height;
64
61
  // 変換行列からスケールを取得
65
62
  const xScale = Math.sqrt(matrix[0] * matrix[0] + matrix[1] * matrix[1]);
66
63
  const yScale = Math.sqrt(matrix[2] * matrix[2] + matrix[3] * matrix[3]);
67
64
  // ベベルのオフセットを計算
68
65
  const radian = angle * DEG_TO_RAD;
69
- const x = Math.cos(radian) * distance * (xScale / devicePixelRatio);
70
- const y = Math.sin(radian) * distance * (yScale / devicePixelRatio);
66
+ const x = Math.cos(radian) * distance * (xScale / device_pixel_ratio);
67
+ const y = Math.sin(radian) * distance * (yScale / device_pixel_ratio);
71
68
  // ===== Step 1: ベベルベーステクスチャ作成 =====
72
69
  // WebGL版と同じ: original * (1 - shifted_original.a)
73
70
  // shifted = original を (2x, 2y) ピクセル分シフトしたもの
@@ -75,7 +72,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
75
72
  const bevelBaseLayout = pipelineManager.getBindGroupLayout("bevel_base");
76
73
  if (!bevelBasePipeline || !bevelBaseLayout) {
77
74
  console.error("[WebGPU GradientBevelFilter] bevel_base pipeline not found");
78
- return sourceAttachment;
75
+ return source_attachment;
79
76
  }
80
77
  const bevelBaseAttachment = frameBufferManager.createTemporaryAttachment(baseWidth, baseHeight);
81
78
  const bevelBaseSampler = textureManager.createSampler("bevel_base_sampler", true);
@@ -95,7 +92,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
95
92
  }
96
93
  $entries3[0].resource.buffer = bevelBaseUniformBuffer;
97
94
  $entries3[1].resource = bevelBaseSampler;
98
- $entries3[2].resource = sourceAttachment.texture.view;
95
+ $entries3[2].resource = source_attachment.texture.view;
99
96
  const bevelBaseBindGroup = device.createBindGroup({
100
97
  "layout": bevelBaseLayout,
101
98
  "entries": $entries3
@@ -108,7 +105,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
108
105
  bevelBaseEncoder.end();
109
106
  // ===== Step 2: ベベルベースにブラー適用 =====
110
107
  // WebGL版と同じ: bevelBaseをブラーする(元テクスチャではなく)
111
- const blurAttachment = filterApplyBlurFilterUseCase(bevelBaseAttachment, matrix, blurX, blurY, quality, devicePixelRatio, config);
108
+ const blurAttachment = filterApplyBlurFilterUseCase(bevelBaseAttachment, matrix, blur_x, blur_y, quality, device_pixel_ratio, config);
112
109
  // ベベルベースは不要になったので解放
113
110
  frameBufferManager.releaseTemporaryAttachment(bevelBaseAttachment);
114
111
  const blurWidth = blurAttachment.width;
@@ -164,7 +161,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
164
161
  if (!pipeline || !bindGroupLayout) {
165
162
  console.error("[WebGPU GradientBevelFilter] Pipeline not found");
166
163
  frameBufferManager.releaseTemporaryAttachment(blurAttachment);
167
- return sourceAttachment;
164
+ return source_attachment;
168
165
  }
169
166
  const sampler = textureManager.createSampler("gradient_bevel_sampler", true);
170
167
  // ユニフォームバッファ: 12 floats = 48 bytes
@@ -193,7 +190,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
193
190
  $entries5[0].resource.buffer = uniformBuffer;
194
191
  $entries5[1].resource = sampler;
195
192
  $entries5[2].resource = blurAttachment.texture.view;
196
- $entries5[3].resource = sourceAttachment.texture.view;
193
+ $entries5[3].resource = source_attachment.texture.view;
197
194
  $entries5[4].resource = lutView;
198
195
  const bindGroup = device.createBindGroup({
199
196
  "layout": bindGroupLayout,
@@ -9,21 +9,21 @@ import type { IFilterConfig } from "../../interface/IFilterConfig";
9
9
  * 2. グラデーションLUT生成(専用テクスチャ)
10
10
  * 3. UV変換方式で最終合成(isInsideでハード境界クリッピング)
11
11
  *
12
- * @param {IAttachmentObject} sourceAttachment - 入力テクスチャ
12
+ * @param {IAttachmentObject} source_attachment - 入力テクスチャ
13
13
  * @param {Float32Array} matrix - 変換行列
14
14
  * @param {number} distance - グローの距離
15
15
  * @param {number} angle - グローの角度(度)
16
16
  * @param {Float32Array} colors - 色配列
17
17
  * @param {Float32Array} alphas - アルファ配列
18
18
  * @param {Float32Array} ratios - 比率配列
19
- * @param {number} blurX - X方向ブラー量
20
- * @param {number} blurY - Y方向ブラー量
19
+ * @param {number} blur_x - X方向ブラー量
20
+ * @param {number} blur_y - Y方向ブラー量
21
21
  * @param {number} strength - グロー強度
22
22
  * @param {number} quality - クオリティ
23
23
  * @param {number} type - タイプ (0: full, 1: inner, 2: outer)
24
24
  * @param {boolean} knockout - ノックアウトモード
25
- * @param {number} devicePixelRatio - デバイスピクセル比
25
+ * @param {number} device_pixel_ratio - デバイスピクセル比
26
26
  * @param {IFilterConfig} config - WebGPUリソース設定
27
27
  * @return {IAttachmentObject} - フィルター適用後のアタッチメント
28
28
  */
29
- export declare const execute: (sourceAttachment: IAttachmentObject, matrix: Float32Array, distance: number, angle: number, colors: Float32Array, alphas: Float32Array, ratios: Float32Array, blurX: number, blurY: number, strength: number, quality: number, type: number, knockout: boolean, devicePixelRatio: number, config: IFilterConfig) => IAttachmentObject;
29
+ export declare const execute: (source_attachment: IAttachmentObject, matrix: Float32Array, distance: number, angle: number, colors: Float32Array, alphas: Float32Array, ratios: Float32Array, blur_x: number, blur_y: number, strength: number, quality: number, type: number, knockout: boolean, device_pixel_ratio: number, config: IFilterConfig) => IAttachmentObject;
@@ -1,10 +1,7 @@
1
1
  import { $offset } from "../FilterOffset";
2
2
  import { execute as filterApplyBlurFilterUseCase } from "../BlurFilter/FilterApplyBlurFilterUseCase";
3
3
  import { generateFilterGradientLUT } from "../../Gradient/GradientLUTGenerator";
4
- /**
5
- * @description 度からラジアンへの変換係数
6
- */
7
- const DEG_TO_RAD = Math.PI / 180;
4
+ import { DEG_TO_RAD } from "../FilterUtil";
8
5
  /**
9
6
  * @description プリアロケートされたFloat32Array (サイズ12)
10
7
  */
@@ -28,32 +25,32 @@ const $entries5 = [
28
25
  * 2. グラデーションLUT生成(専用テクスチャ)
29
26
  * 3. UV変換方式で最終合成(isInsideでハード境界クリッピング)
30
27
  *
31
- * @param {IAttachmentObject} sourceAttachment - 入力テクスチャ
28
+ * @param {IAttachmentObject} source_attachment - 入力テクスチャ
32
29
  * @param {Float32Array} matrix - 変換行列
33
30
  * @param {number} distance - グローの距離
34
31
  * @param {number} angle - グローの角度(度)
35
32
  * @param {Float32Array} colors - 色配列
36
33
  * @param {Float32Array} alphas - アルファ配列
37
34
  * @param {Float32Array} ratios - 比率配列
38
- * @param {number} blurX - X方向ブラー量
39
- * @param {number} blurY - Y方向ブラー量
35
+ * @param {number} blur_x - X方向ブラー量
36
+ * @param {number} blur_y - Y方向ブラー量
40
37
  * @param {number} strength - グロー強度
41
38
  * @param {number} quality - クオリティ
42
39
  * @param {number} type - タイプ (0: full, 1: inner, 2: outer)
43
40
  * @param {boolean} knockout - ノックアウトモード
44
- * @param {number} devicePixelRatio - デバイスピクセル比
41
+ * @param {number} device_pixel_ratio - デバイスピクセル比
45
42
  * @param {IFilterConfig} config - WebGPUリソース設定
46
43
  * @return {IAttachmentObject} - フィルター適用後のアタッチメント
47
44
  */
48
- export const execute = (sourceAttachment, matrix, distance, angle, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout, devicePixelRatio, config) => {
45
+ export const execute = (source_attachment, matrix, distance, angle, colors, alphas, ratios, blur_x, blur_y, strength, quality, type, knockout, device_pixel_ratio, config) => {
49
46
  const { device, commandEncoder, frameBufferManager, pipelineManager, textureManager } = config;
50
47
  // 元のオフセットを保存
51
48
  const baseOffsetX = $offset.x;
52
49
  const baseOffsetY = $offset.y;
53
- const baseWidth = sourceAttachment.width;
54
- const baseHeight = sourceAttachment.height;
50
+ const baseWidth = source_attachment.width;
51
+ const baseHeight = source_attachment.height;
55
52
  // ブラーフィルターを適用
56
- const blurAttachment = filterApplyBlurFilterUseCase(sourceAttachment, matrix, blurX, blurY, quality, devicePixelRatio, config);
53
+ const blurAttachment = filterApplyBlurFilterUseCase(source_attachment, matrix, blur_x, blur_y, quality, device_pixel_ratio, config);
57
54
  const blurWidth = blurAttachment.width;
58
55
  const blurHeight = blurAttachment.height;
59
56
  const blurOffsetX = $offset.x;
@@ -65,8 +62,8 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
65
62
  const yScale = Math.sqrt(matrix[2] * matrix[2] + matrix[3] * matrix[3]);
66
63
  // グローのオフセットを計算
67
64
  const radian = angle * DEG_TO_RAD;
68
- const x = Math.cos(radian) * distance * (xScale / devicePixelRatio);
69
- const y = Math.sin(radian) * distance * (yScale / devicePixelRatio);
65
+ const x = Math.cos(radian) * distance * (xScale / device_pixel_ratio);
66
+ const y = Math.sin(radian) * distance * (yScale / device_pixel_ratio);
70
67
  // ===== WebGL版と同じサイズ・位置計算 =====
71
68
  const isInner = type === 1;
72
69
  const w = isInner ? baseWidth : blurWidth + Math.max(0, Math.abs(x) - offsetDiffX);
@@ -112,7 +109,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
112
109
  if (!pipeline || !bindGroupLayout) {
113
110
  console.error("[WebGPU GradientGlowFilter] Pipeline not found");
114
111
  frameBufferManager.releaseTemporaryAttachment(blurAttachment);
115
- return sourceAttachment;
112
+ return source_attachment;
116
113
  }
117
114
  const sampler = textureManager.createSampler("gradient_glow_sampler", true);
118
115
  // ユニフォームバッファ: 12 floats = 48 bytes
@@ -141,7 +138,7 @@ export const execute = (sourceAttachment, matrix, distance, angle, colors, alpha
141
138
  $entries5[0].resource.buffer = uniformBuffer;
142
139
  $entries5[1].resource = sampler;
143
140
  $entries5[2].resource = blurAttachment.texture.view;
144
- $entries5[3].resource = sourceAttachment.texture.view;
141
+ $entries5[3].resource = source_attachment.texture.view;
145
142
  $entries5[4].resource = lutView;
146
143
  const bindGroup = device.createBindGroup({
147
144
  "layout": bindGroupLayout,
@@ -1,4 +1,16 @@
1
1
  /**
2
2
  * @description レンダーパス記述子を作成(プリアロケート再利用)
3
+ * Create render pass descriptor (pre-allocated reuse)
4
+ *
5
+ * @param {GPUTextureView} view - レンダーターゲットのテクスチャビュー
6
+ * @param {number} r - クリアカラーの赤成分
7
+ * @param {number} g - クリアカラーの緑成分
8
+ * @param {number} b - クリアカラーの青成分
9
+ * @param {number} a - クリアカラーのアルファ成分
10
+ * @param {GPULoadOp} load_op - ロード操作
11
+ * @param {GPUTextureView | null} resolve_target - MSAAリゾルブターゲット
12
+ * @return {GPURenderPassDescriptor}
13
+ * @method
14
+ * @protected
3
15
  */
4
- export declare const execute: (view: GPUTextureView, r?: number, g?: number, b?: number, a?: number, loadOp?: GPULoadOp, resolveTarget?: GPUTextureView | null) => GPURenderPassDescriptor;
16
+ export declare const execute: (view: GPUTextureView, r?: number, g?: number, b?: number, a?: number, load_op?: GPULoadOp, resolve_target?: GPUTextureView | null) => GPURenderPassDescriptor;
@@ -1,23 +1,50 @@
1
+ /**
2
+ * @description クリアカラー値のプリアロケートオブジェクト
3
+ * Pre-allocated clear color value object
4
+ * @type {GPUColorDict}
5
+ */
1
6
  const $clearValue = { "r": 0, "g": 0, "b": 0, "a": 0 };
7
+ /**
8
+ * @description カラーアタッチメントのプリアロケートオブジェクト
9
+ * Pre-allocated color attachment object
10
+ * @type {GPURenderPassColorAttachment}
11
+ */
2
12
  const $colorAttachment = {
3
13
  "view": null,
4
14
  "clearValue": $clearValue,
5
15
  "loadOp": "clear",
6
16
  "storeOp": "store"
7
17
  };
18
+ /**
19
+ * @description レンダーパス記述子のプリアロケートオブジェクト
20
+ * Pre-allocated render pass descriptor object
21
+ * @type {GPURenderPassDescriptor}
22
+ */
8
23
  const $descriptor = {
9
24
  "colorAttachments": [$colorAttachment]
10
25
  };
11
26
  /**
12
27
  * @description レンダーパス記述子を作成(プリアロケート再利用)
28
+ * Create render pass descriptor (pre-allocated reuse)
29
+ *
30
+ * @param {GPUTextureView} view - レンダーターゲットのテクスチャビュー
31
+ * @param {number} r - クリアカラーの赤成分
32
+ * @param {number} g - クリアカラーの緑成分
33
+ * @param {number} b - クリアカラーの青成分
34
+ * @param {number} a - クリアカラーのアルファ成分
35
+ * @param {GPULoadOp} load_op - ロード操作
36
+ * @param {GPUTextureView | null} resolve_target - MSAAリゾルブターゲット
37
+ * @return {GPURenderPassDescriptor}
38
+ * @method
39
+ * @protected
13
40
  */
14
- export const execute = (view, r = 0, g = 0, b = 0, a = 0, loadOp = "clear", resolveTarget = null) => {
41
+ export const execute = (view, r = 0, g = 0, b = 0, a = 0, load_op = "clear", resolve_target = null) => {
15
42
  $colorAttachment.view = view;
16
43
  $clearValue.r = r;
17
44
  $clearValue.g = g;
18
45
  $clearValue.b = b;
19
46
  $clearValue.a = a;
20
- $colorAttachment.loadOp = loadOp;
21
- $colorAttachment.resolveTarget = resolveTarget ?? undefined;
47
+ $colorAttachment.loadOp = load_op;
48
+ $colorAttachment.resolveTarget = resolve_target ?? undefined;
22
49
  return $descriptor;
23
50
  };
@@ -1,4 +1,14 @@
1
1
  /**
2
2
  * @description ステンシル付きレンダーパス記述子を作成(プリアロケート再利用)
3
+ * Create render pass descriptor with stencil (pre-allocated reuse)
4
+ *
5
+ * @param {GPUTextureView} color_view - カラーアタッチメントのテクスチャビュー
6
+ * @param {GPUTextureView} stencil_view - ステンシルアタッチメントのテクスチャビュー
7
+ * @param {GPULoadOp} color_load_op - カラーのロード操作
8
+ * @param {GPULoadOp} stencil_load_op - ステンシルのロード操作
9
+ * @param {GPUTextureView | null} resolve_target - MSAAリゾルブターゲット
10
+ * @return {GPURenderPassDescriptor}
11
+ * @method
12
+ * @protected
3
13
  */
4
- export declare const execute: (colorView: GPUTextureView, stencilView: GPUTextureView, colorLoadOp?: GPULoadOp, stencilLoadOp?: GPULoadOp, resolveTarget?: GPUTextureView | null) => GPURenderPassDescriptor;
14
+ export declare const execute: (color_view: GPUTextureView, stencil_view: GPUTextureView, color_load_op?: GPULoadOp, stencil_load_op?: GPULoadOp, resolve_target?: GPUTextureView | null) => GPURenderPassDescriptor;
@@ -1,28 +1,58 @@
1
+ /**
2
+ * @description クリアカラー値のプリアロケートオブジェクト
3
+ * Pre-allocated clear color value object
4
+ * @type {GPUColorDict}
5
+ */
1
6
  const $clearValue = { "r": 0, "g": 0, "b": 0, "a": 0 };
7
+ /**
8
+ * @description カラーアタッチメントのプリアロケートオブジェクト
9
+ * Pre-allocated color attachment object
10
+ * @type {GPURenderPassColorAttachment}
11
+ */
2
12
  const $colorAttachment = {
3
13
  "view": null,
4
14
  "clearValue": $clearValue,
5
15
  "loadOp": "load",
6
16
  "storeOp": "store"
7
17
  };
18
+ /**
19
+ * @description 深度ステンシルアタッチメントのプリアロケートオブジェクト
20
+ * Pre-allocated depth stencil attachment object
21
+ * @type {GPURenderPassDepthStencilAttachment}
22
+ */
8
23
  const $depthStencilAttachment = {
9
24
  "view": null,
10
25
  "stencilClearValue": 0,
11
26
  "stencilLoadOp": "clear",
12
27
  "stencilStoreOp": "store"
13
28
  };
29
+ /**
30
+ * @description ステンシル付きレンダーパス記述子のプリアロケートオブジェクト
31
+ * Pre-allocated render pass descriptor with stencil
32
+ * @type {GPURenderPassDescriptor}
33
+ */
14
34
  const $descriptor = {
15
35
  "colorAttachments": [$colorAttachment],
16
36
  "depthStencilAttachment": $depthStencilAttachment
17
37
  };
18
38
  /**
19
39
  * @description ステンシル付きレンダーパス記述子を作成(プリアロケート再利用)
40
+ * Create render pass descriptor with stencil (pre-allocated reuse)
41
+ *
42
+ * @param {GPUTextureView} color_view - カラーアタッチメントのテクスチャビュー
43
+ * @param {GPUTextureView} stencil_view - ステンシルアタッチメントのテクスチャビュー
44
+ * @param {GPULoadOp} color_load_op - カラーのロード操作
45
+ * @param {GPULoadOp} stencil_load_op - ステンシルのロード操作
46
+ * @param {GPUTextureView | null} resolve_target - MSAAリゾルブターゲット
47
+ * @return {GPURenderPassDescriptor}
48
+ * @method
49
+ * @protected
20
50
  */
21
- export const execute = (colorView, stencilView, colorLoadOp = "load", stencilLoadOp = "clear", resolveTarget = null) => {
22
- $colorAttachment.view = colorView;
23
- $colorAttachment.loadOp = colorLoadOp;
24
- $colorAttachment.resolveTarget = resolveTarget ?? undefined;
25
- $depthStencilAttachment.view = stencilView;
26
- $depthStencilAttachment.stencilLoadOp = stencilLoadOp;
51
+ export const execute = (color_view, stencil_view, color_load_op = "load", stencil_load_op = "clear", resolve_target = null) => {
52
+ $colorAttachment.view = color_view;
53
+ $colorAttachment.loadOp = color_load_op;
54
+ $colorAttachment.resolveTarget = resolve_target ?? undefined;
55
+ $depthStencilAttachment.view = stencil_view;
56
+ $depthStencilAttachment.stencilLoadOp = stencil_load_op;
27
57
  return $descriptor;
28
58
  };
@@ -3,20 +3,20 @@ import type { IAttachmentObject } from "../../interface/IAttachmentObject";
3
3
  * @description アタッチメントオブジェクトを作成
4
4
  * Create attachment object
5
5
  *
6
- * @param {GPUDevice} device
7
- * @param {GPUTextureFormat} format
8
- * @param {Map<string, IAttachmentObject>} attachments
9
- * @param {string} name
10
- * @param {number} width
11
- * @param {number} height
12
- * @param {boolean} msaa
13
- * @param {boolean} mask
14
- * @param {{ nextId: number, textureId: number, stencilId: number }} idCounter
6
+ * @param {GPUDevice} device - GPUデバイス
7
+ * @param {GPUTextureFormat} format - テクスチャフォーマット
8
+ * @param {Map<string, IAttachmentObject>} attachments - アタッチメント管理マップ
9
+ * @param {string} name - アタッチメント名
10
+ * @param {number} width - テクスチャ幅
11
+ * @param {number} height - テクスチャ高さ
12
+ * @param {boolean} msaa - MSAA有効フラグ
13
+ * @param {boolean} mask - マスク有効フラグ
14
+ * @param {{ nextId: number, textureId: number, stencilId: number }} id_counter - ID管理カウンタ
15
15
  * @return {IAttachmentObject}
16
16
  * @method
17
17
  * @protected
18
18
  */
19
- export declare const execute: (device: GPUDevice, format: GPUTextureFormat, attachments: Map<string, IAttachmentObject>, name: string, width: number, height: number, msaa: boolean, mask: boolean, idCounter: {
19
+ export declare const execute: (device: GPUDevice, format: GPUTextureFormat, attachments: Map<string, IAttachmentObject>, name: string, width: number, height: number, msaa: boolean, mask: boolean, id_counter: {
20
20
  nextId: number;
21
21
  textureId: number;
22
22
  stencilId: number;
@@ -3,20 +3,20 @@ import { $samples } from "../../WebGPUUtil";
3
3
  * @description アタッチメントオブジェクトを作成
4
4
  * Create attachment object
5
5
  *
6
- * @param {GPUDevice} device
7
- * @param {GPUTextureFormat} format
8
- * @param {Map<string, IAttachmentObject>} attachments
9
- * @param {string} name
10
- * @param {number} width
11
- * @param {number} height
12
- * @param {boolean} msaa
13
- * @param {boolean} mask
14
- * @param {{ nextId: number, textureId: number, stencilId: number }} idCounter
6
+ * @param {GPUDevice} device - GPUデバイス
7
+ * @param {GPUTextureFormat} format - テクスチャフォーマット
8
+ * @param {Map<string, IAttachmentObject>} attachments - アタッチメント管理マップ
9
+ * @param {string} name - アタッチメント名
10
+ * @param {number} width - テクスチャ幅
11
+ * @param {number} height - テクスチャ高さ
12
+ * @param {boolean} msaa - MSAA有効フラグ
13
+ * @param {boolean} mask - マスク有効フラグ
14
+ * @param {{ nextId: number, textureId: number, stencilId: number }} id_counter - ID管理カウンタ
15
15
  * @return {IAttachmentObject}
16
16
  * @method
17
17
  * @protected
18
18
  */
19
- export const execute = (device, format, attachments, name, width, height, msaa, mask, idCounter) => {
19
+ export const execute = (device, format, attachments, name, width, height, msaa, mask, id_counter) => {
20
20
  // アトラスかどうか判定(atlas, atlas_0, atlas_1, ...)
21
21
  const isAtlas = name === "atlas" || name.startsWith("atlas_");
22
22
  // アトラステクスチャと一時アタッチメントはRGBA8フォーマットを使用
@@ -38,7 +38,7 @@ export const execute = (device, format, attachments, name, width, height, msaa,
38
38
  const textureView = gpuTexture.createView();
39
39
  // ITextureObject形式で格納(解決先テクスチャ)
40
40
  const texture = {
41
- "id": idCounter.textureId++,
41
+ "id": id_counter.textureId++,
42
42
  "resource": gpuTexture,
43
43
  "view": textureView,
44
44
  width,
@@ -57,7 +57,7 @@ export const execute = (device, format, attachments, name, width, height, msaa,
57
57
  });
58
58
  const msaaTextureView = msaaGpuTexture.createView();
59
59
  msaaTexture = {
60
- "id": idCounter.textureId++,
60
+ "id": id_counter.textureId++,
61
61
  "resource": msaaGpuTexture,
62
62
  "view": msaaTextureView,
63
63
  width,
@@ -79,7 +79,7 @@ export const execute = (device, format, attachments, name, width, height, msaa,
79
79
  });
80
80
  const stencilView = stencilTexture.createView();
81
81
  stencil = {
82
- "id": idCounter.stencilId++,
82
+ "id": id_counter.stencilId++,
83
83
  "resource": stencilTexture,
84
84
  "view": stencilView,
85
85
  width,
@@ -97,7 +97,7 @@ export const execute = (device, format, attachments, name, width, height, msaa,
97
97
  });
98
98
  const msaaStencilView = msaaStencilTexture.createView();
99
99
  msaaStencil = {
100
- "id": idCounter.stencilId++,
100
+ "id": id_counter.stencilId++,
101
101
  "resource": msaaStencilTexture,
102
102
  "view": msaaStencilView,
103
103
  width,
@@ -108,7 +108,7 @@ export const execute = (device, format, attachments, name, width, height, msaa,
108
108
  }
109
109
  }
110
110
  const attachment = {
111
- "id": idCounter.nextId++,
111
+ "id": id_counter.nextId++,
112
112
  width,
113
113
  height,
114
114
  "clipLevel": 0,
@@ -4,11 +4,11 @@ import type { IAttachmentObject } from "../../interface/IAttachmentObject";
4
4
  * Releases a temporary attachment after filter processing
5
5
  * テクスチャは即座に破棄せず、フレーム終了時に遅延解放します
6
6
  *
7
- * @param {Map<string, IAttachmentObject>} attachments
8
- * @param {IAttachmentObject[]} pendingReleases
9
- * @param {IAttachmentObject} attachment
7
+ * @param {Map<string, IAttachmentObject>} attachments - アタッチメント管理マップ
8
+ * @param {IAttachmentObject[]} pending_releases - 遅延解放キュー
9
+ * @param {IAttachmentObject} attachment - 解放するアタッチメント
10
10
  * @return {void}
11
11
  * @method
12
12
  * @protected
13
13
  */
14
- export declare const execute: (attachments: Map<string, IAttachmentObject>, pendingReleases: IAttachmentObject[], attachment: IAttachmentObject) => void;
14
+ export declare const execute: (attachments: Map<string, IAttachmentObject>, pending_releases: IAttachmentObject[], attachment: IAttachmentObject) => void;