@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
@@ -1,7 +1,14 @@
1
1
  import { execute as textureManagerInitializeSamplersService } from "./TextureManager/service/TextureManagerInitializeSamplersService";
2
- import { execute as textureManagerCreateTextureFromPixelsUseCase } from "./TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase";
3
- import { execute as textureManagerCreateTextureFromImageBitmapUseCase } from "./TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase";
2
+ /**
3
+ * @description テクスチャとサンプラーの管理クラス
4
+ * Manager class for textures and samplers
5
+ */
4
6
  export class TextureManager {
7
+ /**
8
+ * @description TextureManagerのコンストラクタ
9
+ * Constructor for TextureManager
10
+ * @param {GPUDevice} device - WebGPUデバイス / WebGPU device
11
+ */
5
12
  constructor(device) {
6
13
  Object.defineProperty(this, "device", {
7
14
  enumerable: true,
@@ -26,6 +33,15 @@ export class TextureManager {
26
33
  this.samplers = new Map();
27
34
  textureManagerInitializeSamplersService(device, this.samplers);
28
35
  }
36
+ /**
37
+ * @description 新しいGPUテクスチャを作成する
38
+ * Create a new GPU texture
39
+ * @param {string} name - テクスチャ名 / Texture name
40
+ * @param {number} width - テクスチャの幅 / Texture width
41
+ * @param {number} height - テクスチャの高さ / Texture height
42
+ * @param {GPUTextureFormat} [format="rgba8unorm"] - テクスチャフォーマット / Texture format
43
+ * @return {GPUTexture}
44
+ */
29
45
  createTexture(name, width, height, format = "rgba8unorm") {
30
46
  const texture = this.device.createTexture({
31
47
  "size": { width, height },
@@ -37,24 +53,22 @@ export class TextureManager {
37
53
  this.textures.set(name, texture);
38
54
  return texture;
39
55
  }
40
- createTextureFromPixels(name, pixels, width, height) {
41
- return textureManagerCreateTextureFromPixelsUseCase(this.device, this.textures, name, pixels, width, height);
42
- }
43
- createTextureFromImageBitmap(name, imageBitmap) {
44
- return textureManagerCreateTextureFromImageBitmapUseCase(this.device, this.textures, name, imageBitmap);
45
- }
46
- updateTexture(name, pixels, width, height) {
47
- const texture = this.textures.get(name);
48
- if (texture) {
49
- this.device.queue.writeTexture({ texture }, pixels.buffer, { "bytesPerRow": width * 4, "offset": pixels.byteOffset }, { width, height });
50
- }
51
- }
56
+ /**
57
+ * @description 名前でテクスチャを取得する
58
+ * Get a texture by name
59
+ * @param {string} name - テクスチャ名 / Texture name
60
+ * @return {GPUTexture | undefined}
61
+ */
52
62
  getTexture(name) {
53
63
  return this.textures.get(name);
54
64
  }
55
- getSampler(name) {
56
- return this.samplers.get(name);
57
- }
65
+ /**
66
+ * @description サンプラーを作成する(既存の場合は返却)
67
+ * Create a sampler (returns existing if found)
68
+ * @param {string} name - サンプラー名 / Sampler name
69
+ * @param {boolean} [smooth=true] - スムージングを有効にするか / Whether to enable smoothing
70
+ * @return {GPUSampler}
71
+ */
58
72
  createSampler(name, smooth = true) {
59
73
  const existing = this.samplers.get(name);
60
74
  if (existing) {
@@ -70,13 +84,11 @@ export class TextureManager {
70
84
  this.samplers.set(name, sampler);
71
85
  return sampler;
72
86
  }
73
- destroyTexture(name) {
74
- const texture = this.textures.get(name);
75
- if (texture) {
76
- texture.destroy();
77
- this.textures.delete(name);
78
- }
79
- }
87
+ /**
88
+ * @description 全テクスチャとサンプラーを破棄する
89
+ * Dispose all textures and samplers
90
+ * @return {void}
91
+ */
80
92
  dispose() {
81
93
  for (const texture of this.textures.values()) {
82
94
  texture.destroy();
@@ -3,12 +3,12 @@ import type { ITexturePoolBuckets } from "../../interface/IPooledTexture";
3
3
  * @description 古いプールエントリをクリーンアップ(バケットMap版 LRU回収)
4
4
  * Cleanup old pool entries (bucket Map version, LRU eviction)
5
5
  *
6
- * @param {ITexturePoolBuckets} buckets
7
- * @param {number} currentFrame
6
+ * @param {ITexturePoolBuckets} buckets - テクスチャプールバケット
7
+ * @param {number} current_frame - 現在のフレーム番号
8
8
  * @param {number} threshold - フレーム数閾値
9
- * @param {number[]} totalCount - [0]に現在の合計数を格納
9
+ * @param {number[]} total_count - [0]に現在の合計数を格納
10
10
  * @return {void}
11
11
  * @method
12
12
  * @protected
13
13
  */
14
- export declare const execute: (buckets: ITexturePoolBuckets, currentFrame: number, threshold: number, totalCount: number[]) => void;
14
+ export declare const execute: (buckets: ITexturePoolBuckets, current_frame: number, threshold: number, total_count: number[]) => void;
@@ -2,23 +2,23 @@
2
2
  * @description 古いプールエントリをクリーンアップ(バケットMap版 LRU回収)
3
3
  * Cleanup old pool entries (bucket Map version, LRU eviction)
4
4
  *
5
- * @param {ITexturePoolBuckets} buckets
6
- * @param {number} currentFrame
5
+ * @param {ITexturePoolBuckets} buckets - テクスチャプールバケット
6
+ * @param {number} current_frame - 現在のフレーム番号
7
7
  * @param {number} threshold - フレーム数閾値
8
- * @param {number[]} totalCount - [0]に現在の合計数を格納
8
+ * @param {number[]} total_count - [0]に現在の合計数を格納
9
9
  * @return {void}
10
10
  * @method
11
11
  * @protected
12
12
  */
13
- export const execute = (buckets, currentFrame, threshold, totalCount) => {
14
- const frameThreshold = currentFrame - threshold;
13
+ export const execute = (buckets, current_frame, threshold, total_count) => {
14
+ const frameThreshold = current_frame - threshold;
15
15
  for (const [key, bucket] of buckets) {
16
16
  for (let i = bucket.length - 1; i >= 0; i--) {
17
17
  const entry = bucket[i];
18
18
  if (!entry.inUse && entry.lastUsedFrame < frameThreshold) {
19
19
  entry.texture.destroy();
20
20
  bucket.splice(i, 1);
21
- totalCount[0]--;
21
+ total_count[0]--;
22
22
  }
23
23
  }
24
24
  if (bucket.length === 0) {
@@ -3,11 +3,11 @@ import type { ITexturePoolBuckets } from "../../interface/IPooledTexture";
3
3
  * @description テクスチャをプールに返却(バケットMap版)
4
4
  * Release texture back to pool (bucket Map version)
5
5
  *
6
- * @param {ITexturePoolBuckets} buckets
7
- * @param {GPUTexture} texture
8
- * @param {number} currentFrame
6
+ * @param {ITexturePoolBuckets} buckets - テクスチャプールバケット
7
+ * @param {GPUTexture} texture - 返却するテクスチャ
8
+ * @param {number} current_frame - 現在のフレーム番号
9
9
  * @return {void}
10
10
  * @method
11
11
  * @protected
12
12
  */
13
- export declare const execute: (buckets: ITexturePoolBuckets, texture: GPUTexture, currentFrame: number) => void;
13
+ export declare const execute: (buckets: ITexturePoolBuckets, texture: GPUTexture, current_frame: number) => void;
@@ -2,19 +2,19 @@
2
2
  * @description テクスチャをプールに返却(バケットMap版)
3
3
  * Release texture back to pool (bucket Map version)
4
4
  *
5
- * @param {ITexturePoolBuckets} buckets
6
- * @param {GPUTexture} texture
7
- * @param {number} currentFrame
5
+ * @param {ITexturePoolBuckets} buckets - テクスチャプールバケット
6
+ * @param {GPUTexture} texture - 返却するテクスチャ
7
+ * @param {number} current_frame - 現在のフレーム番号
8
8
  * @return {void}
9
9
  * @method
10
10
  * @protected
11
11
  */
12
- export const execute = (buckets, texture, currentFrame) => {
12
+ export const execute = (buckets, texture, current_frame) => {
13
13
  for (const bucket of buckets.values()) {
14
14
  for (let i = 0; i < bucket.length; i++) {
15
15
  if (bucket[i].texture === texture) {
16
16
  bucket[i].inUse = false;
17
- bucket[i].lastUsedFrame = currentFrame;
17
+ bucket[i].lastUsedFrame = current_frame;
18
18
  return;
19
19
  }
20
20
  }
@@ -3,17 +3,17 @@ import type { ITexturePoolBuckets } from "../../interface/IPooledTexture";
3
3
  * @description テクスチャを取得または作成(バケットMap検索)
4
4
  * Acquire texture from pool or create new one (bucket Map lookup)
5
5
  *
6
- * @param {GPUDevice} device
7
- * @param {ITexturePoolBuckets} buckets
8
- * @param {number} width
9
- * @param {number} height
10
- * @param {GPUTextureFormat} format
11
- * @param {GPUTextureUsageFlags} usage
12
- * @param {number} currentFrame
13
- * @param {number} maxPoolSize
14
- * @param {number[]} totalCount - [0]に現在の合計数を格納
6
+ * @param {GPUDevice} device - GPUデバイス
7
+ * @param {ITexturePoolBuckets} buckets - テクスチャプールバケット
8
+ * @param {number} width - テクスチャ幅
9
+ * @param {number} height - テクスチャ高さ
10
+ * @param {GPUTextureFormat} format - テクスチャフォーマット
11
+ * @param {GPUTextureUsageFlags} usage - テクスチャ使用フラグ
12
+ * @param {number} current_frame - 現在のフレーム番号
13
+ * @param {number} max_pool_size - プールの最大サイズ
14
+ * @param {number[]} total_count - [0]に現在の合計数を格納
15
15
  * @return {GPUTexture}
16
16
  * @method
17
17
  * @protected
18
18
  */
19
- export declare const execute: (device: GPUDevice, buckets: ITexturePoolBuckets, width: number, height: number, format: GPUTextureFormat, usage: GPUTextureUsageFlags, currentFrame: number, maxPoolSize: number, totalCount: number[]) => GPUTexture;
19
+ export declare const execute: (device: GPUDevice, buckets: ITexturePoolBuckets, width: number, height: number, format: GPUTextureFormat, usage: GPUTextureUsageFlags, current_frame: number, max_pool_size: number, total_count: number[]) => GPUTexture;
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * @description バケットキーを生成(exactサイズ + フォーマット)
3
+ * Build bucket key from exact size and format
3
4
  *
4
- * @param {number} width
5
- * @param {number} height
6
- * @param {GPUTextureFormat} format
5
+ * @param {number} width - テクスチャ幅
6
+ * @param {number} height - テクスチャ高さ
7
+ * @param {GPUTextureFormat} format - テクスチャフォーマット
7
8
  * @return {string}
8
9
  */
9
10
  const buildKey = (width, height, format) => {
@@ -13,20 +14,20 @@ const buildKey = (width, height, format) => {
13
14
  * @description テクスチャを取得または作成(バケットMap検索)
14
15
  * Acquire texture from pool or create new one (bucket Map lookup)
15
16
  *
16
- * @param {GPUDevice} device
17
- * @param {ITexturePoolBuckets} buckets
18
- * @param {number} width
19
- * @param {number} height
20
- * @param {GPUTextureFormat} format
21
- * @param {GPUTextureUsageFlags} usage
22
- * @param {number} currentFrame
23
- * @param {number} maxPoolSize
24
- * @param {number[]} totalCount - [0]に現在の合計数を格納
17
+ * @param {GPUDevice} device - GPUデバイス
18
+ * @param {ITexturePoolBuckets} buckets - テクスチャプールバケット
19
+ * @param {number} width - テクスチャ幅
20
+ * @param {number} height - テクスチャ高さ
21
+ * @param {GPUTextureFormat} format - テクスチャフォーマット
22
+ * @param {GPUTextureUsageFlags} usage - テクスチャ使用フラグ
23
+ * @param {number} current_frame - 現在のフレーム番号
24
+ * @param {number} max_pool_size - プールの最大サイズ
25
+ * @param {number[]} total_count - [0]に現在の合計数を格納
25
26
  * @return {GPUTexture}
26
27
  * @method
27
28
  * @protected
28
29
  */
29
- export const execute = (device, buckets, width, height, format, usage, currentFrame, maxPoolSize, totalCount) => {
30
+ export const execute = (device, buckets, width, height, format, usage, current_frame, max_pool_size, total_count) => {
30
31
  const key = buildKey(width, height, format);
31
32
  // バケットから未使用テクスチャを検索(O(1)バケット + O(n)バケット内走査)
32
33
  const bucket = buckets.get(key);
@@ -35,13 +36,13 @@ export const execute = (device, buckets, width, height, format, usage, currentFr
35
36
  const entry = bucket[i];
36
37
  if (!entry.inUse) {
37
38
  entry.inUse = true;
38
- entry.lastUsedFrame = currentFrame;
39
+ entry.lastUsedFrame = current_frame;
39
40
  return entry.texture;
40
41
  }
41
42
  }
42
43
  }
43
44
  // プールが満杯なら最も古い未使用エントリを削除(LRU回収)
44
- if (totalCount[0] >= maxPoolSize) {
45
+ if (total_count[0] >= max_pool_size) {
45
46
  let oldestFrame = Infinity;
46
47
  let oldestKey = "";
47
48
  let oldestIdx = -1;
@@ -62,7 +63,7 @@ export const execute = (device, buckets, width, height, format, usage, currentFr
62
63
  if (bEntries.length === 0) {
63
64
  buckets.delete(oldestKey);
64
65
  }
65
- totalCount[0]--;
66
+ total_count[0]--;
66
67
  }
67
68
  }
68
69
  // exactサイズで新規作成
@@ -76,7 +77,7 @@ export const execute = (device, buckets, width, height, format, usage, currentFr
76
77
  width,
77
78
  height,
78
79
  format,
79
- "lastUsedFrame": currentFrame,
80
+ "lastUsedFrame": current_frame,
80
81
  "inUse": true
81
82
  };
82
83
  if (bucket) {
@@ -85,6 +86,6 @@ export const execute = (device, buckets, width, height, format, usage, currentFr
85
86
  else {
86
87
  buckets.set(key, [entry]);
87
88
  }
88
- totalCount[0]++;
89
+ total_count[0]++;
89
90
  return texture;
90
91
  };
@@ -7,63 +7,64 @@
7
7
  * LRUベースで未使用テクスチャを回収。
8
8
  */
9
9
  export declare class TexturePool {
10
+ /**
11
+ * @description WebGPUデバイスの参照
12
+ * Reference to the WebGPU device
13
+ * @type {GPUDevice}
14
+ */
10
15
  private device;
16
+ /**
17
+ * @description Power-of-2バケットによるテクスチャプール
18
+ * Texture pool organized by power-of-2 buckets
19
+ * @type {ITexturePoolBuckets}
20
+ */
11
21
  private buckets;
22
+ /**
23
+ * @description 現在のフレーム番号
24
+ * Current frame number for LRU tracking
25
+ * @type {number}
26
+ */
12
27
  private currentFrame;
28
+ /**
29
+ * @description プール内のテクスチャ総数
30
+ * Total count of textures in the pool
31
+ * @type {number[]}
32
+ */
13
33
  private totalCount;
14
34
  /**
15
- * @param {GPUDevice} device
35
+ * @description テクスチャプールを生成する
36
+ * Create a new texture pool instance
37
+ * @param {GPUDevice} device - WebGPUデバイス / WebGPU device
16
38
  * @constructor
17
39
  */
18
40
  constructor(device: GPUDevice);
19
41
  /**
20
- * @description フレーム開始時に呼び出し
42
+ * @description フレーム開始時に呼び出し、定期的にプールをクリーンアップする
43
+ * Called at the beginning of each frame; periodically cleans up the pool
21
44
  * @return {void}
22
45
  */
23
46
  beginFrame(): void;
24
47
  /**
25
- * @description テクスチャを取得または作成
26
- * @param {number} width - テクスチャの幅
27
- * @param {number} height - テクスチャの高さ
28
- * @param {GPUTextureFormat} format - テクスチャフォーマット
29
- * @param {GPUTextureUsageFlags} usage - テクスチャ使用フラグ
48
+ * @description テクスチャを取得または作成する
49
+ * Acquire a texture from the pool or create a new one
50
+ * @param {number} width - テクスチャの幅 / texture width
51
+ * @param {number} height - テクスチャの高さ / texture height
52
+ * @param {GPUTextureFormat} format - テクスチャフォーマット / texture format
53
+ * @param {GPUTextureUsageFlags} usage - テクスチャ使用フラグ / texture usage flags
30
54
  * @return {GPUTexture}
31
55
  */
32
56
  acquire(width: number, height: number, format?: GPUTextureFormat, usage?: GPUTextureUsageFlags): GPUTexture;
33
57
  /**
34
- * @description テクスチャをプールに返却
35
- * @param {GPUTexture} texture - 返却するテクスチャ
58
+ * @description テクスチャをプールに返却する
59
+ * Release a texture back to the pool for reuse
60
+ * @param {GPUTexture} texture - 返却するテクスチャ / texture to release
36
61
  * @return {void}
37
62
  */
38
63
  release(texture: GPUTexture): void;
39
64
  /**
40
- * @description プール統計を取得
41
- * @return {{ total: number, inUse: number, available: number }}
42
- */
43
- getStats(): {
44
- total: number;
45
- inUse: number;
46
- available: number;
47
- };
48
- /**
49
- * @description 解放
65
+ * @description 全テクスチャを破棄しプールを解放する
66
+ * Destroy all textures and dispose of the pool
50
67
  * @return {void}
51
68
  */
52
69
  dispose(): void;
53
70
  }
54
- /**
55
- * @description テクスチャプールを初期化
56
- * @param {GPUDevice} device
57
- * @return {void}
58
- */
59
- export declare const initTexturePool: (device: GPUDevice) => void;
60
- /**
61
- * @description テクスチャプールを取得
62
- * @return {TexturePool | null}
63
- */
64
- export declare const getTexturePool: () => TexturePool | null;
65
- /**
66
- * @description テクスチャプールをクリア
67
- * @return {void}
68
- */
69
- export declare const clearTexturePool: () => void;
@@ -3,12 +3,16 @@ import { execute as texturePoolReleaseService } from "./TexturePool/service/Text
3
3
  import { execute as texturePoolCleanupService } from "./TexturePool/service/TexturePoolCleanupService";
4
4
  /**
5
5
  * @description プールの最大サイズ
6
+ * Maximum pool size for texture reuse
7
+ * @type {number}
6
8
  */
7
- const MAX_POOL_SIZE = 32;
9
+ const $MAX_POOL_SIZE = 32;
8
10
  /**
9
11
  * @description キャッシュのクリーンアップ閾値(フレーム数)
12
+ * Cache cleanup threshold in frames (3 seconds at 60FPS)
13
+ * @type {number}
10
14
  */
11
- const CACHE_CLEANUP_THRESHOLD = 180; // 3秒(60FPS想定)
15
+ const $CACHE_CLEANUP_THRESHOLD = 180;
12
16
  /**
13
17
  * @description テクスチャプールマネージャー(Power-of-2バケット版)
14
18
  * Texture pool manager for WebGPU optimization
@@ -19,28 +23,50 @@ const CACHE_CLEANUP_THRESHOLD = 180; // 3秒(60FPS想定)
19
23
  */
20
24
  export class TexturePool {
21
25
  /**
22
- * @param {GPUDevice} device
26
+ * @description テクスチャプールを生成する
27
+ * Create a new texture pool instance
28
+ * @param {GPUDevice} device - WebGPUデバイス / WebGPU device
23
29
  * @constructor
24
30
  */
25
31
  constructor(device) {
32
+ /**
33
+ * @description WebGPUデバイスの参照
34
+ * Reference to the WebGPU device
35
+ * @type {GPUDevice}
36
+ */
26
37
  Object.defineProperty(this, "device", {
27
38
  enumerable: true,
28
39
  configurable: true,
29
40
  writable: true,
30
41
  value: void 0
31
42
  });
43
+ /**
44
+ * @description Power-of-2バケットによるテクスチャプール
45
+ * Texture pool organized by power-of-2 buckets
46
+ * @type {ITexturePoolBuckets}
47
+ */
32
48
  Object.defineProperty(this, "buckets", {
33
49
  enumerable: true,
34
50
  configurable: true,
35
51
  writable: true,
36
52
  value: void 0
37
53
  });
54
+ /**
55
+ * @description 現在のフレーム番号
56
+ * Current frame number for LRU tracking
57
+ * @type {number}
58
+ */
38
59
  Object.defineProperty(this, "currentFrame", {
39
60
  enumerable: true,
40
61
  configurable: true,
41
62
  writable: true,
42
63
  value: void 0
43
64
  });
65
+ /**
66
+ * @description プール内のテクスチャ総数
67
+ * Total count of textures in the pool
68
+ * @type {number[]}
69
+ */
44
70
  Object.defineProperty(this, "totalCount", {
45
71
  enumerable: true,
46
72
  configurable: true,
@@ -53,62 +79,43 @@ export class TexturePool {
53
79
  this.totalCount = [0];
54
80
  }
55
81
  /**
56
- * @description フレーム開始時に呼び出し
82
+ * @description フレーム開始時に呼び出し、定期的にプールをクリーンアップする
83
+ * Called at the beginning of each frame; periodically cleans up the pool
57
84
  * @return {void}
58
85
  */
59
86
  beginFrame() {
60
87
  this.currentFrame++;
61
88
  // 定期的にプールをクリーンアップ(LRU回収)
62
89
  if (this.currentFrame % 60 === 0) {
63
- texturePoolCleanupService(this.buckets, this.currentFrame, CACHE_CLEANUP_THRESHOLD, this.totalCount);
90
+ texturePoolCleanupService(this.buckets, this.currentFrame, $CACHE_CLEANUP_THRESHOLD, this.totalCount);
64
91
  }
65
92
  }
66
93
  /**
67
- * @description テクスチャを取得または作成
68
- * @param {number} width - テクスチャの幅
69
- * @param {number} height - テクスチャの高さ
70
- * @param {GPUTextureFormat} format - テクスチャフォーマット
71
- * @param {GPUTextureUsageFlags} usage - テクスチャ使用フラグ
94
+ * @description テクスチャを取得または作成する
95
+ * Acquire a texture from the pool or create a new one
96
+ * @param {number} width - テクスチャの幅 / texture width
97
+ * @param {number} height - テクスチャの高さ / texture height
98
+ * @param {GPUTextureFormat} format - テクスチャフォーマット / texture format
99
+ * @param {GPUTextureUsageFlags} usage - テクスチャ使用フラグ / texture usage flags
72
100
  * @return {GPUTexture}
73
101
  */
74
102
  acquire(width, height, format = "rgba8unorm", usage = GPUTextureUsage.TEXTURE_BINDING |
75
103
  GPUTextureUsage.COPY_DST |
76
104
  GPUTextureUsage.RENDER_ATTACHMENT) {
77
- return texturePoolAcquireUseCase(this.device, this.buckets, width, height, format, usage, this.currentFrame, MAX_POOL_SIZE, this.totalCount);
105
+ return texturePoolAcquireUseCase(this.device, this.buckets, width, height, format, usage, this.currentFrame, $MAX_POOL_SIZE, this.totalCount);
78
106
  }
79
107
  /**
80
- * @description テクスチャをプールに返却
81
- * @param {GPUTexture} texture - 返却するテクスチャ
108
+ * @description テクスチャをプールに返却する
109
+ * Release a texture back to the pool for reuse
110
+ * @param {GPUTexture} texture - 返却するテクスチャ / texture to release
82
111
  * @return {void}
83
112
  */
84
113
  release(texture) {
85
114
  texturePoolReleaseService(this.buckets, texture, this.currentFrame);
86
115
  }
87
116
  /**
88
- * @description プール統計を取得
89
- * @return {{ total: number, inUse: number, available: number }}
90
- */
91
- getStats() {
92
- let inUse = 0;
93
- let available = 0;
94
- for (const bucket of this.buckets.values()) {
95
- for (const entry of bucket) {
96
- if (entry.inUse) {
97
- inUse++;
98
- }
99
- else {
100
- available++;
101
- }
102
- }
103
- }
104
- return {
105
- "total": this.totalCount[0],
106
- inUse,
107
- available
108
- };
109
- }
110
- /**
111
- * @description 解放
117
+ * @description 全テクスチャを破棄しプールを解放する
118
+ * Destroy all textures and dispose of the pool
112
119
  * @return {void}
113
120
  */
114
121
  dispose() {
@@ -121,31 +128,3 @@ export class TexturePool {
121
128
  this.totalCount[0] = 0;
122
129
  }
123
130
  }
124
- /**
125
- * @description グローバルテクスチャプールインスタンス
126
- */
127
- let $texturePool = null;
128
- /**
129
- * @description テクスチャプールを初期化
130
- * @param {GPUDevice} device
131
- * @return {void}
132
- */
133
- export const initTexturePool = (device) => {
134
- $texturePool = new TexturePool(device);
135
- };
136
- /**
137
- * @description テクスチャプールを取得
138
- * @return {TexturePool | null}
139
- */
140
- export const getTexturePool = () => {
141
- return $texturePool;
142
- };
143
- /**
144
- * @description テクスチャプールをクリア
145
- * @return {void}
146
- */
147
- export const clearTexturePool = () => {
148
- if ($texturePool) {
149
- $texturePool.dispose();
150
- }
151
- };