@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,157 @@
1
+ /**
2
+ * @description 描画のサンプリング数(MSAA)
3
+ * Number of samples for drawing (MSAA)
4
+ *
5
+ * @type {number}
6
+ * @default 4
7
+ * @protected
8
+ *
9
+ * @note WebGL版と同じくMSAA 4xをデフォルトで有効化
10
+ * 曲線のアンチエイリアス品質向上のため
11
+ */
12
+ export let $samples = 4;
13
+ /**
14
+ * @description 描画のサンプリング数を変更
15
+ * Change the number of samples for drawing
16
+ *
17
+ * @param {number} samples
18
+ * @return {void}
19
+ * @method
20
+ * @protected
21
+ */
22
+ export const $setSamples = (samples) => {
23
+ $samples = samples;
24
+ };
25
+ export class WebGPUUtil {
26
+ /**
27
+ * @description Set GPUDevice
28
+ * @param {GPUDevice} gpu_device
29
+ * @return {void}
30
+ */
31
+ static setDevice(gpu_device) {
32
+ WebGPUUtil.device = gpu_device;
33
+ }
34
+ /**
35
+ * @description Get GPUDevice
36
+ * @return {GPUDevice}
37
+ */
38
+ static getDevice() {
39
+ if (!WebGPUUtil.device) {
40
+ throw new Error("GPUDevice is not initialized");
41
+ }
42
+ return WebGPUUtil.device;
43
+ }
44
+ /**
45
+ * @description Set device pixel ratio
46
+ * @param {number} ratio
47
+ * @return {void}
48
+ */
49
+ static setDevicePixelRatio(ratio) {
50
+ WebGPUUtil.devicePixelRatio = ratio;
51
+ }
52
+ /**
53
+ * @description Get device pixel ratio
54
+ * @return {number}
55
+ */
56
+ static getDevicePixelRatio() {
57
+ return WebGPUUtil.devicePixelRatio;
58
+ }
59
+ /**
60
+ * @description Set render max size
61
+ * @param {number} size
62
+ * @return {void}
63
+ */
64
+ static setRenderMaxSize(size) {
65
+ WebGPUUtil.renderMaxSize = size;
66
+ }
67
+ /**
68
+ * @description Get render max size (for atlas)
69
+ * @return {number}
70
+ */
71
+ static getRenderMaxSize() {
72
+ return WebGPUUtil.renderMaxSize;
73
+ }
74
+ /**
75
+ * @description Create Float32Array
76
+ * @param {number} length
77
+ * @return {Float32Array}
78
+ */
79
+ static createFloat32Array(length) {
80
+ return new Float32Array(length);
81
+ }
82
+ /**
83
+ * @description Create generic array
84
+ * @return {Array}
85
+ */
86
+ static createArray() {
87
+ return [];
88
+ }
89
+ /**
90
+ * @description Get Float32Array(4) from pool
91
+ * @return {Float32Array}
92
+ */
93
+ static getFloat32Array4() {
94
+ return WebGPUUtil.float32Array4Pool.length > 0
95
+ ? WebGPUUtil.float32Array4Pool.pop()
96
+ : new Float32Array(4);
97
+ }
98
+ /**
99
+ * @description Return Float32Array(4) to pool
100
+ * @param {Float32Array} array
101
+ * @return {void}
102
+ */
103
+ static poolFloat32Array4(array) {
104
+ if (array.length === 4) {
105
+ WebGPUUtil.float32Array4Pool.push(array);
106
+ }
107
+ }
108
+ }
109
+ Object.defineProperty(WebGPUUtil, "device", {
110
+ enumerable: true,
111
+ configurable: true,
112
+ writable: true,
113
+ value: null
114
+ });
115
+ Object.defineProperty(WebGPUUtil, "devicePixelRatio", {
116
+ enumerable: true,
117
+ configurable: true,
118
+ writable: true,
119
+ value: 1
120
+ });
121
+ Object.defineProperty(WebGPUUtil, "renderMaxSize", {
122
+ enumerable: true,
123
+ configurable: true,
124
+ writable: true,
125
+ value: 8192
126
+ });
127
+ Object.defineProperty(WebGPUUtil, "float32Array4Pool", {
128
+ enumerable: true,
129
+ configurable: true,
130
+ writable: true,
131
+ value: []
132
+ });
133
+ /**
134
+ * @description グローバルコンテキスト(WebGLUtilの$contextに相当)
135
+ */
136
+ export let $context = null;
137
+ /**
138
+ * @description コンテキストを設定
139
+ * @param {any} context
140
+ */
141
+ export const $setContext = (context) => {
142
+ $context = context;
143
+ };
144
+ /**
145
+ * @description Float32Array(4) をプールから取得
146
+ * @return {Float32Array}
147
+ */
148
+ export const $getFloat32Array4 = () => {
149
+ return WebGPUUtil.getFloat32Array4();
150
+ };
151
+ /**
152
+ * @description Float32Array(4) をプールに返却
153
+ * @param {Float32Array} array
154
+ */
155
+ export const $poolFloat32Array4 = (array) => {
156
+ WebGPUUtil.poolFloat32Array4(array);
157
+ };
package/src/index.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./Context";
package/src/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./Context";
@@ -0,0 +1,41 @@
1
+ import type { IColorBufferObject } from "./IColorBufferObject";
2
+ import type { ITextureObject } from "./ITextureObject";
3
+ import type { IStencilBufferObject } from "./IStencilBufferObject";
4
+ /**
5
+ * @description WebGL互換のアタッチメントオブジェクトインターフェース
6
+ * WebGL-compatible attachment object interface
7
+ *
8
+ * WebGLと同じ構造を持つことで、rendererパッケージで両方のContextを
9
+ * 同じように扱うことができます。
10
+ */
11
+ export interface IAttachmentObject {
12
+ id: number;
13
+ width: number;
14
+ height: number;
15
+ clipLevel: number;
16
+ msaa: boolean;
17
+ mask: boolean;
18
+ color: IColorBufferObject | null;
19
+ texture: ITextureObject | null;
20
+ stencil: IStencilBufferObject | null;
21
+ /**
22
+ * @description MSAAテクスチャ(sampleCount > 1 の場合に使用)
23
+ * MSAA texture (used when sampleCount > 1)
24
+ */
25
+ msaaTexture: ITextureObject | null;
26
+ /**
27
+ * @description MSAAステンシルテクスチャ(sampleCount > 1 の場合に使用)
28
+ * MSAA stencil texture (used when sampleCount > 1)
29
+ */
30
+ msaaStencil: IStencilBufferObject | null;
31
+ /**
32
+ * @description ステンシルバッファのクリアが必要かどうか(マスク終了時)
33
+ * Whether stencil buffer needs to be cleared (on mask end)
34
+ */
35
+ needsStencilClear?: boolean;
36
+ /**
37
+ * @description クリアが必要なステンシルレベル(ネストマスク終了時)
38
+ * Stencil level that needs to be cleared (on nested mask end)
39
+ */
40
+ pendingStencilClearLevel?: number;
41
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ export type IBlendMode = "normal" | "layer" | "multiply" | "screen" | "lighten" | "darken" | "difference" | "add" | "subtract" | "invert" | "alpha" | "erase" | "overlay" | "hardlight" | "copy";
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description WebGPUブレンドステート定義
3
+ * WebGPU blend state definitions
4
+ */
5
+ export interface IBlendState {
6
+ color: GPUBlendComponent;
7
+ alpha: GPUBlendComponent;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ export interface IBounds {
2
+ xMin: number;
3
+ yMin: number;
4
+ xMax: number;
5
+ yMax: number;
6
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description キャッシュされたBindGroup
3
+ * Cached bind group interface
4
+ */
5
+ export interface ICachedBindGroup {
6
+ bindGroup: GPUBindGroup;
7
+ lastUsedFrame: number;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ import type { IStencilBufferObject } from "./IStencilBufferObject";
2
+ /**
3
+ * @description WebGPU用カラーバッファオブジェクトインターフェース
4
+ * WebGPU color buffer object interface
5
+ *
6
+ * WebGLのIColorBufferObjectと同様の構造を持ちますが、
7
+ * リソースはGPUTextureを使用します。
8
+ */
9
+ export interface IColorBufferObject {
10
+ resource: GPUTexture;
11
+ view: GPUTextureView;
12
+ stencil: IStencilBufferObject;
13
+ width: number;
14
+ height: number;
15
+ area: number;
16
+ dirty: boolean;
17
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,19 @@
1
+ import type { Node } from "@next2d/texture-packer";
2
+ /**
3
+ * @description 複雑なブレンドモードの描画キュー
4
+ * Complex blend mode rendering queue
5
+ */
6
+ export interface IComplexBlendItem {
7
+ node: Node;
8
+ x_min: number;
9
+ y_min: number;
10
+ x_max: number;
11
+ y_max: number;
12
+ color_transform: Float32Array;
13
+ matrix: Float32Array;
14
+ blend_mode: string;
15
+ viewport_width: number;
16
+ viewport_height: number;
17
+ render_max_size: number;
18
+ global_alpha: number;
19
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,29 @@
1
+ import type { IAttachmentObject } from "./IAttachmentObject";
2
+ import type { ComputePipelineManager } from "../Compute/ComputePipelineManager";
3
+ /**
4
+ * @description フィルター処理の共通設定
5
+ * Common filter processing configuration
6
+ */
7
+ export interface IFilterConfig {
8
+ device: GPUDevice;
9
+ commandEncoder: GPUCommandEncoder;
10
+ bufferManager?: {
11
+ acquireUniformBuffer(requiredSize: number): GPUBuffer;
12
+ acquireAndWriteUniformBuffer(data: Float32Array, byteLength?: number): GPUBuffer;
13
+ };
14
+ frameBufferManager: {
15
+ createTemporaryAttachment(width: number, height: number): IAttachmentObject;
16
+ releaseTemporaryAttachment(attachment: IAttachmentObject): void;
17
+ createRenderPassDescriptor(view: GPUTextureView, r: number, g: number, b: number, a: number, loadOp: GPULoadOp): GPURenderPassDescriptor;
18
+ };
19
+ pipelineManager: {
20
+ getPipeline(name: string): GPURenderPipeline | undefined;
21
+ getFilterPipeline(baseName: string, constants: Record<string, number>): GPURenderPipeline | undefined;
22
+ getBindGroupLayout(name: string): GPUBindGroupLayout | undefined;
23
+ };
24
+ textureManager: {
25
+ createSampler(name: string, smooth: boolean): GPUSampler;
26
+ };
27
+ computePipelineManager?: ComputePipelineManager;
28
+ frameTextures: GPUTexture[];
29
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description グラデーションLUTデータを生成する結果型
3
+ * Result type for generated gradient LUT data
4
+ */
5
+ export interface IGradientLUTData {
6
+ pixels: Uint8Array;
7
+ resolution: number;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @description グラデーションストップの型定義
3
+ * Gradient stop type definition
4
+ */
5
+ export interface IGradientStop {
6
+ ratio: number;
7
+ r: number;
8
+ g: number;
9
+ b: number;
10
+ a: number;
11
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import type { IAttachmentObject } from "./IAttachmentObject";
2
+ import type { BufferManager } from "../BufferManager";
3
+ import type { FrameBufferManager } from "../FrameBufferManager";
4
+ import type { PipelineManager } from "../Shader/PipelineManager";
5
+ import type { TextureManager } from "../TextureManager";
6
+ import type { ComputePipelineManager } from "../Compute/ComputePipelineManager";
7
+ /**
8
+ * @description フィルター適用時のローカル設定(ContextApplyFilterUseCase用)
9
+ * Local filter configuration for ContextApplyFilterUseCase
10
+ */
11
+ export interface ILocalFilterConfig {
12
+ device: GPUDevice;
13
+ commandEncoder: GPUCommandEncoder;
14
+ bufferManager: BufferManager;
15
+ frameBufferManager: FrameBufferManager;
16
+ pipelineManager: PipelineManager;
17
+ textureManager: TextureManager;
18
+ mainAttachment?: IAttachmentObject;
19
+ computePipelineManager?: ComputePipelineManager;
20
+ frameTextures: GPUTexture[];
21
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description メッシュ生成結果の共通インターフェース
3
+ * Common interface for mesh generation results
4
+ */
5
+ export interface IMeshResult {
6
+ buffer: Float32Array;
7
+ indexCount: number;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description パスの型定義
3
+ * Path type definition
4
+ *
5
+ * @type {array}
6
+ * @public
7
+ */
8
+ export type IPath = (number | boolean)[];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,4 @@
1
+ export interface IPoint {
2
+ x: number;
3
+ y: number;
4
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @description プールされたバッファのエントリ
3
+ * Pooled buffer entry
4
+ */
5
+ export interface IPooledBuffer {
6
+ buffer: GPUBuffer;
7
+ size: number;
8
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,17 @@
1
+ /**
2
+ * @description プールされたテクスチャ
3
+ * Pooled texture interface
4
+ */
5
+ export interface IPooledTexture {
6
+ texture: GPUTexture;
7
+ width: number;
8
+ height: number;
9
+ format: GPUTextureFormat;
10
+ lastUsedFrame: number;
11
+ inUse: boolean;
12
+ }
13
+ /**
14
+ * @description バケットキーからテクスチャ配列へのマップ
15
+ * キーは "${po2Width}_${po2Height}_${format}" 形式
16
+ */
17
+ export type ITexturePoolBuckets = Map<string, IPooledTexture[]>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,9 @@
1
+ import type { IPoint } from "./IPoint";
2
+ /**
3
+ * @description 二次ベジェ近似のセグメント
4
+ * Quadratic bezier segment approximation
5
+ */
6
+ export interface IQuadraticSegment {
7
+ ctrl: IPoint;
8
+ end: IPoint;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ import type { IPoint } from "./IPoint";
2
+ import type { IPath } from "./IPath";
3
+ /**
4
+ * @description 矩形の情報を保持する型
5
+ * Rectangle info type for stroke generation
6
+ */
7
+ export interface IRectangleInfo {
8
+ path: IPath;
9
+ startUp: IPoint;
10
+ startDown: IPoint;
11
+ endUp: IPoint;
12
+ endDown: IPoint;
13
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description WebGPU用ステンシルバッファオブジェクトインターフェース
3
+ * WebGPU stencil buffer object interface
4
+ *
5
+ * WebGLのIStencilBufferObjectと同様の構造を持ちますが、
6
+ * リソースはGPUTextureを使用します。
7
+ */
8
+ export interface IStencilBufferObject {
9
+ id: number;
10
+ resource: GPUTexture;
11
+ view: GPUTextureView;
12
+ width: number;
13
+ height: number;
14
+ area: number;
15
+ dirty: boolean;
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @description Storage Buffer設定インターフェース
3
+ * Storage Buffer configuration interface
4
+ */
5
+ export interface IStorageBufferConfig {
6
+ /**
7
+ * @description バッファサイズ(バイト)
8
+ */
9
+ size: number;
10
+ /**
11
+ * @description 使用目的
12
+ */
13
+ usage: GPUBufferUsageFlags;
14
+ /**
15
+ * @description ラベル(デバッグ用)
16
+ */
17
+ label?: string;
18
+ }
19
+ /**
20
+ * @description プールされたStorage Buffer
21
+ * Pooled storage buffer
22
+ */
23
+ export interface IPooledStorageBuffer {
24
+ /**
25
+ * @description GPUバッファ
26
+ */
27
+ buffer: GPUBuffer;
28
+ /**
29
+ * @description バッファサイズ(バイト)
30
+ */
31
+ size: number;
32
+ /**
33
+ * @description 使用中フラグ
34
+ */
35
+ inUse: boolean;
36
+ /**
37
+ * @description 最後に使用されたフレーム番号
38
+ */
39
+ lastUsedFrame: number;
40
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @description テクスチャオブジェクトのインターフェース
3
+ * Texture object interface for WebGPU
4
+ *
5
+ * WebGLのITextureObjectと互換性を持つために
6
+ * resourceプロパティを持ちます。
7
+ */
8
+ export interface ITextureObject {
9
+ id: number;
10
+ resource: GPUTexture;
11
+ view: GPUTextureView;
12
+ width: number;
13
+ height: number;
14
+ area: number;
15
+ smooth: boolean;
16
+ }
@@ -0,0 +1 @@
1
+ export {};