@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,3 +1,10 @@
1
+ /**
2
+ * @description ステンシル書き込み用フラグメントシェーダー(ベジェ曲線アンチエイリアス)
3
+ * Stencil write fragment shader with bezier curve anti-aliasing
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const StencilWriteFragment = /* wgsl */ `
2
9
  struct FragmentInput {
3
10
  @builtin(position) position: vec4<f32>,
@@ -19,6 +26,13 @@ fn main(input: FragmentInput) -> @location(0) vec4<f32> {
19
26
  return vec4<f32>(0.0, 0.0, 0.0, min(alpha, 1.0));
20
27
  }
21
28
  `;
29
+ /**
30
+ * @description ステンシル塗り用フラグメントシェーダー(プリマルチプライドアルファ出力)
31
+ * Stencil fill fragment shader with premultiplied alpha output
32
+ *
33
+ * @type {string}
34
+ * @constant
35
+ */
22
36
  export const StencilFillFragment = /* wgsl */ `
23
37
  struct FragmentInput {
24
38
  @builtin(position) position: vec4<f32>,
@@ -1 +1,8 @@
1
+ /**
2
+ * @description 基本頂点シェーダー(行列変換・プリマルチプライドカラー出力)
3
+ * Basic vertex shader with matrix transform and premultiplied color output
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const BasicVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) texCoord: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n @location(1) color: vec4<f32>,\n}\n\nstruct Uniforms {\n matrix: mat3x3<f32>,\n color: vec4<f32>,\n alpha: f32,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: Uniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let pos = uniforms.matrix * vec3<f32>(input.position, 1.0);\n let ndc = pos.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.texCoord = input.texCoord;\n let premultipliedColor = vec4<f32>(\n uniforms.color.rgb * uniforms.color.a * uniforms.alpha,\n uniforms.color.a * uniforms.alpha\n );\n output.color = premultipliedColor;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description 基本頂点シェーダー(行列変換・プリマルチプライドカラー出力)
3
+ * Basic vertex shader with matrix transform and premultiplied color output
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const BasicVertex = /* wgsl */ `
2
9
  override yFlipSign: f32 = 1.0;
3
10
 
@@ -1 +1,8 @@
1
+ /**
2
+ * @description ビットマップ塗り用頂点シェーダー(ワールド座標出力付き)
3
+ * Bitmap fill vertex shader with world position output
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const BitmapFillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n @location(1) color: vec4<f32>,\n @location(2) worldPos: vec2<f32>,\n}\n\nstruct BitmapUniforms {\n bitmapMatrix: mat3x3<f32>,\n width: f32,\n height: f32,\n repeat: f32,\n _pad: f32,\n color: vec4<f32>,\n contextMatrix0: vec4<f32>,\n contextMatrix1: vec4<f32>,\n contextMatrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> bitmap: BitmapUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(bitmap.contextMatrix0.xyz, bitmap.contextMatrix1.xyz, bitmap.contextMatrix2.xyz);\n let transformedPos = matrix * vec3<f32>(input.position, 1.0);\n let clipX = transformedPos.x * 2.0 - 1.0;\n let clipY = (transformedPos.y * 2.0 - 1.0) * yFlipSign;\n output.position = vec4<f32>(clipX, clipY, 0.0, 1.0);\n output.bezier = input.bezier;\n output.color = bitmap.color;\n output.worldPos = input.position;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description ビットマップ塗り用頂点シェーダー(ワールド座標出力付き)
3
+ * Bitmap fill vertex shader with world position output
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const BitmapFillVertex = /* wgsl */ `
2
9
  override yFlipSign: f32 = 1.0;
3
10
 
@@ -1 +1,8 @@
1
+ /**
2
+ * @description 塗り用頂点シェーダー(ベジェ曲線パラメータ付き行列変換)
3
+ * Fill vertex shader with matrix transform and bezier parameters
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const FillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n @location(1) color: vec4<f32>,\n}\n\nstruct FillUniforms {\n color: vec4<f32>,\n matrix0: vec4<f32>,\n matrix1: vec4<f32>,\n matrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: FillUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrix0.xyz, uniforms.matrix1.xyz, uniforms.matrix2.xyz);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let ndc = transformed.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.bezier = input.bezier;\n output.color = uniforms.color;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description 塗り用頂点シェーダー(ベジェ曲線パラメータ付き行列変換)
3
+ * Fill vertex shader with matrix transform and bezier parameters
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const FillVertex = /* wgsl */ `
2
9
  override yFlipSign: f32 = 1.0;
3
10
 
@@ -1,12 +1,88 @@
1
+ /**
2
+ * @description ブラーフィルター用フルスクリーン頂点シェーダー(Y軸テクスチャ反転)
3
+ * Full-screen vertex shader for blur filter with Y-axis texture flip
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const BlurFilterVertex: string;
9
+ /**
10
+ * @description 複合ブレンド用フルスクリーン頂点シェーダー
11
+ * Full-screen vertex shader for complex blend
12
+ *
13
+ * @type {string}
14
+ * @constant
15
+ */
2
16
  export declare const ComplexBlendVertex: string;
17
+ /**
18
+ * @description 複合ブレンドコピー用フルスクリーン頂点シェーダー
19
+ * Full-screen vertex shader for complex blend copy
20
+ *
21
+ * @type {string}
22
+ * @constant
23
+ */
3
24
  export declare const ComplexBlendCopyVertex: string;
25
+ /**
26
+ * @description ノードクリア用頂点シェーダー(NDC変換のみ)
27
+ * Node clear vertex shader with NDC transform only
28
+ *
29
+ * @type {string}
30
+ * @constant
31
+ */
4
32
  export declare const NodeClearVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n}\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let ndc = input.position * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y, 0.0, 1.0);\n return output;\n}\n";
33
+ /**
34
+ * @description 位置指定テクスチャ描画用頂点シェーダー(ビューポート変換付き)
35
+ * Positioned texture rendering vertex shader with viewport transform
36
+ *
37
+ * @type {string}
38
+ * @constant
39
+ */
5
40
  export declare const PositionedTextureVertex = "\nstruct PositionUniforms {\n offset: vec2<f32>,\n size: vec2<f32>,\n viewport: vec2<f32>,\n padding: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: PositionUniforms;\n\n@vertex\nfn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {\n var output: VertexOutput;\n\n const vertices = array<vec2<f32>, 6>(\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(1.0, 1.0)\n );\n let vertex = vertices[vertexIndex];\n output.texCoord = vec2<f32>(vertex.x, 1.0 - vertex.y);\n var position = vertex * uniforms.size + uniforms.offset;\n position = position / uniforms.viewport;\n position = position * 2.0 - 1.0;\n output.position = vec4<f32>(position.x, -position.y, 0.0, 1.0);\n return output;\n}\n";
41
+ /**
42
+ * @description ビットマップ同期用頂点シェーダー(ノード矩形ベース配置)
43
+ * Bitmap sync vertex shader with node rectangle-based positioning
44
+ *
45
+ * @type {string}
46
+ * @constant
47
+ */
6
48
  export declare const BitmapSyncVertex = "\nstruct BitmapSyncUniforms {\n nodeRect: vec4<f32>,\n textureSize: vec2<f32>,\n padding: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: BitmapSyncUniforms;\n\n@vertex\nfn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {\n var output: VertexOutput;\n\n const vertices = array<vec2<f32>, 6>(\n vec2<f32>(0.0, 0.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(0.0, 1.0),\n vec2<f32>(1.0, 0.0),\n vec2<f32>(1.0, 1.0)\n );\n let vertex = vertices[vertexIndex];\n let pixelPos = vec2<f32>(\n uniforms.nodeRect.x + vertex.x * uniforms.nodeRect.z,\n uniforms.nodeRect.y + vertex.y * uniforms.nodeRect.w\n );\n let ndc = pixelPos / uniforms.textureSize * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, -ndc.y, 0.0, 1.0);\n output.texCoord = pixelPos / uniforms.textureSize;\n return output;\n}\n";
7
- export declare const BlendModeVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) texCoord: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n}\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n output.position = vec4<f32>(input.position, 0.0, 1.0);\n output.texCoord = input.texCoord;\n return output;\n}\n";
49
+ /**
50
+ * @description テクスチャスケール用頂点シェーダー
51
+ * Texture scale vertex shader
52
+ *
53
+ * @type {string}
54
+ * @constant
55
+ */
8
56
  export declare const TextureScaleVertex: string;
57
+ /**
58
+ * @description ブレンド用テクスチャスケール頂点シェーダー(Y軸反転)
59
+ * Texture scale vertex shader for blend with Y-axis flip
60
+ *
61
+ * @type {string}
62
+ * @constant
63
+ */
9
64
  export declare const TextureScaleBlendVertex: string;
65
+ /**
66
+ * @description 複合ブレンドスケール用頂点シェーダー
67
+ * Complex blend scale vertex shader
68
+ *
69
+ * @type {string}
70
+ * @constant
71
+ */
10
72
  export declare const ComplexBlendScaleVertex: string;
73
+ /**
74
+ * @description 複合ブレンド出力用頂点シェーダー
75
+ * Complex blend output vertex shader
76
+ *
77
+ * @type {string}
78
+ * @constant
79
+ */
11
80
  export declare const ComplexBlendOutputVertex: string;
81
+ /**
82
+ * @description フィルター複合ブレンド出力用頂点シェーダー(Y軸反転)
83
+ * Filter complex blend output vertex shader with Y-axis flip
84
+ *
85
+ * @type {string}
86
+ * @constant
87
+ */
12
88
  export declare const FilterComplexBlendOutputVertex: string;
@@ -1,5 +1,12 @@
1
1
  import { WgslFullscreenPositions, WgslUnitQuadVertices, WgslVertexOutput } from "../common/SharedWgsl";
2
- const createFullscreenQuadVertex = (yFlipTexCoord) => /* wgsl */ `
2
+ /**
3
+ * @description フルスクリーン四角形の頂点シェーダーを生成する
4
+ * Generate a full-screen quad vertex shader
5
+ *
6
+ * @param {boolean} y_flip_tex_coord - テクスチャY座標を反転するかどうか
7
+ * @return {string}
8
+ */
9
+ const $createFullscreenQuadVertex = (y_flip_tex_coord) => /* wgsl */ `
3
10
  ${WgslVertexOutput}
4
11
 
5
12
  @vertex
@@ -7,21 +14,49 @@ fn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
7
14
  var output: VertexOutput;
8
15
  ${WgslFullscreenPositions}
9
16
  var texCoords = array<vec2<f32>, 6>(
10
- vec2<f32>(0.0, ${yFlipTexCoord ? "1.0" : "0.0"}),
11
- vec2<f32>(1.0, ${yFlipTexCoord ? "1.0" : "0.0"}),
12
- vec2<f32>(0.0, ${yFlipTexCoord ? "0.0" : "1.0"}),
13
- vec2<f32>(0.0, ${yFlipTexCoord ? "0.0" : "1.0"}),
14
- vec2<f32>(1.0, ${yFlipTexCoord ? "1.0" : "0.0"}),
15
- vec2<f32>(1.0, ${yFlipTexCoord ? "0.0" : "1.0"})
17
+ vec2<f32>(0.0, ${y_flip_tex_coord ? "1.0" : "0.0"}),
18
+ vec2<f32>(1.0, ${y_flip_tex_coord ? "1.0" : "0.0"}),
19
+ vec2<f32>(0.0, ${y_flip_tex_coord ? "0.0" : "1.0"}),
20
+ vec2<f32>(0.0, ${y_flip_tex_coord ? "0.0" : "1.0"}),
21
+ vec2<f32>(1.0, ${y_flip_tex_coord ? "1.0" : "0.0"}),
22
+ vec2<f32>(1.0, ${y_flip_tex_coord ? "0.0" : "1.0"})
16
23
  );
17
24
  output.position = vec4<f32>(positions[vertexIndex], 0.0, 1.0);
18
25
  output.texCoord = texCoords[vertexIndex];
19
26
  return output;
20
27
  }
21
28
  `;
22
- export const BlurFilterVertex = createFullscreenQuadVertex(true);
23
- export const ComplexBlendVertex = createFullscreenQuadVertex(false);
24
- export const ComplexBlendCopyVertex = createFullscreenQuadVertex(false);
29
+ /**
30
+ * @description ブラーフィルター用フルスクリーン頂点シェーダー(Y軸テクスチャ反転)
31
+ * Full-screen vertex shader for blur filter with Y-axis texture flip
32
+ *
33
+ * @type {string}
34
+ * @constant
35
+ */
36
+ export const BlurFilterVertex = $createFullscreenQuadVertex(true);
37
+ /**
38
+ * @description 複合ブレンド用フルスクリーン頂点シェーダー
39
+ * Full-screen vertex shader for complex blend
40
+ *
41
+ * @type {string}
42
+ * @constant
43
+ */
44
+ export const ComplexBlendVertex = $createFullscreenQuadVertex(false);
45
+ /**
46
+ * @description 複合ブレンドコピー用フルスクリーン頂点シェーダー
47
+ * Full-screen vertex shader for complex blend copy
48
+ *
49
+ * @type {string}
50
+ * @constant
51
+ */
52
+ export const ComplexBlendCopyVertex = $createFullscreenQuadVertex(false);
53
+ /**
54
+ * @description ノードクリア用頂点シェーダー(NDC変換のみ)
55
+ * Node clear vertex shader with NDC transform only
56
+ *
57
+ * @type {string}
58
+ * @constant
59
+ */
25
60
  export const NodeClearVertex = /* wgsl */ `
26
61
  struct VertexInput {
27
62
  @location(0) position: vec2<f32>,
@@ -39,6 +74,13 @@ fn main(input: VertexInput) -> VertexOutput {
39
74
  return output;
40
75
  }
41
76
  `;
77
+ /**
78
+ * @description 位置指定テクスチャ描画用頂点シェーダー(ビューポート変換付き)
79
+ * Positioned texture rendering vertex shader with viewport transform
80
+ *
81
+ * @type {string}
82
+ * @constant
83
+ */
42
84
  export const PositionedTextureVertex = /* wgsl */ `
43
85
  struct PositionUniforms {
44
86
  offset: vec2<f32>,
@@ -67,6 +109,13 @@ ${WgslUnitQuadVertices}
67
109
  return output;
68
110
  }
69
111
  `;
112
+ /**
113
+ * @description ビットマップ同期用頂点シェーダー(ノード矩形ベース配置)
114
+ * Bitmap sync vertex shader with node rectangle-based positioning
115
+ *
116
+ * @type {string}
117
+ * @constant
118
+ */
70
119
  export const BitmapSyncVertex = /* wgsl */ `
71
120
  struct BitmapSyncUniforms {
72
121
  nodeRect: vec4<f32>,
@@ -96,26 +145,14 @@ ${WgslUnitQuadVertices}
96
145
  return output;
97
146
  }
98
147
  `;
99
- export const BlendModeVertex = /* wgsl */ `
100
- struct VertexInput {
101
- @location(0) position: vec2<f32>,
102
- @location(1) texCoord: vec2<f32>,
103
- }
104
-
105
- struct VertexOutput {
106
- @builtin(position) position: vec4<f32>,
107
- @location(0) texCoord: vec2<f32>,
108
- }
109
-
110
- @vertex
111
- fn main(input: VertexInput) -> VertexOutput {
112
- var output: VertexOutput;
113
- output.position = vec4<f32>(input.position, 0.0, 1.0);
114
- output.texCoord = input.texCoord;
115
- return output;
116
- }
117
- `;
118
- const ScaleUniformsAndStruct = `
148
+ /**
149
+ * @description スケール変換用Uniform定義と頂点出力構造体のWGSLコード
150
+ * WGSL code for scale transform uniform definitions and vertex output struct
151
+ *
152
+ * @type {string}
153
+ * @constant
154
+ */
155
+ const $ScaleUniformsAndStruct = `
119
156
  struct ScaleUniforms {
120
157
  matrix: vec4<f32>,
121
158
  translate: vec2<f32>,
@@ -131,7 +168,14 @@ struct VertexOutput {
131
168
 
132
169
  @group(0) @binding(0) var<uniform> uniforms: ScaleUniforms;
133
170
  `;
134
- const ScaleTransformBody = `
171
+ /**
172
+ * @description スケール変換の頂点位置計算処理のWGSLコード
173
+ * WGSL code for scale transform vertex position calculation
174
+ *
175
+ * @type {string}
176
+ * @constant
177
+ */
178
+ const $ScaleTransformBody = `
135
179
  var pos = vertex * uniforms.srcSize;
136
180
  let a = uniforms.matrix.x;
137
181
  let b = uniforms.matrix.y;
@@ -145,23 +189,58 @@ const ScaleTransformBody = `
145
189
  position = position * 2.0 - 1.0;
146
190
  output.position = vec4<f32>(position.x, -position.y, 0.0, 1.0);
147
191
  `;
148
- const createScaleVertex = (yFlipTexCoord) => /* wgsl */ `
149
- ${ScaleUniformsAndStruct}
192
+ /**
193
+ * @description スケール変換用頂点シェーダーを生成する
194
+ * Generate a scale transform vertex shader
195
+ *
196
+ * @param {boolean} y_flip_tex_coord - テクスチャY座標を反転するかどうか
197
+ * @return {string}
198
+ */
199
+ const $createScaleVertex = (y_flip_tex_coord) => /* wgsl */ `
200
+ ${$ScaleUniformsAndStruct}
150
201
 
151
202
  @vertex
152
203
  fn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
153
204
  var output: VertexOutput;
154
205
  ${WgslUnitQuadVertices}
155
206
  let vertex = vertices[vertexIndex];
156
- output.texCoord = ${yFlipTexCoord ? "vec2<f32>(vertex.x, 1.0 - vertex.y)" : "vertex"};
157
- ${ScaleTransformBody}
207
+ output.texCoord = ${y_flip_tex_coord ? "vec2<f32>(vertex.x, 1.0 - vertex.y)" : "vertex"};
208
+ ${$ScaleTransformBody}
158
209
  return output;
159
210
  }
160
211
  `;
161
- export const TextureScaleVertex = createScaleVertex(false);
162
- export const TextureScaleBlendVertex = createScaleVertex(true);
163
- export const ComplexBlendScaleVertex = createScaleVertex(false);
164
- const createOutputVertex = (yFlipTexCoord) => /* wgsl */ `
212
+ /**
213
+ * @description テクスチャスケール用頂点シェーダー
214
+ * Texture scale vertex shader
215
+ *
216
+ * @type {string}
217
+ * @constant
218
+ */
219
+ export const TextureScaleVertex = $createScaleVertex(false);
220
+ /**
221
+ * @description ブレンド用テクスチャスケール頂点シェーダー(Y軸反転)
222
+ * Texture scale vertex shader for blend with Y-axis flip
223
+ *
224
+ * @type {string}
225
+ * @constant
226
+ */
227
+ export const TextureScaleBlendVertex = $createScaleVertex(true);
228
+ /**
229
+ * @description 複合ブレンドスケール用頂点シェーダー
230
+ * Complex blend scale vertex shader
231
+ *
232
+ * @type {string}
233
+ * @constant
234
+ */
235
+ export const ComplexBlendScaleVertex = $createScaleVertex(false);
236
+ /**
237
+ * @description 出力用頂点シェーダーを生成する(位置指定・ビューポート変換)
238
+ * Generate an output vertex shader with positioning and viewport transform
239
+ *
240
+ * @param {boolean} y_flip_tex_coord - テクスチャY座標を反転するかどうか
241
+ * @return {string}
242
+ */
243
+ const $createOutputVertex = (y_flip_tex_coord) => /* wgsl */ `
165
244
  struct PositionUniforms {
166
245
  offset: vec2<f32>,
167
246
  size: vec2<f32>,
@@ -181,7 +260,7 @@ fn main(@builtin(vertex_index) vertexIndex: u32) -> VertexOutput {
181
260
  var output: VertexOutput;
182
261
  ${WgslUnitQuadVertices}
183
262
  let vertex = vertices[vertexIndex];
184
- output.texCoord = ${yFlipTexCoord ? "vec2<f32>(vertex.x, 1.0 - vertex.y)" : "vertex"};
263
+ output.texCoord = ${y_flip_tex_coord ? "vec2<f32>(vertex.x, 1.0 - vertex.y)" : "vertex"};
185
264
  var position = vertex * uniforms.size + uniforms.offset;
186
265
  position = position / uniforms.viewport;
187
266
  position = position * 2.0 - 1.0;
@@ -189,5 +268,19 @@ ${WgslUnitQuadVertices}
189
268
  return output;
190
269
  }
191
270
  `;
192
- export const ComplexBlendOutputVertex = createOutputVertex(false);
193
- export const FilterComplexBlendOutputVertex = createOutputVertex(true);
271
+ /**
272
+ * @description 複合ブレンド出力用頂点シェーダー
273
+ * Complex blend output vertex shader
274
+ *
275
+ * @type {string}
276
+ * @constant
277
+ */
278
+ export const ComplexBlendOutputVertex = $createOutputVertex(false);
279
+ /**
280
+ * @description フィルター複合ブレンド出力用頂点シェーダー(Y軸反転)
281
+ * Filter complex blend output vertex shader with Y-axis flip
282
+ *
283
+ * @type {string}
284
+ * @constant
285
+ */
286
+ export const FilterComplexBlendOutputVertex = $createOutputVertex(true);
@@ -1 +1,8 @@
1
+ /**
2
+ * @description グラデーション塗り用頂点シェーダー(逆行列によるUV座標計算)
3
+ * Gradient fill vertex shader with inverse matrix UV coordinate calculation
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const GradientFillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) v_uv: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n @location(2) color: vec4<f32>,\n}\n\nstruct GradientUniforms {\n inverseMatrix: mat3x3<f32>,\n gradientType: f32,\n focal: f32,\n spread: f32,\n radius: f32,\n linearPoints: vec4<f32>,\n color: vec4<f32>,\n contextMatrix0: vec4<f32>,\n contextMatrix1: vec4<f32>,\n contextMatrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> gradient: GradientUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let contextMatrix = mat3x3<f32>(gradient.contextMatrix0.xyz, gradient.contextMatrix1.xyz, gradient.contextMatrix2.xyz);\n let pos = contextMatrix * vec3<f32>(input.position, 1.0);\n let ndc = vec2<f32>(pos.x * 2.0 - 1.0, pos.y * 2.0 - 1.0);\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n let uvPos = gradient.inverseMatrix * vec3<f32>(input.position, 1.0);\n output.v_uv = uvPos.xy;\n output.bezier = input.bezier;\n output.color = gradient.color;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description グラデーション塗り用頂点シェーダー(逆行列によるUV座標計算)
3
+ * Gradient fill vertex shader with inverse matrix UV coordinate calculation
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const GradientFillVertex = /* wgsl */ `
2
9
  override yFlipSign: f32 = 1.0;
3
10
 
@@ -1 +1,8 @@
1
+ /**
2
+ * @description インスタンス描画用頂点シェーダー(インスタンスごとの変換・カラー)
3
+ * Instanced rendering vertex shader with per-instance transform and color
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const InstancedVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) texCoord: vec2<f32>,\n}\n\nstruct InstanceInput {\n @location(2) textureRect: vec4<f32>,\n @location(3) textureDim: vec4<f32>,\n @location(4) matrixTx: vec4<f32>,\n @location(5) matrixScale: vec4<f32>,\n @location(6) mulColor: vec4<f32>,\n @location(7) addColor: vec4<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texCoord: vec2<f32>,\n @location(1) mulColor: vec4<f32>,\n @location(2) addColor: vec4<f32>,\n}\n\n@vertex\nfn main(\n input: VertexInput,\n instance: InstanceInput,\n @builtin(instance_index) instanceIdx: u32\n) -> VertexOutput {\n var output: VertexOutput;\n let texX = instance.textureRect.x + input.texCoord.x * instance.textureRect.z;\n let texY = instance.textureRect.y + input.texCoord.y * instance.textureRect.w;\n output.texCoord = vec2<f32>(texX, texY);\n var pos = vec2<f32>(input.position.x, 1.0 - input.position.y);\n pos = pos * vec2<f32>(instance.textureDim.x, instance.textureDim.y);\n let scale0 = instance.matrixScale.x;\n let rotate0 = instance.matrixScale.y;\n let scale1 = instance.matrixScale.z;\n let rotate1 = instance.matrixScale.w;\n let transformedX = pos.x * scale0 + pos.y * scale1 + instance.matrixTx.x;\n let transformedY = pos.x * rotate0 + pos.y * rotate1 + instance.matrixTx.y;\n var position = vec2<f32>(transformedX, transformedY) / vec2<f32>(instance.textureDim.z, instance.textureDim.w);\n position = position * 2.0 - 1.0;\n output.position = vec4<f32>(position.x, -position.y, 0.0, 1.0);\n output.mulColor = instance.mulColor;\n output.addColor = instance.addColor;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description インスタンス描画用頂点シェーダー(インスタンスごとの変換・カラー)
3
+ * Instanced rendering vertex shader with per-instance transform and color
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const InstancedVertex = /* wgsl */ `
2
9
  struct VertexInput {
3
10
  @location(0) position: vec2<f32>,
@@ -1 +1,8 @@
1
+ /**
2
+ * @description マスク用頂点シェーダー(ベジェ曲線パラメータ付き行列変換)
3
+ * Mask vertex shader with matrix transform and bezier parameters
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const MaskVertex = "\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n}\n\nstruct Uniforms {\n viewportSize: vec2<f32>,\n _padding0: vec2<f32>,\n matrixCol0: vec3<f32>,\n _padding1: f32,\n matrixCol1: vec3<f32>,\n _padding2: f32,\n matrixCol2: vec3<f32>,\n _padding3: f32,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: Uniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrixCol0, uniforms.matrixCol1, uniforms.matrixCol2);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let pos = transformed.xy;\n let ndc = pos * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, -ndc.y, 0.0, 1.0);\n output.bezier = input.bezier;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description マスク用頂点シェーダー(ベジェ曲線パラメータ付き行列変換)
3
+ * Mask vertex shader with matrix transform and bezier parameters
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const MaskVertex = /* wgsl */ `
2
9
  struct VertexInput {
3
10
  @location(0) position: vec2<f32>,
@@ -1,2 +1,16 @@
1
+ /**
2
+ * @description ステンシル書き込み用頂点シェーダー(ベジェ曲線パラメータ付き)
3
+ * Stencil write vertex shader with bezier parameters
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export declare const StencilWriteVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) bezier: vec2<f32>,\n}\n\nstruct FillUniforms {\n color: vec4<f32>,\n matrix0: vec4<f32>,\n matrix1: vec4<f32>,\n matrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: FillUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrix0.xyz, uniforms.matrix1.xyz, uniforms.matrix2.xyz);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let ndc = transformed.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.bezier = input.bezier;\n return output;\n}\n";
9
+ /**
10
+ * @description ステンシル塗り用頂点シェーダー(カラー出力付き)
11
+ * Stencil fill vertex shader with color output
12
+ *
13
+ * @type {string}
14
+ * @constant
15
+ */
2
16
  export declare const StencilFillVertex = "\noverride yFlipSign: f32 = 1.0;\n\nstruct VertexInput {\n @location(0) position: vec2<f32>,\n @location(1) bezier: vec2<f32>,\n}\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) color: vec4<f32>,\n}\n\nstruct FillUniforms {\n color: vec4<f32>,\n matrix0: vec4<f32>,\n matrix1: vec4<f32>,\n matrix2: vec4<f32>,\n}\n\n@group(0) @binding(0) var<uniform> uniforms: FillUniforms;\n\n@vertex\nfn main(input: VertexInput) -> VertexOutput {\n var output: VertexOutput;\n let matrix = mat3x3<f32>(uniforms.matrix0.xyz, uniforms.matrix1.xyz, uniforms.matrix2.xyz);\n let transformed = matrix * vec3<f32>(input.position, 1.0);\n let ndc = transformed.xy * 2.0 - 1.0;\n output.position = vec4<f32>(ndc.x, ndc.y * yFlipSign, 0.0, 1.0);\n output.color = uniforms.color;\n return output;\n}\n";
@@ -1,3 +1,10 @@
1
+ /**
2
+ * @description ステンシル書き込み用頂点シェーダー(ベジェ曲線パラメータ付き)
3
+ * Stencil write vertex shader with bezier parameters
4
+ *
5
+ * @type {string}
6
+ * @constant
7
+ */
1
8
  export const StencilWriteVertex = /* wgsl */ `
2
9
  override yFlipSign: f32 = 1.0;
3
10
 
@@ -31,6 +38,13 @@ fn main(input: VertexInput) -> VertexOutput {
31
38
  return output;
32
39
  }
33
40
  `;
41
+ /**
42
+ * @description ステンシル塗り用頂点シェーダー(カラー出力付き)
43
+ * Stencil fill vertex shader with color output
44
+ *
45
+ * @type {string}
46
+ * @constant
47
+ */
34
48
  export const StencilFillVertex = /* wgsl */ `
35
49
  override yFlipSign: f32 = 1.0;
36
50
 
@@ -2,8 +2,8 @@
2
2
  * @description サンプラーを初期化
3
3
  * Initialize samplers
4
4
  *
5
- * @param {GPUDevice} device
6
- * @param {Map<string, GPUSampler>} samplers
5
+ * @param {GPUDevice} device - GPUデバイス
6
+ * @param {Map<string, GPUSampler>} samplers - サンプラー管理マップ
7
7
  * @return {void}
8
8
  * @method
9
9
  * @protected
@@ -2,8 +2,8 @@
2
2
  * @description サンプラーを初期化
3
3
  * Initialize samplers
4
4
  *
5
- * @param {GPUDevice} device
6
- * @param {Map<string, GPUSampler>} samplers
5
+ * @param {GPUDevice} device - GPUデバイス
6
+ * @param {Map<string, GPUSampler>} samplers - サンプラー管理マップ
7
7
  * @return {void}
8
8
  * @method
9
9
  * @protected
@@ -1,15 +1,46 @@
1
+ /**
2
+ * @description テクスチャとサンプラーの管理クラス
3
+ * Manager class for textures and samplers
4
+ */
1
5
  export declare class TextureManager {
2
6
  private device;
3
7
  private textures;
4
8
  private samplers;
9
+ /**
10
+ * @description TextureManagerのコンストラクタ
11
+ * Constructor for TextureManager
12
+ * @param {GPUDevice} device - WebGPUデバイス / WebGPU device
13
+ */
5
14
  constructor(device: GPUDevice);
15
+ /**
16
+ * @description 新しいGPUテクスチャを作成する
17
+ * Create a new GPU texture
18
+ * @param {string} name - テクスチャ名 / Texture name
19
+ * @param {number} width - テクスチャの幅 / Texture width
20
+ * @param {number} height - テクスチャの高さ / Texture height
21
+ * @param {GPUTextureFormat} [format="rgba8unorm"] - テクスチャフォーマット / Texture format
22
+ * @return {GPUTexture}
23
+ */
6
24
  createTexture(name: string, width: number, height: number, format?: GPUTextureFormat): GPUTexture;
7
- createTextureFromPixels(name: string, pixels: Uint8Array, width: number, height: number): GPUTexture;
8
- createTextureFromImageBitmap(name: string, imageBitmap: ImageBitmap): GPUTexture;
9
- updateTexture(name: string, pixels: Uint8Array, width: number, height: number): void;
25
+ /**
26
+ * @description 名前でテクスチャを取得する
27
+ * Get a texture by name
28
+ * @param {string} name - テクスチャ名 / Texture name
29
+ * @return {GPUTexture | undefined}
30
+ */
10
31
  getTexture(name: string): GPUTexture | undefined;
11
- getSampler(name: string): GPUSampler | undefined;
32
+ /**
33
+ * @description サンプラーを作成する(既存の場合は返却)
34
+ * Create a sampler (returns existing if found)
35
+ * @param {string} name - サンプラー名 / Sampler name
36
+ * @param {boolean} [smooth=true] - スムージングを有効にするか / Whether to enable smoothing
37
+ * @return {GPUSampler}
38
+ */
12
39
  createSampler(name: string, smooth?: boolean): GPUSampler;
13
- destroyTexture(name: string): void;
40
+ /**
41
+ * @description 全テクスチャとサンプラーを破棄する
42
+ * Dispose all textures and samplers
43
+ * @return {void}
44
+ */
14
45
  dispose(): void;
15
46
  }