@next2d/webgpu 3.0.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 (349) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +574 -0
  3. package/package.json +30 -0
  4. package/src/AtlasManager.d.ts +23 -0
  5. package/src/AtlasManager.js +123 -0
  6. package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.d.ts +13 -0
  7. package/src/AttachmentManager/service/AttachmentManagerCreateAttachmentObjectService.js +24 -0
  8. package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.d.ts +15 -0
  9. package/src/AttachmentManager/service/AttachmentManagerCreateColorBufferService.js +31 -0
  10. package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.d.ts +5 -0
  11. package/src/AttachmentManager/service/AttachmentManagerCreateRenderPassDescriptorService.js +42 -0
  12. package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.d.ts +16 -0
  13. package/src/AttachmentManager/service/AttachmentManagerCreateStencilBufferService.js +28 -0
  14. package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.d.ts +17 -0
  15. package/src/AttachmentManager/service/AttachmentManagerCreateTextureObjectService.js +33 -0
  16. package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.d.ts +16 -0
  17. package/src/AttachmentManager/service/AttachmentManagerGetColorBufferService.js +28 -0
  18. package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.d.ts +17 -0
  19. package/src/AttachmentManager/service/AttachmentManagerGetStencilBufferService.js +27 -0
  20. package/src/AttachmentManager/service/AttachmentManagerGetTextureService.d.ts +18 -0
  21. package/src/AttachmentManager/service/AttachmentManagerGetTextureService.js +27 -0
  22. package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.d.ts +12 -0
  23. package/src/AttachmentManager/service/AttachmentManagerReleaseTextureService.js +17 -0
  24. package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.d.ts +26 -0
  25. package/src/AttachmentManager/usecase/AttachmentManagerGetAttachmentObjectUseCase.js +43 -0
  26. package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.d.ts +18 -0
  27. package/src/AttachmentManager/usecase/AttachmentManagerReleaseAttachmentUseCase.js +33 -0
  28. package/src/AttachmentManager.d.ts +19 -0
  29. package/src/AttachmentManager.js +105 -0
  30. package/src/BezierConverter/BezierConverter.d.ts +16 -0
  31. package/src/BezierConverter/BezierConverter.js +15 -0
  32. package/src/BezierConverter/service/BezierConverterCalculateFlatnessService.d.ts +15 -0
  33. package/src/BezierConverter/service/BezierConverterCalculateFlatnessService.js +37 -0
  34. package/src/BezierConverter/service/BezierConverterSplitCubicService.d.ts +15 -0
  35. package/src/BezierConverter/service/BezierConverterSplitCubicService.js +47 -0
  36. package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.d.ts +29 -0
  37. package/src/BezierConverter/usecase/BezierConverterAdaptiveCubicToQuadUseCase.js +80 -0
  38. package/src/Blend/BlendInstancedManager.d.ts +35 -0
  39. package/src/Blend/BlendInstancedManager.js +147 -0
  40. package/src/Blend/service/BlendAddService.d.ts +1 -0
  41. package/src/Blend/service/BlendAddService.js +8 -0
  42. package/src/Blend/service/BlendAlphaService.d.ts +1 -0
  43. package/src/Blend/service/BlendAlphaService.js +8 -0
  44. package/src/Blend/service/BlendEraseService.d.ts +1 -0
  45. package/src/Blend/service/BlendEraseService.js +8 -0
  46. package/src/Blend/service/BlendGetStateService.d.ts +12 -0
  47. package/src/Blend/service/BlendGetStateService.js +13 -0
  48. package/src/Blend/service/BlendOneZeroService.d.ts +1 -0
  49. package/src/Blend/service/BlendOneZeroService.js +8 -0
  50. package/src/Blend/service/BlendResetService.d.ts +1 -0
  51. package/src/Blend/service/BlendResetService.js +8 -0
  52. package/src/Blend/service/BlendScreenService.d.ts +1 -0
  53. package/src/Blend/service/BlendScreenService.js +8 -0
  54. package/src/Blend/service/BlendSetModeService.d.ts +2 -0
  55. package/src/Blend/service/BlendSetModeService.js +4 -0
  56. package/src/Blend/usecase/BlendApplyComplexBlendUseCase.d.ts +6 -0
  57. package/src/Blend/usecase/BlendApplyComplexBlendUseCase.js +79 -0
  58. package/src/Blend/usecase/BlendOperationUseCase.d.ts +11 -0
  59. package/src/Blend/usecase/BlendOperationUseCase.js +31 -0
  60. package/src/Blend.d.ts +8 -0
  61. package/src/Blend.js +91 -0
  62. package/src/BufferManager/service/BufferManagerCreateIndirectBufferService.d.ts +15 -0
  63. package/src/BufferManager/service/BufferManagerCreateIndirectBufferService.js +37 -0
  64. package/src/BufferManager/service/BufferManagerCreateRectVerticesService.d.ts +13 -0
  65. package/src/BufferManager/service/BufferManagerCreateRectVerticesService.js +23 -0
  66. package/src/BufferManager/service/BufferManagerCreateStorageBufferService.d.ts +17 -0
  67. package/src/BufferManager/service/BufferManagerCreateStorageBufferService.js +23 -0
  68. package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.d.ts +12 -0
  69. package/src/BufferManager/service/BufferManagerReleaseUniformBufferService.js +32 -0
  70. package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.d.ts +12 -0
  71. package/src/BufferManager/service/BufferManagerReleaseVertexBufferService.js +32 -0
  72. package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.d.ts +12 -0
  73. package/src/BufferManager/service/BufferManagerUpdateIndirectBufferService.js +20 -0
  74. package/src/BufferManager/service/BufferManagerUpperPowerOfTwoService.d.ts +10 -0
  75. package/src/BufferManager/service/BufferManagerUpperPowerOfTwoService.js +18 -0
  76. package/src/BufferManager/usecase/BufferManagerAcquireStorageBufferUseCase.d.ts +15 -0
  77. package/src/BufferManager/usecase/BufferManagerAcquireStorageBufferUseCase.js +51 -0
  78. package/src/BufferManager/usecase/BufferManagerAcquireUniformBufferUseCase.d.ts +13 -0
  79. package/src/BufferManager/usecase/BufferManagerAcquireUniformBufferUseCase.js +26 -0
  80. package/src/BufferManager/usecase/BufferManagerAcquireVertexBufferUseCase.d.ts +14 -0
  81. package/src/BufferManager/usecase/BufferManagerAcquireVertexBufferUseCase.js +46 -0
  82. package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.d.ts +12 -0
  83. package/src/BufferManager/usecase/BufferManagerCleanupStorageBuffersUseCase.js +20 -0
  84. package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.d.ts +9 -0
  85. package/src/BufferManager/usecase/BufferManagerReleaseStorageBufferUseCase.js +15 -0
  86. package/src/BufferManager.d.ts +93 -0
  87. package/src/BufferManager.js +487 -0
  88. package/src/Compute/ComputePipelineManager.d.ts +61 -0
  89. package/src/Compute/ComputePipelineManager.js +313 -0
  90. package/src/Compute/service/ComputeExecuteBlurService.d.ts +21 -0
  91. package/src/Compute/service/ComputeExecuteBlurService.js +81 -0
  92. package/src/Context/service/ContextComputeBitmapMatrixService.d.ts +1 -0
  93. package/src/Context/service/ContextComputeBitmapMatrixService.js +74 -0
  94. package/src/Context/service/ContextComputeGradientMatrixService.d.ts +4 -0
  95. package/src/Context/service/ContextComputeGradientMatrixService.js +88 -0
  96. package/src/Context/service/ContextFillSimpleService.d.ts +2 -0
  97. package/src/Context/service/ContextFillSimpleService.js +28 -0
  98. package/src/Context/service/ContextFillWithStencilMainService.d.ts +2 -0
  99. package/src/Context/service/ContextFillWithStencilMainService.js +19 -0
  100. package/src/Context/service/ContextFillWithStencilService.d.ts +2 -0
  101. package/src/Context/service/ContextFillWithStencilService.js +19 -0
  102. package/src/Context/usecase/ContextApplyFilterUseCase.d.ts +5 -0
  103. package/src/Context/usecase/ContextApplyFilterUseCase.js +668 -0
  104. package/src/Context/usecase/ContextBitmapFillUseCase.d.ts +4 -0
  105. package/src/Context/usecase/ContextBitmapFillUseCase.js +210 -0
  106. package/src/Context/usecase/ContextBitmapStrokeUseCase.d.ts +4 -0
  107. package/src/Context/usecase/ContextBitmapStrokeUseCase.js +119 -0
  108. package/src/Context/usecase/ContextClipUseCase.d.ts +5 -0
  109. package/src/Context/usecase/ContextClipUseCase.js +101 -0
  110. package/src/Context/usecase/ContextContainerEndLayerUseCase.d.ts +5 -0
  111. package/src/Context/usecase/ContextContainerEndLayerUseCase.js +476 -0
  112. package/src/Context/usecase/ContextDrawArraysInstancedUseCase.d.ts +6 -0
  113. package/src/Context/usecase/ContextDrawArraysInstancedUseCase.js +135 -0
  114. package/src/Context/usecase/ContextDrawIndirectUseCase.d.ts +6 -0
  115. package/src/Context/usecase/ContextDrawIndirectUseCase.js +154 -0
  116. package/src/Context/usecase/ContextGradientFillUseCase.d.ts +4 -0
  117. package/src/Context/usecase/ContextGradientFillUseCase.js +230 -0
  118. package/src/Context/usecase/ContextGradientStrokeUseCase.d.ts +4 -0
  119. package/src/Context/usecase/ContextGradientStrokeUseCase.js +138 -0
  120. package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.d.ts +6 -0
  121. package/src/Context/usecase/ContextProcessComplexBlendQueueUseCase.js +213 -0
  122. package/src/Context.d.ts +430 -0
  123. package/src/Context.js +2453 -0
  124. package/src/FillTexturePool.d.ts +6 -0
  125. package/src/FillTexturePool.js +72 -0
  126. package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.d.ts +10 -0
  127. package/src/Filter/BevelFilter/FilterApplyBevelFilterUseCase.js +214 -0
  128. package/src/Filter/BevelFilterShader.d.ts +2 -0
  129. package/src/Filter/BevelFilterShader.js +107 -0
  130. package/src/Filter/BitmapFilterShader.d.ts +2 -0
  131. package/src/Filter/BitmapFilterShader.js +207 -0
  132. package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.d.ts +16 -0
  133. package/src/Filter/BlurFilter/FilterApplyBlurFilterUseCase.js +243 -0
  134. package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.d.ts +40 -0
  135. package/src/Filter/BlurFilter/service/BlurFilterComputeShaderService.js +51 -0
  136. package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.d.ts +25 -0
  137. package/src/Filter/BlurFilter/usecase/FilterApplyBlurComputeUseCase.js +180 -0
  138. package/src/Filter/BlurFilterShader.d.ts +5 -0
  139. package/src/Filter/BlurFilterShader.js +109 -0
  140. package/src/Filter/BlurFilterUseCase.d.ts +36 -0
  141. package/src/Filter/BlurFilterUseCase.js +85 -0
  142. package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.d.ts +12 -0
  143. package/src/Filter/ColorMatrixFilter/FilterApplyColorMatrixFilterUseCase.js +90 -0
  144. package/src/Filter/ColorMatrixFilterShader.d.ts +4 -0
  145. package/src/Filter/ColorMatrixFilterShader.js +51 -0
  146. package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.d.ts +6 -0
  147. package/src/Filter/ConvolutionFilter/FilterApplyConvolutionFilterUseCase.js +144 -0
  148. package/src/Filter/ConvolutionFilterShader.d.ts +2 -0
  149. package/src/Filter/ConvolutionFilterShader.js +115 -0
  150. package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.d.ts +6 -0
  151. package/src/Filter/DisplacementMapFilter/FilterApplyDisplacementMapFilterUseCase.js +172 -0
  152. package/src/Filter/DisplacementMapFilterShader.d.ts +2 -0
  153. package/src/Filter/DisplacementMapFilterShader.js +114 -0
  154. package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.d.ts +24 -0
  155. package/src/Filter/DropShadowFilter/FilterApplyDropShadowFilterUseCase.js +179 -0
  156. package/src/Filter/DropShadowFilterShader.d.ts +4 -0
  157. package/src/Filter/DropShadowFilterShader.js +93 -0
  158. package/src/Filter/FilterGradientLUTCache.d.ts +29 -0
  159. package/src/Filter/FilterGradientLUTCache.js +84 -0
  160. package/src/Filter/FilterOffset.d.ts +8 -0
  161. package/src/Filter/FilterOffset.js +10 -0
  162. package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.d.ts +24 -0
  163. package/src/Filter/GlowFilter/FilterApplyGlowFilterUseCase.js +143 -0
  164. package/src/Filter/GlowFilterShader.d.ts +4 -0
  165. package/src/Filter/GlowFilterShader.js +66 -0
  166. package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.d.ts +29 -0
  167. package/src/Filter/GradientBevelFilter/FilterApplyGradientBevelFilterUseCase.js +216 -0
  168. package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.d.ts +29 -0
  169. package/src/Filter/GradientGlowFilter/FilterApplyGradientGlowFilterUseCase.js +164 -0
  170. package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.d.ts +4 -0
  171. package/src/FrameBufferManager/service/FrameBufferManagerCreateRenderPassDescriptorService.js +23 -0
  172. package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.d.ts +4 -0
  173. package/src/FrameBufferManager/service/FrameBufferManagerCreateStencilRenderPassDescriptorService.js +28 -0
  174. package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.d.ts +11 -0
  175. package/src/FrameBufferManager/service/FrameBufferManagerFlushPendingReleasesService.js +19 -0
  176. package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.d.ts +23 -0
  177. package/src/FrameBufferManager/usecase/FrameBufferManagerCreateAttachmentUseCase.js +125 -0
  178. package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.d.ts +14 -0
  179. package/src/FrameBufferManager/usecase/FrameBufferManagerReleaseTemporaryAttachmentUseCase.js +23 -0
  180. package/src/FrameBufferManager.d.ts +24 -0
  181. package/src/FrameBufferManager.js +161 -0
  182. package/src/Gradient/GradientLUTCache.d.ts +61 -0
  183. package/src/Gradient/GradientLUTCache.js +153 -0
  184. package/src/Gradient/GradientLUTGenerator.d.ts +30 -0
  185. package/src/Gradient/GradientLUTGenerator.js +202 -0
  186. package/src/Grid.d.ts +18 -0
  187. package/src/Grid.js +21 -0
  188. package/src/Mask/service/MaskBeginMaskService.d.ts +9 -0
  189. package/src/Mask/service/MaskBeginMaskService.js +22 -0
  190. package/src/Mask/service/MaskEndMaskService.d.ts +15 -0
  191. package/src/Mask/service/MaskEndMaskService.js +36 -0
  192. package/src/Mask/service/MaskSetMaskBoundsService.d.ts +13 -0
  193. package/src/Mask/service/MaskSetMaskBoundsService.js +36 -0
  194. package/src/Mask/service/MaskUnionMaskService.d.ts +4 -0
  195. package/src/Mask/service/MaskUnionMaskService.js +74 -0
  196. package/src/Mask/usecase/MaskBindUseCase.d.ts +10 -0
  197. package/src/Mask/usecase/MaskBindUseCase.js +20 -0
  198. package/src/Mask/usecase/MaskLeaveMaskUseCase.d.ts +13 -0
  199. package/src/Mask/usecase/MaskLeaveMaskUseCase.js +51 -0
  200. package/src/Mask.d.ts +12 -0
  201. package/src/Mask.js +41 -0
  202. package/src/Mesh/service/MeshFillGenerateService.d.ts +19 -0
  203. package/src/Mesh/service/MeshFillGenerateService.js +76 -0
  204. package/src/Mesh/service/MeshLerpService.d.ts +13 -0
  205. package/src/Mesh/service/MeshLerpService.js +17 -0
  206. package/src/Mesh/service/MeshStrokeFillGenerateService.d.ts +19 -0
  207. package/src/Mesh/service/MeshStrokeFillGenerateService.js +76 -0
  208. package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.d.ts +13 -0
  209. package/src/Mesh/usecase/MeshBitmapStrokeGenerateUseCase.js +65 -0
  210. package/src/Mesh/usecase/MeshFillGenerateUseCase.d.ts +12 -0
  211. package/src/Mesh/usecase/MeshFillGenerateUseCase.js +48 -0
  212. package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.d.ts +13 -0
  213. package/src/Mesh/usecase/MeshGradientStrokeGenerateUseCase.js +65 -0
  214. package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.d.ts +14 -0
  215. package/src/Mesh/usecase/MeshSplitQuadraticBezierUseCase.js +28 -0
  216. package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.d.ts +18 -0
  217. package/src/Mesh/usecase/MeshStrokeFillGenerateUseCase.js +54 -0
  218. package/src/Mesh/usecase/MeshStrokeGenerateUseCase.d.ts +25 -0
  219. package/src/Mesh/usecase/MeshStrokeGenerateUseCase.js +608 -0
  220. package/src/PathCommand.d.ts +123 -0
  221. package/src/PathCommand.js +317 -0
  222. package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.d.ts +11 -0
  223. package/src/SamplerCache/service/SamplerCacheCreateCommonSamplersService.js +35 -0
  224. package/src/SamplerCache/service/SamplerCacheGenerateKeyService.d.ts +13 -0
  225. package/src/SamplerCache/service/SamplerCacheGenerateKeyService.js +15 -0
  226. package/src/SamplerCache/service/SamplerCacheGetOrCreateService.d.ts +15 -0
  227. package/src/SamplerCache/service/SamplerCacheGetOrCreateService.js +30 -0
  228. package/src/SamplerCache.d.ts +18 -0
  229. package/src/SamplerCache.js +61 -0
  230. package/src/Shader/BlendModeShader.d.ts +51 -0
  231. package/src/Shader/BlendModeShader.js +71 -0
  232. package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.d.ts +12 -0
  233. package/src/Shader/GradientLUTGenerator/service/GradientLUTCalculateResolutionService.js +28 -0
  234. package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.d.ts +13 -0
  235. package/src/Shader/GradientLUTGenerator/service/GradientLUTGeneratePixelsService.js +61 -0
  236. package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.d.ts +19 -0
  237. package/src/Shader/GradientLUTGenerator/service/GradientLUTInterpolateColorService.js +37 -0
  238. package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.d.ts +11 -0
  239. package/src/Shader/GradientLUTGenerator/service/GradientLUTParseStopsService.js +24 -0
  240. package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.d.ts +14 -0
  241. package/src/Shader/GradientLUTGenerator/usecase/GradientLUTGenerateDataUseCase.js +24 -0
  242. package/src/Shader/PipelineManager.d.ts +57 -0
  243. package/src/Shader/PipelineManager.js +2868 -0
  244. package/src/Shader/ShaderInstancedManager.d.ts +8 -0
  245. package/src/Shader/ShaderInstancedManager.js +18 -0
  246. package/src/Shader/ShaderSource.d.ts +60 -0
  247. package/src/Shader/ShaderSource.js +518 -0
  248. package/src/Shader/wgsl/common/SharedWgsl.d.ts +5 -0
  249. package/src/Shader/wgsl/common/SharedWgsl.js +37 -0
  250. package/src/Shader/wgsl/fragment/BasicFragment.d.ts +2 -0
  251. package/src/Shader/wgsl/fragment/BasicFragment.js +28 -0
  252. package/src/Shader/wgsl/fragment/BitmapFragment.d.ts +1 -0
  253. package/src/Shader/wgsl/fragment/BitmapFragment.js +43 -0
  254. package/src/Shader/wgsl/fragment/BlendFragment.d.ts +8 -0
  255. package/src/Shader/wgsl/fragment/BlendFragment.js +63 -0
  256. package/src/Shader/wgsl/fragment/EffectFragment.d.ts +6 -0
  257. package/src/Shader/wgsl/fragment/EffectFragment.js +324 -0
  258. package/src/Shader/wgsl/fragment/FillFragment.d.ts +1 -0
  259. package/src/Shader/wgsl/fragment/FillFragment.js +28 -0
  260. package/src/Shader/wgsl/fragment/FilterFragment.d.ts +10 -0
  261. package/src/Shader/wgsl/fragment/FilterFragment.js +212 -0
  262. package/src/Shader/wgsl/fragment/GradientFragment.d.ts +3 -0
  263. package/src/Shader/wgsl/fragment/GradientFragment.js +118 -0
  264. package/src/Shader/wgsl/fragment/InstancedFragment.d.ts +1 -0
  265. package/src/Shader/wgsl/fragment/InstancedFragment.js +20 -0
  266. package/src/Shader/wgsl/fragment/MaskFragment.d.ts +1 -0
  267. package/src/Shader/wgsl/fragment/MaskFragment.js +17 -0
  268. package/src/Shader/wgsl/fragment/StencilFragment.d.ts +2 -0
  269. package/src/Shader/wgsl/fragment/StencilFragment.js +33 -0
  270. package/src/Shader/wgsl/vertex/BasicVertex.d.ts +1 -0
  271. package/src/Shader/wgsl/vertex/BasicVertex.js +37 -0
  272. package/src/Shader/wgsl/vertex/BitmapVertex.d.ts +1 -0
  273. package/src/Shader/wgsl/vertex/BitmapVertex.js +43 -0
  274. package/src/Shader/wgsl/vertex/FillVertex.d.ts +1 -0
  275. package/src/Shader/wgsl/vertex/FillVertex.js +35 -0
  276. package/src/Shader/wgsl/vertex/FilterVertex.d.ts +12 -0
  277. package/src/Shader/wgsl/vertex/FilterVertex.js +193 -0
  278. package/src/Shader/wgsl/vertex/GradientVertex.d.ts +1 -0
  279. package/src/Shader/wgsl/vertex/GradientVertex.js +44 -0
  280. package/src/Shader/wgsl/vertex/InstancedVertex.d.ts +1 -0
  281. package/src/Shader/wgsl/vertex/InstancedVertex.js +48 -0
  282. package/src/Shader/wgsl/vertex/MaskVertex.d.ts +1 -0
  283. package/src/Shader/wgsl/vertex/MaskVertex.js +36 -0
  284. package/src/Shader/wgsl/vertex/StencilVertex.d.ts +2 -0
  285. package/src/Shader/wgsl/vertex/StencilVertex.js +66 -0
  286. package/src/TextureManager/service/TextureManagerInitializeSamplersService.d.ts +11 -0
  287. package/src/TextureManager/service/TextureManagerInitializeSamplersService.js +48 -0
  288. package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.d.ts +13 -0
  289. package/src/TextureManager/usecase/TextureManagerCreateTextureFromImageBitmapUseCase.js +30 -0
  290. package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.d.ts +15 -0
  291. package/src/TextureManager/usecase/TextureManagerCreateTextureFromPixelsUseCase.js +26 -0
  292. package/src/TextureManager.d.ts +15 -0
  293. package/src/TextureManager.js +87 -0
  294. package/src/TexturePool/service/TexturePoolCleanupService.d.ts +14 -0
  295. package/src/TexturePool/service/TexturePoolCleanupService.js +28 -0
  296. package/src/TexturePool/service/TexturePoolEvictOldestService.d.ts +11 -0
  297. package/src/TexturePool/service/TexturePoolEvictOldestService.js +24 -0
  298. package/src/TexturePool/service/TexturePoolReleaseService.d.ts +13 -0
  299. package/src/TexturePool/service/TexturePoolReleaseService.js +22 -0
  300. package/src/TexturePool/usecase/TexturePoolAcquireUseCase.d.ts +19 -0
  301. package/src/TexturePool/usecase/TexturePoolAcquireUseCase.js +90 -0
  302. package/src/TexturePool.d.ts +69 -0
  303. package/src/TexturePool.js +151 -0
  304. package/src/WebGPUUtil.d.ts +102 -0
  305. package/src/WebGPUUtil.js +157 -0
  306. package/src/index.d.ts +1 -0
  307. package/src/index.js +1 -0
  308. package/src/interface/IAttachmentObject.d.ts +41 -0
  309. package/src/interface/IAttachmentObject.js +1 -0
  310. package/src/interface/IBlendMode.d.ts +1 -0
  311. package/src/interface/IBlendMode.js +1 -0
  312. package/src/interface/IBlendState.d.ts +8 -0
  313. package/src/interface/IBlendState.js +1 -0
  314. package/src/interface/IBounds.d.ts +6 -0
  315. package/src/interface/IBounds.js +1 -0
  316. package/src/interface/ICachedBindGroup.d.ts +8 -0
  317. package/src/interface/ICachedBindGroup.js +1 -0
  318. package/src/interface/IColorBufferObject.d.ts +17 -0
  319. package/src/interface/IColorBufferObject.js +1 -0
  320. package/src/interface/IComplexBlendItem.d.ts +19 -0
  321. package/src/interface/IComplexBlendItem.js +1 -0
  322. package/src/interface/IFilterConfig.d.ts +29 -0
  323. package/src/interface/IFilterConfig.js +1 -0
  324. package/src/interface/IGradientLUTData.d.ts +8 -0
  325. package/src/interface/IGradientLUTData.js +1 -0
  326. package/src/interface/IGradientStop.d.ts +11 -0
  327. package/src/interface/IGradientStop.js +1 -0
  328. package/src/interface/ILocalFilterConfig.d.ts +21 -0
  329. package/src/interface/ILocalFilterConfig.js +1 -0
  330. package/src/interface/IMeshResult.d.ts +8 -0
  331. package/src/interface/IMeshResult.js +1 -0
  332. package/src/interface/IPath.d.ts +8 -0
  333. package/src/interface/IPath.js +1 -0
  334. package/src/interface/IPoint.d.ts +4 -0
  335. package/src/interface/IPoint.js +1 -0
  336. package/src/interface/IPooledBuffer.d.ts +8 -0
  337. package/src/interface/IPooledBuffer.js +1 -0
  338. package/src/interface/IPooledTexture.d.ts +17 -0
  339. package/src/interface/IPooledTexture.js +1 -0
  340. package/src/interface/IQuadraticSegment.d.ts +9 -0
  341. package/src/interface/IQuadraticSegment.js +1 -0
  342. package/src/interface/IRectangleInfo.d.ts +13 -0
  343. package/src/interface/IRectangleInfo.js +1 -0
  344. package/src/interface/IStencilBufferObject.d.ts +16 -0
  345. package/src/interface/IStencilBufferObject.js +1 -0
  346. package/src/interface/IStorageBufferConfig.d.ts +40 -0
  347. package/src/interface/IStorageBufferConfig.js +1 -0
  348. package/src/interface/ITextureObject.d.ts +16 -0
  349. package/src/interface/ITextureObject.js +1 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * @description WebGPU用ブレンドモードシェーダー
3
+ * Blend mode shaders for WebGPU
4
+ */
5
+ export declare class BlendModeShader {
6
+ /**
7
+ * @description ブレンドモード用の頂点シェーダー
8
+ * @return {string}
9
+ */
10
+ static getVertexShader(): string;
11
+ /**
12
+ * @description Multiplyブレンド用のフラグメントシェーダー
13
+ * @return {string}
14
+ */
15
+ static getMultiplyShader(): string;
16
+ /**
17
+ * @description Screenブレンド用のフラグメントシェーダー
18
+ * @return {string}
19
+ */
20
+ static getScreenShader(): string;
21
+ /**
22
+ * @description Lightenブレンド用のフラグメントシェーダー
23
+ * @return {string}
24
+ */
25
+ static getLightenShader(): string;
26
+ /**
27
+ * @description Darkenブレンド用のフラグメントシェーダー
28
+ * @return {string}
29
+ */
30
+ static getDarkenShader(): string;
31
+ /**
32
+ * @description Overlayブレンド用のフラグメントシェーダー
33
+ * @return {string}
34
+ */
35
+ static getOverlayShader(): string;
36
+ /**
37
+ * @description Hard Lightブレンド用のフラグメントシェーダー
38
+ * @return {string}
39
+ */
40
+ static getHardLightShader(): string;
41
+ /**
42
+ * @description Differenceブレンド用のフラグメントシェーダー
43
+ * @return {string}
44
+ */
45
+ static getDifferenceShader(): string;
46
+ /**
47
+ * @description Subtractブレンド用のフラグメントシェーダー
48
+ * @return {string}
49
+ */
50
+ static getSubtractShader(): string;
51
+ }
@@ -0,0 +1,71 @@
1
+ import { BlendModeVertex } from "./wgsl/vertex/FilterVertex";
2
+ import { MultiplyBlendFragment, ScreenBlendFragment, LightenBlendFragment, DarkenBlendFragment, OverlayBlendFragment, HardLightBlendFragment, DifferenceBlendFragment, SubtractBlendFragment } from "./wgsl/fragment/BlendFragment";
3
+ /**
4
+ * @description WebGPU用ブレンドモードシェーダー
5
+ * Blend mode shaders for WebGPU
6
+ */
7
+ export class BlendModeShader {
8
+ /**
9
+ * @description ブレンドモード用の頂点シェーダー
10
+ * @return {string}
11
+ */
12
+ static getVertexShader() {
13
+ return BlendModeVertex;
14
+ }
15
+ /**
16
+ * @description Multiplyブレンド用のフラグメントシェーダー
17
+ * @return {string}
18
+ */
19
+ static getMultiplyShader() {
20
+ return MultiplyBlendFragment;
21
+ }
22
+ /**
23
+ * @description Screenブレンド用のフラグメントシェーダー
24
+ * @return {string}
25
+ */
26
+ static getScreenShader() {
27
+ return ScreenBlendFragment;
28
+ }
29
+ /**
30
+ * @description Lightenブレンド用のフラグメントシェーダー
31
+ * @return {string}
32
+ */
33
+ static getLightenShader() {
34
+ return LightenBlendFragment;
35
+ }
36
+ /**
37
+ * @description Darkenブレンド用のフラグメントシェーダー
38
+ * @return {string}
39
+ */
40
+ static getDarkenShader() {
41
+ return DarkenBlendFragment;
42
+ }
43
+ /**
44
+ * @description Overlayブレンド用のフラグメントシェーダー
45
+ * @return {string}
46
+ */
47
+ static getOverlayShader() {
48
+ return OverlayBlendFragment;
49
+ }
50
+ /**
51
+ * @description Hard Lightブレンド用のフラグメントシェーダー
52
+ * @return {string}
53
+ */
54
+ static getHardLightShader() {
55
+ return HardLightBlendFragment;
56
+ }
57
+ /**
58
+ * @description Differenceブレンド用のフラグメントシェーダー
59
+ * @return {string}
60
+ */
61
+ static getDifferenceShader() {
62
+ return DifferenceBlendFragment;
63
+ }
64
+ /**
65
+ * @description Subtractブレンド用のフラグメントシェーダー
66
+ * @return {string}
67
+ */
68
+ static getSubtractShader() {
69
+ return SubtractBlendFragment;
70
+ }
71
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @description グラデーションストップ数に応じた適応的解像度を計算
3
+ * Calculate adaptive resolution based on number of gradient stops
4
+ *
5
+ * @param {number} stopsCount - グラデーションストップの数
6
+ * @param {number} [minResolution=64] - 最小解像度
7
+ * @param {number} [maxResolution=512] - 最大解像度
8
+ * @return {number}
9
+ * @method
10
+ * @protected
11
+ */
12
+ export declare const execute: (stopsCount: number, minResolution?: number, maxResolution?: number) => number;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * @description グラデーションストップ数に応じた適応的解像度を計算
3
+ * Calculate adaptive resolution based on number of gradient stops
4
+ *
5
+ * @param {number} stopsCount - グラデーションストップの数
6
+ * @param {number} [minResolution=64] - 最小解像度
7
+ * @param {number} [maxResolution=512] - 最大解像度
8
+ * @return {number}
9
+ * @method
10
+ * @protected
11
+ */
12
+ export const execute = (stopsCount, minResolution = 64, maxResolution = 512) => {
13
+ // ストップ数に応じて解像度を調整
14
+ // 2ストップ: 64px
15
+ // 3-4ストップ: 128px
16
+ // 5-8ストップ: 256px
17
+ // 9以上: 512px
18
+ if (stopsCount <= 2) {
19
+ return Math.max(minResolution, 64);
20
+ }
21
+ if (stopsCount <= 4) {
22
+ return Math.min(maxResolution, Math.max(minResolution, 128));
23
+ }
24
+ if (stopsCount <= 8) {
25
+ return Math.min(maxResolution, Math.max(minResolution, 256));
26
+ }
27
+ return maxResolution;
28
+ };
@@ -0,0 +1,13 @@
1
+ import type { IGradientStop } from "../../../interface/IGradientStop";
2
+ /**
3
+ * @description グラデーションLUTのピクセルデータを生成
4
+ * Generate pixel data for gradient LUT
5
+ *
6
+ * @param {IGradientStop[]} stops - ソート済みのグラデーションストップ
7
+ * @param {number} resolution - LUTの解像度(ピクセル数)
8
+ * @param {number} interpolation - 0: RGB, 1: Linear RGB
9
+ * @return {Uint8Array}
10
+ * @method
11
+ * @protected
12
+ */
13
+ export declare const execute: (stops: IGradientStop[], resolution: number, interpolation: number) => Uint8Array;
@@ -0,0 +1,61 @@
1
+ import { execute as gradientLUTInterpolateColorService } from "./GradientLUTInterpolateColorService";
2
+ /**
3
+ * @description グラデーションLUTのピクセルデータを生成
4
+ * Generate pixel data for gradient LUT
5
+ *
6
+ * @param {IGradientStop[]} stops - ソート済みのグラデーションストップ
7
+ * @param {number} resolution - LUTの解像度(ピクセル数)
8
+ * @param {number} interpolation - 0: RGB, 1: Linear RGB
9
+ * @return {Uint8Array}
10
+ * @method
11
+ * @protected
12
+ */
13
+ export const execute = (stops, resolution, interpolation) => {
14
+ const pixels = new Uint8Array(resolution * 4);
15
+ if (stops.length === 0) {
16
+ return pixels;
17
+ }
18
+ if (stops.length === 1) {
19
+ // 単一ストップの場合は全体を同じ色で塗る
20
+ const stop = stops[0];
21
+ for (let i = 0; i < resolution; i++) {
22
+ const offset = i * 4;
23
+ pixels[offset] = Math.round(stop.r * 255);
24
+ pixels[offset + 1] = Math.round(stop.g * 255);
25
+ pixels[offset + 2] = Math.round(stop.b * 255);
26
+ pixels[offset + 3] = Math.round(stop.a * 255);
27
+ }
28
+ return pixels;
29
+ }
30
+ for (let i = 0; i < resolution; i++) {
31
+ const ratio = i / (resolution - 1);
32
+ // 該当するストップ区間を見つける
33
+ let startStopIndex = 0;
34
+ for (let j = 0; j < stops.length - 1; j++) {
35
+ if (ratio >= stops[j].ratio && ratio <= stops[j + 1].ratio) {
36
+ startStopIndex = j;
37
+ break;
38
+ }
39
+ if (ratio > stops[j + 1].ratio) {
40
+ startStopIndex = j + 1;
41
+ }
42
+ }
43
+ const startStop = stops[startStopIndex];
44
+ const endStop = stops[Math.min(startStopIndex + 1, stops.length - 1)];
45
+ // 区間内での補間係数を計算
46
+ let t = 0;
47
+ const rangeWidth = endStop.ratio - startStop.ratio;
48
+ if (rangeWidth > 0) {
49
+ t = (ratio - startStop.ratio) / rangeWidth;
50
+ t = Math.max(0, Math.min(1, t));
51
+ }
52
+ // 色を補間
53
+ const color = gradientLUTInterpolateColorService(startStop, endStop, t, interpolation);
54
+ const offset = i * 4;
55
+ pixels[offset] = Math.round(color.r * 255);
56
+ pixels[offset + 1] = Math.round(color.g * 255);
57
+ pixels[offset + 2] = Math.round(color.b * 255);
58
+ pixels[offset + 3] = Math.round(color.a * 255);
59
+ }
60
+ return pixels;
61
+ };
@@ -0,0 +1,19 @@
1
+ import type { IGradientStop } from "../../../interface/IGradientStop";
2
+ /**
3
+ * @description 2つのストップ間で色を補間
4
+ * Interpolate color between two stops
5
+ *
6
+ * @param {IGradientStop} startStop
7
+ * @param {IGradientStop} endStop
8
+ * @param {number} t - 補間係数 (0-1)
9
+ * @param {number} interpolation - 0: RGB, 1: Linear RGB
10
+ * @return {{ r: number, g: number, b: number, a: number }}
11
+ * @method
12
+ * @protected
13
+ */
14
+ export declare const execute: (startStop: IGradientStop, endStop: IGradientStop, t: number, interpolation: number) => {
15
+ r: number;
16
+ g: number;
17
+ b: number;
18
+ a: number;
19
+ };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @description 2つのストップ間で色を補間
3
+ * Interpolate color between two stops
4
+ *
5
+ * @param {IGradientStop} startStop
6
+ * @param {IGradientStop} endStop
7
+ * @param {number} t - 補間係数 (0-1)
8
+ * @param {number} interpolation - 0: RGB, 1: Linear RGB
9
+ * @return {{ r: number, g: number, b: number, a: number }}
10
+ * @method
11
+ * @protected
12
+ */
13
+ export const execute = (startStop, endStop, t, interpolation) => {
14
+ let r;
15
+ let g;
16
+ let b;
17
+ if (interpolation === 1) {
18
+ // Linear RGB補間(ガンマ補正あり)
19
+ const sr = Math.pow(startStop.r, 2.2);
20
+ const sg = Math.pow(startStop.g, 2.2);
21
+ const sb = Math.pow(startStop.b, 2.2);
22
+ const er = Math.pow(endStop.r, 2.2);
23
+ const eg = Math.pow(endStop.g, 2.2);
24
+ const eb = Math.pow(endStop.b, 2.2);
25
+ r = Math.pow(sr + (er - sr) * t, 1 / 2.2);
26
+ g = Math.pow(sg + (eg - sg) * t, 1 / 2.2);
27
+ b = Math.pow(sb + (eb - sb) * t, 1 / 2.2);
28
+ }
29
+ else {
30
+ // 通常のRGB補間
31
+ r = startStop.r + (endStop.r - startStop.r) * t;
32
+ g = startStop.g + (endStop.g - startStop.g) * t;
33
+ b = startStop.b + (endStop.b - startStop.b) * t;
34
+ }
35
+ const a = startStop.a + (endStop.a - startStop.a) * t;
36
+ return { r, g, b, a };
37
+ };
@@ -0,0 +1,11 @@
1
+ import type { IGradientStop } from "../../../interface/IGradientStop";
2
+ /**
3
+ * @description グラデーションストップ配列をパースしてソート
4
+ * Parse and sort gradient stops array
5
+ *
6
+ * @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
7
+ * @return {IGradientStop[]}
8
+ * @method
9
+ * @protected
10
+ */
11
+ export declare const execute: (stops: number[]) => IGradientStop[];
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @description グラデーションストップ配列をパースしてソート
3
+ * Parse and sort gradient stops array
4
+ *
5
+ * @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
6
+ * @return {IGradientStop[]}
7
+ * @method
8
+ * @protected
9
+ */
10
+ export const execute = (stops) => {
11
+ const gradientStops = [];
12
+ for (let i = 0; i < stops.length; i += 5) {
13
+ gradientStops.push({
14
+ "ratio": stops[i],
15
+ "r": stops[i + 1],
16
+ "g": stops[i + 2],
17
+ "b": stops[i + 3],
18
+ "a": stops[i + 4]
19
+ });
20
+ }
21
+ // ストップポイントをratio順にソート
22
+ gradientStops.sort((a, b) => a.ratio - b.ratio);
23
+ return gradientStops;
24
+ };
@@ -0,0 +1,14 @@
1
+ import type { IGradientLUTData } from "../../../interface/IGradientLUTData";
2
+ /**
3
+ * @description グラデーションLUTのピクセルデータを生成
4
+ * Generate gradient LUT pixel data
5
+ *
6
+ * @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
7
+ * @param {number} interpolation - 0: RGB, 1: Linear RGB
8
+ * @param {number} [minResolution=64] - 最小解像度
9
+ * @param {number} [maxResolution=512] - 最大解像度
10
+ * @return {IGradientLUTData}
11
+ * @method
12
+ * @protected
13
+ */
14
+ export declare const execute: (stops: number[], interpolation: number, minResolution?: number, maxResolution?: number) => IGradientLUTData;
@@ -0,0 +1,24 @@
1
+ import { execute as gradientLUTParseStopsService } from "../service/GradientLUTParseStopsService";
2
+ import { execute as gradientLUTCalculateResolutionService } from "../service/GradientLUTCalculateResolutionService";
3
+ import { execute as gradientLUTGeneratePixelsService } from "../service/GradientLUTGeneratePixelsService";
4
+ /**
5
+ * @description グラデーションLUTのピクセルデータを生成
6
+ * Generate gradient LUT pixel data
7
+ *
8
+ * @param {number[]} stops - [ratio, r, g, b, a, ratio, r, g, b, a, ...]
9
+ * @param {number} interpolation - 0: RGB, 1: Linear RGB
10
+ * @param {number} [minResolution=64] - 最小解像度
11
+ * @param {number} [maxResolution=512] - 最大解像度
12
+ * @return {IGradientLUTData}
13
+ * @method
14
+ * @protected
15
+ */
16
+ export const execute = (stops, interpolation, minResolution = 64, maxResolution = 512) => {
17
+ // ストップ配列をパースしてソート
18
+ const parsedStops = gradientLUTParseStopsService(stops);
19
+ // ストップ数に応じた解像度を計算
20
+ const resolution = gradientLUTCalculateResolutionService(parsedStops.length, minResolution, maxResolution);
21
+ // ピクセルデータを生成
22
+ const pixels = gradientLUTGeneratePixelsService(parsedStops, resolution, interpolation);
23
+ return { pixels, resolution };
24
+ };
@@ -0,0 +1,57 @@
1
+ export declare class PipelineManager {
2
+ private device;
3
+ private format;
4
+ private pipelines;
5
+ private bindGroupLayouts;
6
+ private sampleCount;
7
+ private shaderModuleCache;
8
+ private filterBindGroupLayouts;
9
+ constructor(device: GPUDevice, format: GPUTextureFormat);
10
+ private getOrCreateShaderModule;
11
+ private initialize;
12
+ private lazyInitGroups;
13
+ private readonly lazyGroupMap;
14
+ private ensureLazyGroup;
15
+ preloadLazyGroups(): void;
16
+ private createFillPipeline;
17
+ private createStencilFillPipelines;
18
+ private createClipPipeline;
19
+ private createMaskUnionPipelines;
20
+ private createMaskPipeline;
21
+ private createBasicPipeline;
22
+ private createTexturePipeline;
23
+ private createInstancedPipeline;
24
+ private createGradientPipeline;
25
+ private createBitmapFillPipeline;
26
+ private createBlendPipeline;
27
+ private createBlurFilterPipeline;
28
+ private createTextureCopyPipeline;
29
+ private createPositionedTexturePipeline;
30
+ private createTextureScalePipeline;
31
+ private createBitmapSyncPipeline;
32
+ private createColorMatrixFilterPipeline;
33
+ private createComplexBlendPipelines;
34
+ private createComplexBlendCopyPipeline;
35
+ private createComplexBlendOutputPipeline;
36
+ private createFilterPipelineWithLayout;
37
+ private createFullscreenQuadPipeline;
38
+ getPipeline(name: string): GPURenderPipeline | undefined;
39
+ /**
40
+ * @description フィルターパイプラインのoverride定数バリアントを取得
41
+ * GPU warp divergenceを排除するコンパイル時分岐特殊化
42
+ */
43
+ getFilterPipeline(baseName: string, constants: Record<string, number>): GPURenderPipeline | undefined;
44
+ /**
45
+ * @description グラデーションタイプとスプレッドモードに応じた特殊化パイプラインを取得
46
+ * override定数でGPU warp divergenceを排除
47
+ */
48
+ getGradientPipeline(baseName: string, gradientType: number, spreadMode: number): GPURenderPipeline | undefined;
49
+ private gradientPipelineLayout;
50
+ private gradientVertexShaderModule;
51
+ private gradientFragmentShaderModule;
52
+ private gradientStencilFragmentShaderModule;
53
+ private createGradientVariant;
54
+ getBindGroupLayout(name: string): GPUBindGroupLayout | undefined;
55
+ private createNodeClearPipeline;
56
+ dispose(): void;
57
+ }