@next2d/player 1.14.7 → 1.14.8

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 (415) hide show
  1. package/@types/next2d.d.ts +4 -0
  2. package/@types/window.d.ts +74 -0
  3. package/README.ja.md +8 -7
  4. package/README.md +17 -12
  5. package/dist/interface/AjaxEventImpl.d.ts +5 -0
  6. package/dist/interface/AjaxEventImpl.js +1 -0
  7. package/dist/interface/AjaxOptionImpl.d.ts +13 -0
  8. package/dist/interface/AjaxOptionImpl.js +1 -0
  9. package/dist/interface/AttachmentImpl.d.ts +11 -0
  10. package/dist/interface/AttachmentImpl.js +1 -0
  11. package/dist/interface/BitmapDataChannelImpl.d.ts +1 -0
  12. package/dist/interface/BitmapDataChannelImpl.js +1 -0
  13. package/dist/interface/BitmapDrawObjectImpl.d.ts +6 -0
  14. package/dist/interface/BitmapDrawObjectImpl.js +1 -0
  15. package/dist/interface/BitmapFilterTypeImpl.d.ts +1 -0
  16. package/dist/interface/BitmapFilterTypeImpl.js +1 -0
  17. package/dist/interface/BlendModeImpl.d.ts +1 -0
  18. package/dist/interface/BlendModeImpl.js +1 -0
  19. package/dist/interface/BoundsImpl.d.ts +6 -0
  20. package/dist/interface/BoundsImpl.js +1 -0
  21. package/dist/interface/Character.d.ts +2 -0
  22. package/dist/interface/Character.js +1 -0
  23. package/dist/interface/CharacterImpl.d.ts +2 -0
  24. package/dist/interface/CharacterImpl.js +1 -0
  25. package/dist/interface/ClassNameMap.d.ts +4 -0
  26. package/dist/interface/ClassNameMap.js +1 -0
  27. package/dist/interface/ClipObjectImpl.d.ts +14 -0
  28. package/dist/interface/ClipObjectImpl.js +1 -0
  29. package/dist/interface/ColorStopImpl.d.ts +7 -0
  30. package/dist/interface/ColorStopImpl.js +1 -0
  31. package/dist/interface/DictionaryTagImpl.d.ts +7 -0
  32. package/dist/interface/DictionaryTagImpl.js +1 -0
  33. package/dist/interface/DisplacementMapFilterModeImpl.d.ts +1 -0
  34. package/dist/interface/DisplacementMapFilterModeImpl.js +1 -0
  35. package/dist/interface/DisplayImpl.d.ts +28 -0
  36. package/dist/interface/DisplayImpl.js +1 -0
  37. package/dist/interface/DisplayObjectImpl.d.ts +2 -0
  38. package/dist/interface/DisplayObjectImpl.js +1 -0
  39. package/dist/interface/DragRulesImpl.d.ts +7 -0
  40. package/dist/interface/DragRulesImpl.js +1 -0
  41. package/dist/interface/DropTargetImpl.d.ts +2 -0
  42. package/dist/interface/DropTargetImpl.js +1 -0
  43. package/dist/interface/EventDispatcherImpl.d.ts +2 -0
  44. package/dist/interface/EventDispatcherImpl.js +1 -0
  45. package/dist/interface/EventListenerImpl.d.ts +6 -0
  46. package/dist/interface/EventListenerImpl.js +1 -0
  47. package/dist/interface/EventsImpl.d.ts +20 -0
  48. package/dist/interface/EventsImpl.js +1 -0
  49. package/dist/interface/FillMeshImpl.d.ts +5 -0
  50. package/dist/interface/FillMeshImpl.js +1 -0
  51. package/dist/interface/FilterArrayImpl.d.ts +10 -0
  52. package/dist/interface/FilterArrayImpl.js +1 -0
  53. package/dist/interface/FilterQualityImpl.d.ts +1 -0
  54. package/dist/interface/FilterQualityImpl.js +1 -0
  55. package/dist/interface/FiltersImpl.d.ts +20 -0
  56. package/dist/interface/FiltersImpl.js +1 -0
  57. package/dist/interface/GeomImpl.d.ts +12 -0
  58. package/dist/interface/GeomImpl.js +1 -0
  59. package/dist/interface/GradientTypeImpl.d.ts +3 -0
  60. package/dist/interface/GradientTypeImpl.js +1 -0
  61. package/dist/interface/GraphicsParentImpl.d.ts +2 -0
  62. package/dist/interface/GraphicsParentImpl.js +1 -0
  63. package/dist/interface/GridImpl.d.ts +6 -0
  64. package/dist/interface/GridImpl.js +1 -0
  65. package/dist/interface/ImageTypeImpl.d.ts +1 -0
  66. package/dist/interface/ImageTypeImpl.js +1 -0
  67. package/dist/interface/IndexRangeImpl.d.ts +4 -0
  68. package/dist/interface/IndexRangeImpl.js +1 -0
  69. package/dist/interface/LoaderInfoDataImpl.d.ts +7 -0
  70. package/dist/interface/LoaderInfoDataImpl.js +1 -0
  71. package/dist/interface/LoopConfigImpl.d.ts +8 -0
  72. package/dist/interface/LoopConfigImpl.js +1 -0
  73. package/dist/interface/LoopTypeImpl.d.ts +1 -0
  74. package/dist/interface/LoopTypeImpl.js +1 -0
  75. package/dist/interface/MediaImpl.d.ts +10 -0
  76. package/dist/interface/MediaImpl.js +1 -0
  77. package/dist/interface/MovieClipActionObjectImpl.d.ts +5 -0
  78. package/dist/interface/MovieClipActionObjectImpl.js +1 -0
  79. package/dist/interface/MovieClipCharacterImpl.d.ts +18 -0
  80. package/dist/interface/MovieClipCharacterImpl.js +1 -0
  81. package/dist/interface/MovieClipLabelObjectImpl.d.ts +4 -0
  82. package/dist/interface/MovieClipLabelObjectImpl.js +1 -0
  83. package/dist/interface/MovieClipSoundObjectImpl.d.ts +5 -0
  84. package/dist/interface/MovieClipSoundObjectImpl.js +1 -0
  85. package/dist/interface/NetImpl.d.ts +6 -0
  86. package/dist/interface/NetImpl.js +1 -0
  87. package/dist/interface/NoCodeDataImpl.d.ts +7 -0
  88. package/dist/interface/NoCodeDataImpl.js +1 -0
  89. package/dist/interface/NoCodeDataZlibImpl.d.ts +4 -0
  90. package/dist/interface/NoCodeDataZlibImpl.js +1 -0
  91. package/dist/interface/ParentImpl.d.ts +2 -0
  92. package/dist/interface/ParentImpl.js +1 -0
  93. package/dist/interface/PlaceObjectImpl.d.ts +12 -0
  94. package/dist/interface/PlaceObjectImpl.js +1 -0
  95. package/dist/interface/PlayerHitObjectImpl.d.ts +7 -0
  96. package/dist/interface/PlayerHitObjectImpl.js +1 -0
  97. package/dist/interface/PlayerModeImpl.d.ts +1 -0
  98. package/dist/interface/PlayerModeImpl.js +1 -0
  99. package/dist/interface/PlayerOptionsImpl.d.ts +8 -0
  100. package/dist/interface/PlayerOptionsImpl.js +1 -0
  101. package/dist/interface/PointImpl.d.ts +4 -0
  102. package/dist/interface/PointImpl.js +1 -0
  103. package/dist/interface/PreObjectImpl.d.ts +23 -0
  104. package/dist/interface/PreObjectImpl.js +1 -0
  105. package/dist/interface/PropertyContainerMessageImpl.d.ts +6 -0
  106. package/dist/interface/PropertyContainerMessageImpl.js +1 -0
  107. package/dist/interface/PropertyMessageImpl.d.ts +41 -0
  108. package/dist/interface/PropertyMessageImpl.js +1 -0
  109. package/dist/interface/PropertyMessageMapImpl.d.ts +2 -0
  110. package/dist/interface/PropertyMessageMapImpl.js +1 -0
  111. package/dist/interface/PropertyShapeMessageImpl.d.ts +6 -0
  112. package/dist/interface/PropertyShapeMessageImpl.js +1 -0
  113. package/dist/interface/PropertyTextMessageImpl.d.ts +25 -0
  114. package/dist/interface/PropertyTextMessageImpl.js +1 -0
  115. package/dist/interface/PropertyVideoMessageImpl.d.ts +5 -0
  116. package/dist/interface/PropertyVideoMessageImpl.js +1 -0
  117. package/dist/interface/RGBAImpl.d.ts +6 -0
  118. package/dist/interface/RGBAImpl.js +1 -0
  119. package/dist/interface/RenderDisplayObjectImpl.d.ts +2 -0
  120. package/dist/interface/RenderDisplayObjectImpl.js +1 -0
  121. package/dist/interface/ShapeCharacterImpl.d.ts +14 -0
  122. package/dist/interface/ShapeCharacterImpl.js +1 -0
  123. package/dist/interface/SoundCharacterImpl.d.ts +5 -0
  124. package/dist/interface/SoundCharacterImpl.js +1 -0
  125. package/dist/interface/SoundTagImpl.d.ts +6 -0
  126. package/dist/interface/SoundTagImpl.js +1 -0
  127. package/dist/interface/SpriteImpl.d.ts +2 -0
  128. package/dist/interface/SpriteImpl.js +1 -0
  129. package/dist/interface/StageDataImpl.d.ts +6 -0
  130. package/dist/interface/StageDataImpl.js +1 -0
  131. package/dist/interface/StageQualityImpl.d.ts +1 -0
  132. package/dist/interface/StageQualityImpl.js +1 -0
  133. package/dist/interface/StrokeMethImpl.d.ts +4 -0
  134. package/dist/interface/StrokeMethImpl.js +1 -0
  135. package/dist/interface/StrokeTypeImpl.d.ts +2 -0
  136. package/dist/interface/StrokeTypeImpl.js +1 -0
  137. package/dist/interface/SurfaceFilterImpl.d.ts +6 -0
  138. package/dist/interface/SurfaceFilterImpl.js +1 -0
  139. package/dist/interface/TextBreakObjectImpl.d.ts +9 -0
  140. package/dist/interface/TextBreakObjectImpl.js +1 -0
  141. package/dist/interface/TextCharacterImpl.d.ts +27 -0
  142. package/dist/interface/TextCharacterImpl.js +1 -0
  143. package/dist/interface/TextDataImpl.d.ts +2 -0
  144. package/dist/interface/TextDataImpl.js +1 -0
  145. package/dist/interface/TextFieldAutoSizeImpl.d.ts +1 -0
  146. package/dist/interface/TextFieldAutoSizeImpl.js +1 -0
  147. package/dist/interface/TextFieldTypeImpl.d.ts +1 -0
  148. package/dist/interface/TextFieldTypeImpl.js +1 -0
  149. package/dist/interface/TextFormatAlignImpl.d.ts +1 -0
  150. package/dist/interface/TextFormatAlignImpl.js +1 -0
  151. package/dist/interface/TextFormatImpl.d.ts +16 -0
  152. package/dist/interface/TextFormatImpl.js +1 -0
  153. package/dist/interface/TextFormatVerticalAlignImpl.d.ts +1 -0
  154. package/dist/interface/TextFormatVerticalAlignImpl.js +1 -0
  155. package/dist/interface/TextImageObjectImpl.d.ts +11 -0
  156. package/dist/interface/TextImageObjectImpl.js +1 -0
  157. package/dist/interface/TextImpl.d.ts +6 -0
  158. package/dist/interface/TextImpl.js +1 -0
  159. package/dist/interface/TextModeImpl.d.ts +1 -0
  160. package/dist/interface/TextModeImpl.js +1 -0
  161. package/dist/interface/TextObjectImpl.d.ts +7 -0
  162. package/dist/interface/TextObjectImpl.js +1 -0
  163. package/dist/interface/TextObjectModeImpl.d.ts +1 -0
  164. package/dist/interface/TextObjectModeImpl.js +1 -0
  165. package/dist/interface/TextStringObjectImpl.d.ts +7 -0
  166. package/dist/interface/TextStringObjectImpl.js +1 -0
  167. package/dist/interface/UIImpl.d.ts +8 -0
  168. package/dist/interface/UIImpl.js +1 -0
  169. package/dist/interface/URLLoaderDataFormatImpl.d.ts +1 -0
  170. package/dist/interface/URLLoaderDataFormatImpl.js +1 -0
  171. package/dist/interface/URLRequestMethodImpl.d.ts +1 -0
  172. package/dist/interface/URLRequestMethodImpl.js +1 -0
  173. package/dist/interface/UniformDataImpl.d.ts +5 -0
  174. package/dist/interface/UniformDataImpl.js +1 -0
  175. package/dist/interface/UnzipQueueImpl.d.ts +6 -0
  176. package/dist/interface/UnzipQueueImpl.js +1 -0
  177. package/dist/interface/VerticesImpl.d.ts +1 -0
  178. package/dist/interface/VerticesImpl.js +1 -0
  179. package/dist/interface/VideoCharacterImpl.d.ts +12 -0
  180. package/dist/interface/VideoCharacterImpl.js +1 -0
  181. package/dist/player/index.d.ts +1 -0
  182. package/dist/player/index.js +40 -0
  183. package/dist/player/next2d/display/BitmapData.d.ts +143 -0
  184. package/dist/player/next2d/display/BitmapData.js +390 -0
  185. package/dist/player/next2d/display/BlendMode.d.ts +204 -0
  186. package/dist/player/next2d/display/BlendMode.js +240 -0
  187. package/dist/player/next2d/display/DisplayObject.d.ts +571 -0
  188. package/dist/player/next2d/display/DisplayObject.js +1733 -0
  189. package/dist/player/next2d/display/DisplayObjectContainer.d.ts +351 -0
  190. package/dist/player/next2d/display/DisplayObjectContainer.js +1765 -0
  191. package/dist/player/next2d/display/FrameLabel.d.ts +98 -0
  192. package/dist/player/next2d/display/FrameLabel.js +122 -0
  193. package/dist/player/next2d/display/Graphics.d.ts +577 -0
  194. package/dist/player/next2d/display/Graphics.js +2193 -0
  195. package/dist/player/next2d/display/GraphicsBitmapFill.d.ts +49 -0
  196. package/dist/player/next2d/display/GraphicsBitmapFill.js +90 -0
  197. package/dist/player/next2d/display/GraphicsGradientFill.d.ts +66 -0
  198. package/dist/player/next2d/display/GraphicsGradientFill.js +162 -0
  199. package/dist/player/next2d/display/InteractiveObject.d.ts +32 -0
  200. package/dist/player/next2d/display/InteractiveObject.js +44 -0
  201. package/dist/player/next2d/display/Loader.d.ts +131 -0
  202. package/dist/player/next2d/display/Loader.js +324 -0
  203. package/dist/player/next2d/display/LoaderInfo.d.ts +122 -0
  204. package/dist/player/next2d/display/LoaderInfo.js +191 -0
  205. package/dist/player/next2d/display/LoopConfig.d.ts +108 -0
  206. package/dist/player/next2d/display/LoopConfig.js +160 -0
  207. package/dist/player/next2d/display/LoopType.d.ts +104 -0
  208. package/dist/player/next2d/display/LoopType.js +122 -0
  209. package/dist/player/next2d/display/MovieClip.d.ts +312 -0
  210. package/dist/player/next2d/display/MovieClip.js +959 -0
  211. package/dist/player/next2d/display/Shape.d.ts +167 -0
  212. package/dist/player/next2d/display/Shape.js +514 -0
  213. package/dist/player/next2d/display/Sprite.d.ts +174 -0
  214. package/dist/player/next2d/display/Sprite.js +288 -0
  215. package/dist/player/next2d/display/Stage.d.ts +164 -0
  216. package/dist/player/next2d/display/Stage.js +255 -0
  217. package/dist/player/next2d/events/Event.d.ts +424 -0
  218. package/dist/player/next2d/events/Event.js +569 -0
  219. package/dist/player/next2d/events/EventDispatcher.d.ts +138 -0
  220. package/dist/player/next2d/events/EventDispatcher.js +624 -0
  221. package/dist/player/next2d/events/EventPhase.d.ts +80 -0
  222. package/dist/player/next2d/events/EventPhase.js +94 -0
  223. package/dist/player/next2d/events/FocusEvent.d.ts +89 -0
  224. package/dist/player/next2d/events/FocusEvent.js +103 -0
  225. package/dist/player/next2d/events/HTTPStatusEvent.d.ts +107 -0
  226. package/dist/player/next2d/events/HTTPStatusEvent.js +142 -0
  227. package/dist/player/next2d/events/IOErrorEvent.d.ts +82 -0
  228. package/dist/player/next2d/events/IOErrorEvent.js +102 -0
  229. package/dist/player/next2d/events/MouseEvent.d.ts +163 -0
  230. package/dist/player/next2d/events/MouseEvent.js +207 -0
  231. package/dist/player/next2d/events/ProgressEvent.d.ts +97 -0
  232. package/dist/player/next2d/events/ProgressEvent.js +125 -0
  233. package/dist/player/next2d/events/VideoEvent.d.ts +145 -0
  234. package/dist/player/next2d/events/VideoEvent.js +183 -0
  235. package/dist/player/next2d/filters/BevelFilter.d.ts +254 -0
  236. package/dist/player/next2d/filters/BevelFilter.js +501 -0
  237. package/dist/player/next2d/filters/BitmapFilter.d.ts +75 -0
  238. package/dist/player/next2d/filters/BitmapFilter.js +96 -0
  239. package/dist/player/next2d/filters/BlurFilter.d.ts +150 -0
  240. package/dist/player/next2d/filters/BlurFilter.js +373 -0
  241. package/dist/player/next2d/filters/ColorMatrixFilter.d.ts +116 -0
  242. package/dist/player/next2d/filters/ColorMatrixFilter.js +180 -0
  243. package/dist/player/next2d/filters/ConvolutionFilter.d.ts +210 -0
  244. package/dist/player/next2d/filters/ConvolutionFilter.js +375 -0
  245. package/dist/player/next2d/filters/DisplacementMapFilter.d.ts +212 -0
  246. package/dist/player/next2d/filters/DisplacementMapFilter.js +381 -0
  247. package/dist/player/next2d/filters/DropShadowFilter.d.ts +240 -0
  248. package/dist/player/next2d/filters/DropShadowFilter.js +470 -0
  249. package/dist/player/next2d/filters/GlowFilter.d.ts +204 -0
  250. package/dist/player/next2d/filters/GlowFilter.js +362 -0
  251. package/dist/player/next2d/filters/GradientBevelFilter.d.ts +243 -0
  252. package/dist/player/next2d/filters/GradientBevelFilter.js +483 -0
  253. package/dist/player/next2d/filters/GradientGlowFilter.d.ts +243 -0
  254. package/dist/player/next2d/filters/GradientGlowFilter.js +473 -0
  255. package/dist/player/next2d/geom/ColorTransform.d.ts +201 -0
  256. package/dist/player/next2d/geom/ColorTransform.js +279 -0
  257. package/dist/player/next2d/geom/Matrix.d.ts +299 -0
  258. package/dist/player/next2d/geom/Matrix.js +455 -0
  259. package/dist/player/next2d/geom/Point.d.ts +213 -0
  260. package/dist/player/next2d/geom/Point.js +276 -0
  261. package/dist/player/next2d/geom/Rectangle.d.ts +364 -0
  262. package/dist/player/next2d/geom/Rectangle.js +517 -0
  263. package/dist/player/next2d/geom/Transform.d.ts +213 -0
  264. package/dist/player/next2d/geom/Transform.js +497 -0
  265. package/dist/player/next2d/media/Sound.d.ts +208 -0
  266. package/dist/player/next2d/media/Sound.js +515 -0
  267. package/dist/player/next2d/media/SoundMixer.d.ts +68 -0
  268. package/dist/player/next2d/media/SoundMixer.js +115 -0
  269. package/dist/player/next2d/media/SoundTransform.d.ts +80 -0
  270. package/dist/player/next2d/media/SoundTransform.js +113 -0
  271. package/dist/player/next2d/media/Video.d.ts +329 -0
  272. package/dist/player/next2d/media/Video.js +871 -0
  273. package/dist/player/next2d/net/URLRequest.d.ts +143 -0
  274. package/dist/player/next2d/net/URLRequest.js +239 -0
  275. package/dist/player/next2d/net/URLRequestHeader.d.ts +82 -0
  276. package/dist/player/next2d/net/URLRequestHeader.js +107 -0
  277. package/dist/player/next2d/text/TextField.d.ts +642 -0
  278. package/dist/player/next2d/text/TextField.js +2707 -0
  279. package/dist/player/next2d/text/TextFormat.d.ts +250 -0
  280. package/dist/player/next2d/text/TextFormat.js +473 -0
  281. package/dist/player/next2d/ui/Easing.d.ts +359 -0
  282. package/dist/player/next2d/ui/Easing.js +481 -0
  283. package/dist/player/next2d/ui/Job.d.ts +155 -0
  284. package/dist/player/next2d/ui/Job.js +344 -0
  285. package/dist/player/next2d/ui/Tween.d.ts +62 -0
  286. package/dist/player/next2d/ui/Tween.js +72 -0
  287. package/dist/player/packages/Display.d.ts +3 -0
  288. package/dist/player/packages/Display.js +36 -0
  289. package/dist/player/packages/Events.d.ts +3 -0
  290. package/dist/player/packages/Events.js +28 -0
  291. package/dist/player/packages/Filters.d.ts +3 -0
  292. package/dist/player/packages/Filters.js +28 -0
  293. package/dist/player/packages/Geom.d.ts +3 -0
  294. package/dist/player/packages/Geom.js +20 -0
  295. package/dist/player/packages/Media.d.ts +3 -0
  296. package/dist/player/packages/Media.js +18 -0
  297. package/dist/player/packages/Net.d.ts +3 -0
  298. package/dist/player/packages/Net.js +14 -0
  299. package/dist/player/packages/Text.d.ts +3 -0
  300. package/dist/player/packages/Text.js +14 -0
  301. package/dist/player/packages/UI.d.ts +3 -0
  302. package/dist/player/packages/UI.js +16 -0
  303. package/dist/player/player/Next2D.d.ts +71 -0
  304. package/dist/player/player/Next2D.js +206 -0
  305. package/dist/player/player/Player.d.ts +334 -0
  306. package/dist/player/player/Player.js +1912 -0
  307. package/dist/player/util/CacheStore.d.ts +115 -0
  308. package/dist/player/util/CacheStore.js +280 -0
  309. package/dist/player/util/Global.d.ts +23 -0
  310. package/dist/player/util/Global.js +67 -0
  311. package/dist/player/util/RenderUtil.d.ts +472 -0
  312. package/dist/player/util/RenderUtil.js +686 -0
  313. package/dist/player/util/Shortcut.d.ts +28 -0
  314. package/dist/player/util/Shortcut.js +28 -0
  315. package/dist/player/util/Util.d.ts +337 -0
  316. package/dist/player/util/Util.js +841 -0
  317. package/dist/renderer/RenderDisplayObject.d.ts +129 -0
  318. package/dist/renderer/RenderDisplayObject.js +567 -0
  319. package/dist/renderer/RenderDisplayObjectContainer.d.ts +70 -0
  320. package/dist/renderer/RenderDisplayObjectContainer.js +670 -0
  321. package/dist/renderer/RenderGlobal.d.ts +76 -0
  322. package/dist/renderer/RenderGlobal.js +88 -0
  323. package/dist/renderer/RenderGraphics.d.ts +90 -0
  324. package/dist/renderer/RenderGraphics.js +597 -0
  325. package/dist/renderer/RenderPlayer.d.ts +164 -0
  326. package/dist/renderer/RenderPlayer.js +421 -0
  327. package/dist/renderer/RenderShape.d.ts +32 -0
  328. package/dist/renderer/RenderShape.js +104 -0
  329. package/dist/renderer/RenderTextField.d.ts +119 -0
  330. package/dist/renderer/RenderTextField.js +709 -0
  331. package/dist/renderer/RenderVideo.d.ts +59 -0
  332. package/dist/renderer/RenderVideo.js +272 -0
  333. package/dist/webgl/BezierConverter.d.ts +59 -0
  334. package/dist/webgl/BezierConverter.js +107 -0
  335. package/dist/webgl/CanvasGradientToWebGL.d.ts +94 -0
  336. package/dist/webgl/CanvasGradientToWebGL.js +187 -0
  337. package/dist/webgl/CanvasPatternToWebGL.d.ts +39 -0
  338. package/dist/webgl/CanvasPatternToWebGL.js +70 -0
  339. package/dist/webgl/CanvasToWebGLContext.d.ts +596 -0
  340. package/dist/webgl/CanvasToWebGLContext.js +1453 -0
  341. package/dist/webgl/CanvasToWebGLContextBlend.d.ts +97 -0
  342. package/dist/webgl/CanvasToWebGLContextBlend.js +303 -0
  343. package/dist/webgl/CanvasToWebGLContextGrid.d.ts +74 -0
  344. package/dist/webgl/CanvasToWebGLContextGrid.js +314 -0
  345. package/dist/webgl/CanvasToWebGLContextMask.d.ts +113 -0
  346. package/dist/webgl/CanvasToWebGLContextMask.js +443 -0
  347. package/dist/webgl/CanvasToWebGLContextPath.d.ts +111 -0
  348. package/dist/webgl/CanvasToWebGLContextPath.js +213 -0
  349. package/dist/webgl/CanvasToWebGLContextStyle.d.ts +77 -0
  350. package/dist/webgl/CanvasToWebGLContextStyle.js +145 -0
  351. package/dist/webgl/ColorBufferPool.d.ts +58 -0
  352. package/dist/webgl/ColorBufferPool.js +137 -0
  353. package/dist/webgl/FrameBufferManager.d.ts +135 -0
  354. package/dist/webgl/FrameBufferManager.js +367 -0
  355. package/dist/webgl/StencilBufferPool.d.ts +56 -0
  356. package/dist/webgl/StencilBufferPool.js +147 -0
  357. package/dist/webgl/TextureManager.d.ts +130 -0
  358. package/dist/webgl/TextureManager.js +303 -0
  359. package/dist/webgl/VertexArrayObjectManager.d.ts +95 -0
  360. package/dist/webgl/VertexArrayObjectManager.js +289 -0
  361. package/dist/webgl/WebGLFillMeshGenerator.d.ts +31 -0
  362. package/dist/webgl/WebGLFillMeshGenerator.js +104 -0
  363. package/dist/webgl/WebGLStrokeMeshGenerator.d.ts +182 -0
  364. package/dist/webgl/WebGLStrokeMeshGenerator.js +510 -0
  365. package/dist/webgl/shader/CanvasToWebGLShader.d.ts +85 -0
  366. package/dist/webgl/shader/CanvasToWebGLShader.js +196 -0
  367. package/dist/webgl/shader/CanvasToWebGLShaderList.d.ts +70 -0
  368. package/dist/webgl/shader/CanvasToWebGLShaderList.js +115 -0
  369. package/dist/webgl/shader/GradientLUTGenerator.d.ts +36 -0
  370. package/dist/webgl/shader/GradientLUTGenerator.js +129 -0
  371. package/dist/webgl/shader/WebGLShaderUniform.d.ts +52 -0
  372. package/dist/webgl/shader/WebGLShaderUniform.js +168 -0
  373. package/dist/webgl/shader/fragment/FragmentShaderLibrary.d.ts +18 -0
  374. package/dist/webgl/shader/fragment/FragmentShaderLibrary.js +35 -0
  375. package/dist/webgl/shader/fragment/FragmentShaderSource.d.ts +29 -0
  376. package/dist/webgl/shader/fragment/FragmentShaderSource.js +99 -0
  377. package/dist/webgl/shader/fragment/FragmentShaderSourceBlend.d.ts +67 -0
  378. package/dist/webgl/shader/fragment/FragmentShaderSourceBlend.js +319 -0
  379. package/dist/webgl/shader/fragment/FragmentShaderSourceGradient.d.ts +44 -0
  380. package/dist/webgl/shader/fragment/FragmentShaderSourceGradient.js +114 -0
  381. package/dist/webgl/shader/fragment/FragmentShaderSourceGradientLUT.d.ts +14 -0
  382. package/dist/webgl/shader/fragment/FragmentShaderSourceGradientLUT.js +58 -0
  383. package/dist/webgl/shader/fragment/FragmentShaderSourceTexture.d.ts +12 -0
  384. package/dist/webgl/shader/fragment/FragmentShaderSourceTexture.js +36 -0
  385. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceBlurFilter.d.ts +12 -0
  386. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceBlurFilter.js +42 -0
  387. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.d.ts +11 -0
  388. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceColorMatrixFilter.js +35 -0
  389. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.d.ts +16 -0
  390. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceConvolutionFilter.js +80 -0
  391. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.d.ts +15 -0
  392. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceDisplacementMapFilter.js +106 -0
  393. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceFilter.d.ts +112 -0
  394. package/dist/webgl/shader/fragment/filter/FragmentShaderSourceFilter.js +275 -0
  395. package/dist/webgl/shader/variants/BlendShaderVariantCollection.d.ts +99 -0
  396. package/dist/webgl/shader/variants/BlendShaderVariantCollection.js +242 -0
  397. package/dist/webgl/shader/variants/FilterShaderVariantCollection.d.ts +150 -0
  398. package/dist/webgl/shader/variants/FilterShaderVariantCollection.js +398 -0
  399. package/dist/webgl/shader/variants/GradientLUTShaderVariantCollection.d.ts +49 -0
  400. package/dist/webgl/shader/variants/GradientLUTShaderVariantCollection.js +110 -0
  401. package/dist/webgl/shader/variants/GradientShapeShaderVariantCollection.d.ts +61 -0
  402. package/dist/webgl/shader/variants/GradientShapeShaderVariantCollection.js +199 -0
  403. package/dist/webgl/shader/variants/ShapeShaderVariantCollection.d.ts +117 -0
  404. package/dist/webgl/shader/variants/ShapeShaderVariantCollection.js +430 -0
  405. package/dist/webgl/shader/vertex/VertexShaderLibrary.d.ts +18 -0
  406. package/dist/webgl/shader/vertex/VertexShaderLibrary.js +75 -0
  407. package/dist/webgl/shader/vertex/VertexShaderSource.d.ts +23 -0
  408. package/dist/webgl/shader/vertex/VertexShaderSource.js +92 -0
  409. package/dist/webgl/shader/vertex/VertexShaderSourceFill.d.ts +45 -0
  410. package/dist/webgl/shader/vertex/VertexShaderSourceFill.js +112 -0
  411. package/dist/webgl/shader/vertex/VertexShaderSourceStroke.d.ts +27 -0
  412. package/dist/webgl/shader/vertex/VertexShaderSourceStroke.js +149 -0
  413. package/package.json +31 -25
  414. package/SECURITY.md +0 -3
  415. package/next2d.js +0 -7
@@ -0,0 +1,510 @@
1
+ import { $Float32Array, $Int16Array, $Math } from "../player/util/RenderUtil";
2
+ /**
3
+ * @class
4
+ */
5
+ export class WebGLStrokeMeshGenerator {
6
+ static _$vertexBufferData;
7
+ static _$vertexBufferPos;
8
+ static _$indexBufferData;
9
+ static _$indexBufferPos;
10
+ static _$lineCap;
11
+ static _$lineJoin;
12
+ /**
13
+ * @param {array} vertices
14
+ * @param {string} line_cap
15
+ * @param {string} line_join
16
+ * @return {object}
17
+ * @method
18
+ * @static
19
+ */
20
+ static generate(vertices, line_cap, line_join) {
21
+ this._$vertexBufferData = this._$vertexBufferData || new $Float32Array(1024);
22
+ this._$vertexBufferPos = 0;
23
+ this._$indexBufferData = this._$indexBufferData || new Int16Array(256);
24
+ this._$indexBufferPos = 0;
25
+ this._$lineCap = line_cap;
26
+ this._$lineJoin = line_join;
27
+ for (let i = 0; i < vertices.length; i++) {
28
+ const vertex_begin_offset = this._$vertexBufferPos;
29
+ this._$generateLineSegment(vertices[i]);
30
+ const vertex_end_offset = this._$vertexBufferPos;
31
+ this._$generateLineJoin(vertex_begin_offset, vertex_end_offset);
32
+ this._$generateLineCap(vertex_begin_offset, vertex_end_offset);
33
+ }
34
+ return {
35
+ "vertexBufferData": this._$vertexBufferData.slice(0, this._$vertexBufferPos),
36
+ "indexBufferData": this._$indexBufferData.slice(0, this._$indexBufferPos)
37
+ };
38
+ }
39
+ /**
40
+ * @param {number} delta_length
41
+ * @return {void}
42
+ * @method
43
+ * @static
44
+ * @private
45
+ */
46
+ static _$expandVertexBufferIfNeeded(delta_length) {
47
+ if (this._$vertexBufferPos + delta_length > this._$vertexBufferData.length) {
48
+ const biggerBuffer = new $Float32Array(this._$vertexBufferData.length * 2);
49
+ biggerBuffer.set(this._$vertexBufferData);
50
+ this._$vertexBufferData = biggerBuffer;
51
+ }
52
+ }
53
+ /**
54
+ * @param {number} delta_length
55
+ * @return {void}
56
+ * @method
57
+ * @static
58
+ * @private
59
+ */
60
+ static _$expandIndexBufferIfNeeded(delta_length) {
61
+ if (this._$indexBufferPos + delta_length > this._$indexBufferData.length) {
62
+ const biggerBuffer = new $Int16Array(this._$indexBufferData.length * 2);
63
+ biggerBuffer.set(this._$indexBufferData);
64
+ this._$indexBufferData = biggerBuffer;
65
+ }
66
+ }
67
+ /**
68
+ * @param {Float32Array} vertex
69
+ * @return {void}
70
+ * @method
71
+ * @static
72
+ * @private
73
+ */
74
+ static _$generateLineSegment(vertex) {
75
+ const length = vertex.length - 5;
76
+ for (let v = 0; v < length; v += 3) {
77
+ if (vertex[v + 2]) {
78
+ continue;
79
+ }
80
+ if (vertex[v + 5]) {
81
+ this._$addQuadSegmentMesh(vertex[v], vertex[v + 1], vertex[v + 3], vertex[v + 4], vertex[v + 6], vertex[v + 7]);
82
+ }
83
+ else {
84
+ this._$addLineSegmentMesh(vertex[v], vertex[v + 1], vertex[v + 3], vertex[v + 4]);
85
+ }
86
+ }
87
+ }
88
+ /**
89
+ * @param {number} x1 線分の始点のx座標
90
+ * @param {number} y1 線分の始点のy座標
91
+ * @param {number} cx 線分の制御点のx座標
92
+ * @param {number} cy 線分の制御点のy座標
93
+ * @param {number} x2 線分の終点のx座標
94
+ * @param {number} y2 線分の終点のy座標
95
+ * @return {void}
96
+ * @method
97
+ * @static
98
+ * @private
99
+ */
100
+ static _$addQuadSegmentMesh(x1, y1, cx, cy, x2, y2) {
101
+ const div = 11;
102
+ let stx = x1;
103
+ let sty = y1;
104
+ for (let i = 1; i < div; i++) {
105
+ const t = i / div;
106
+ const rt = 1 - t;
107
+ const edx = (x1 * rt + cx * t) * rt + (cx * rt + x2 * t) * t;
108
+ const edy = (y1 * rt + cy * t) * rt + (cy * rt + y2 * t) * t;
109
+ this._$addLineSegmentMesh(stx, sty, edx, edy, 2);
110
+ stx = edx;
111
+ sty = edy;
112
+ }
113
+ this._$addLineSegmentMesh(stx, sty, x2, y2);
114
+ }
115
+ /**
116
+ * @param {number} x1 線分の始点のx座標
117
+ * @param {number} y1 線分の始点のy座標
118
+ * @param {number} x2 線分の終点のx座標
119
+ * @param {number} y2 線分の終点のy座標
120
+ * @param {number} [type = 1]
121
+ * @return {void}
122
+ * @method
123
+ * @static
124
+ * @private
125
+ */
126
+ static _$addLineSegmentMesh(x1, y1, x2, y2, type = 1) {
127
+ const index0 = this._$vertexBufferPos / 7;
128
+ const index1 = index0 + 1;
129
+ const index2 = index0 + 2;
130
+ const index3 = index0 + 3;
131
+ this._$expandIndexBufferIfNeeded(6);
132
+ const ibd = this._$indexBufferData;
133
+ let ibp = this._$indexBufferPos;
134
+ ibd[ibp++] = index0;
135
+ ibd[ibp++] = index1;
136
+ ibd[ibp++] = index3;
137
+ ibd[ibp++] = index3;
138
+ ibd[ibp++] = index2;
139
+ ibd[ibp++] = index0;
140
+ this._$indexBufferPos = ibp;
141
+ this._$expandVertexBufferIfNeeded(28);
142
+ const vbd = this._$vertexBufferData;
143
+ let vbp = this._$vertexBufferPos;
144
+ vbd[vbp++] = x1;
145
+ vbd[vbp++] = y1;
146
+ vbd[vbp++] = x2;
147
+ vbd[vbp++] = y2;
148
+ vbd[vbp++] = 1;
149
+ vbd[vbp++] = 1;
150
+ vbd[vbp++] = 1;
151
+ vbd[vbp++] = x1;
152
+ vbd[vbp++] = y1;
153
+ vbd[vbp++] = x2;
154
+ vbd[vbp++] = y2;
155
+ vbd[vbp++] = -1;
156
+ vbd[vbp++] = -1;
157
+ vbd[vbp++] = 1;
158
+ vbd[vbp++] = x2;
159
+ vbd[vbp++] = y2;
160
+ vbd[vbp++] = x1;
161
+ vbd[vbp++] = y1;
162
+ vbd[vbp++] = -1;
163
+ vbd[vbp++] = -1;
164
+ vbd[vbp++] = type;
165
+ vbd[vbp++] = x2;
166
+ vbd[vbp++] = y2;
167
+ vbd[vbp++] = x1;
168
+ vbd[vbp++] = y1;
169
+ vbd[vbp++] = 1;
170
+ vbd[vbp++] = 1;
171
+ vbd[vbp++] = type;
172
+ this._$vertexBufferPos = vbp;
173
+ }
174
+ /**
175
+ * @param {number} vertex_begin_offset 結合対象の頂点の範囲(開始)
176
+ * @param {number} vertex_end_offset 結合対象の頂点の範囲(終了)
177
+ * @return {void}
178
+ * @method
179
+ * @static
180
+ * @private
181
+ */
182
+ static _$generateLineJoin(vertex_begin_offset, vertex_end_offset) {
183
+ const vbd = this._$vertexBufferData;
184
+ const length = vertex_end_offset - 55;
185
+ for (let v = vertex_begin_offset; v < length; v += 28) {
186
+ const indexOffset = v / 7;
187
+ this._$addLineJoinMesh(vbd[v], vbd[v + 1], vbd[v + 21], vbd[v + 22], vbd[v + 27], vbd[v + 49], vbd[v + 50], indexOffset + 2, indexOffset + 3, indexOffset + 4, indexOffset + 5);
188
+ }
189
+ }
190
+ /**
191
+ * @param {number} x1
192
+ * @param {number} y1
193
+ * @param {number} x2
194
+ * @param {number} y2
195
+ * @return {number}
196
+ * @method
197
+ * @static
198
+ */
199
+ static _$cross = (x1, y1, x2, y2) => {
200
+ return x1 * y2 - x2 * y1;
201
+ };
202
+ /**
203
+ * @param {number} x1 線分Aの始点のx座標
204
+ * @param {number} y1 線分Aの始点のy座標
205
+ * @param {number} x2 結合点のx座標
206
+ * @param {number} y2 結合点のy座標
207
+ * @param {number} type 線分タイプ
208
+ * @param {number} x3 線分Bの終点のx座標
209
+ * @param {number} y3 線分Bの終点のy座標
210
+ * @param {number} index_offset2 線分Aの凸側の頂点インデックス
211
+ * @param {number} index_offset3 線分Aの凹側の頂点インデックス
212
+ * @param {number} index_offset4 線分Bの凸側の頂点インデックス
213
+ * @param {number} index_offset5 線分Bの凹側の頂点インデックス
214
+ * @return {void}
215
+ * @method
216
+ * @static
217
+ * @private
218
+ */
219
+ static _$addLineJoinMesh(x1, y1, x2, y2, type, x3, y3, index_offset2, index_offset3, index_offset4 = 0, index_offset5 = 0) {
220
+ // AとBがほぼ平行なら、結合せずに終了
221
+ const ax = x2 - x1;
222
+ const ay = y2 - y1;
223
+ const bx = x3 - x2;
224
+ const by = y3 - y2;
225
+ const det = this._$cross(ax, ay, bx, by);
226
+ if ($Math.abs(det) < 0.0001) {
227
+ return;
228
+ }
229
+ // 分割したベジェ曲線はベベルで結合する
230
+ if (type === 2) {
231
+ this._$addBevelJoinMesh(x2, y2, index_offset4, index_offset2, index_offset3, index_offset5);
232
+ return;
233
+ }
234
+ // 結合タイプに合わせたメッシュを追加する
235
+ switch (this._$lineJoin) {
236
+ case "round":
237
+ this._$addRoundJoinMesh(x2, y2);
238
+ break;
239
+ case "miter":
240
+ this._$addMiterJoinMesh(x2, y2, x1, y1, x3, y3, index_offset4, index_offset2, index_offset3, index_offset5);
241
+ break;
242
+ default:
243
+ this._$addBevelJoinMesh(x2, y2, index_offset4, index_offset2, index_offset3, index_offset5);
244
+ break;
245
+ }
246
+ }
247
+ /**
248
+ * @param {number} x 結合点のx座標
249
+ * @param {number} y 結合点のy座標
250
+ * @return {void}
251
+ * @method
252
+ * @static
253
+ * @private
254
+ */
255
+ static _$addRoundJoinMesh(x, y) {
256
+ const index0 = this._$vertexBufferPos / 7;
257
+ this._$expandIndexBufferIfNeeded(57);
258
+ const ibd = this._$indexBufferData;
259
+ let ibp = this._$indexBufferPos;
260
+ for (let i = 1; i < 18; i++) {
261
+ const indexN = index0 + i;
262
+ ibd[ibp++] = index0;
263
+ ibd[ibp++] = indexN;
264
+ ibd[ibp++] = indexN + 1;
265
+ }
266
+ ibd[ibp++] = index0;
267
+ ibd[ibp++] = index0 + 18;
268
+ ibd[ibp++] = index0 + 1;
269
+ this._$indexBufferPos = ibp;
270
+ this._$expandVertexBufferIfNeeded(133);
271
+ const vbd = this._$vertexBufferData;
272
+ let vbp = this._$vertexBufferPos;
273
+ vbd[vbp++] = x;
274
+ vbd[vbp++] = y;
275
+ vbd[vbp++] = 0;
276
+ vbd[vbp++] = 0;
277
+ vbd[vbp++] = 0;
278
+ vbd[vbp++] = 0;
279
+ vbd[vbp++] = 0;
280
+ for (let i = 0; i < 18; i++) {
281
+ vbd[vbp++] = x;
282
+ vbd[vbp++] = y;
283
+ vbd[vbp++] = 0;
284
+ vbd[vbp++] = 0;
285
+ vbd[vbp++] = 0;
286
+ vbd[vbp++] = 0;
287
+ vbd[vbp++] = 30 + i;
288
+ }
289
+ this._$vertexBufferPos = vbp;
290
+ }
291
+ /**
292
+ * @param {number} x 結合点のx座標
293
+ * @param {number} y 結合点のy座標
294
+ * @param {number} ax 線分Aの始点のx座標
295
+ * @param {number} ay 線分Aの始点のy座標
296
+ * @param {number} bx 線分Bの終点のx座標
297
+ * @param {number} by 線分Bの終点のy座標
298
+ * @param {number} index1
299
+ * @param {number} index4
300
+ * @param {number} index5
301
+ * @param {number} index8
302
+ * @return {void}
303
+ * @method
304
+ * @static
305
+ * @private
306
+ */
307
+ static _$addMiterJoinMesh(x, y, ax, ay, bx, by, index1, index4, index5, index8) {
308
+ const index0 = this._$vertexBufferPos / 7;
309
+ const index2 = index0 + 1;
310
+ const index3 = index0 + 2;
311
+ const index6 = index0 + 3;
312
+ const index7 = index0 + 4;
313
+ this._$expandIndexBufferIfNeeded(18);
314
+ const ibd = this._$indexBufferData;
315
+ let ibp = this._$indexBufferPos;
316
+ ibd[ibp++] = index0;
317
+ ibd[ibp++] = index1;
318
+ ibd[ibp++] = index2;
319
+ ibd[ibp++] = index0;
320
+ ibd[ibp++] = index2;
321
+ ibd[ibp++] = index3;
322
+ ibd[ibp++] = index0;
323
+ ibd[ibp++] = index3;
324
+ ibd[ibp++] = index4;
325
+ ibd[ibp++] = index0;
326
+ ibd[ibp++] = index5;
327
+ ibd[ibp++] = index6;
328
+ ibd[ibp++] = index0;
329
+ ibd[ibp++] = index6;
330
+ ibd[ibp++] = index7;
331
+ ibd[ibp++] = index0;
332
+ ibd[ibp++] = index7;
333
+ ibd[ibp++] = index8;
334
+ this._$indexBufferPos = ibp;
335
+ this._$expandVertexBufferIfNeeded(35);
336
+ const vbd = this._$vertexBufferData;
337
+ let vbp = this._$vertexBufferPos;
338
+ vbd[vbp++] = x;
339
+ vbd[vbp++] = y;
340
+ vbd[vbp++] = ax;
341
+ vbd[vbp++] = ay;
342
+ vbd[vbp++] = bx;
343
+ vbd[vbp++] = by;
344
+ vbd[vbp++] = 0;
345
+ vbd[vbp++] = x;
346
+ vbd[vbp++] = y;
347
+ vbd[vbp++] = ax;
348
+ vbd[vbp++] = ay;
349
+ vbd[vbp++] = bx;
350
+ vbd[vbp++] = by;
351
+ vbd[vbp++] = 21;
352
+ vbd[vbp++] = x;
353
+ vbd[vbp++] = y;
354
+ vbd[vbp++] = ax;
355
+ vbd[vbp++] = ay;
356
+ vbd[vbp++] = bx;
357
+ vbd[vbp++] = by;
358
+ vbd[vbp++] = 22;
359
+ vbd[vbp++] = x;
360
+ vbd[vbp++] = y;
361
+ vbd[vbp++] = ax;
362
+ vbd[vbp++] = ay;
363
+ vbd[vbp++] = bx;
364
+ vbd[vbp++] = by;
365
+ vbd[vbp++] = 23;
366
+ vbd[vbp++] = x;
367
+ vbd[vbp++] = y;
368
+ vbd[vbp++] = ax;
369
+ vbd[vbp++] = ay;
370
+ vbd[vbp++] = bx;
371
+ vbd[vbp++] = by;
372
+ vbd[vbp++] = 24;
373
+ this._$vertexBufferPos = vbp;
374
+ }
375
+ /**
376
+ * @param {number} x 結合点のx座標
377
+ * @param {number} y 結合点のy座標
378
+ * @param {number} index1
379
+ * @param {number} index2
380
+ * @param {number} index3
381
+ * @param {number} index4
382
+ * @return {void}
383
+ * @method
384
+ * @static
385
+ * @private
386
+ */
387
+ static _$addBevelJoinMesh(x, y, index1, index2, index3, index4) {
388
+ const index0 = this._$vertexBufferPos / 7;
389
+ this._$expandIndexBufferIfNeeded(6);
390
+ const ibd = this._$indexBufferData;
391
+ let ibp = this._$indexBufferPos;
392
+ ibd[ibp++] = index0;
393
+ ibd[ibp++] = index1;
394
+ ibd[ibp++] = index2;
395
+ ibd[ibp++] = index0;
396
+ ibd[ibp++] = index3;
397
+ ibd[ibp++] = index4;
398
+ this._$indexBufferPos = ibp;
399
+ this._$expandVertexBufferIfNeeded(7);
400
+ const vbd = this._$vertexBufferData;
401
+ let vbp = this._$vertexBufferPos;
402
+ vbd[vbp++] = x;
403
+ vbd[vbp++] = y;
404
+ vbd[vbp++] = 0;
405
+ vbd[vbp++] = 0;
406
+ vbd[vbp++] = 0;
407
+ vbd[vbp++] = 0;
408
+ vbd[vbp++] = 0;
409
+ this._$vertexBufferPos = vbp;
410
+ }
411
+ /**
412
+ * @param {number} vertex_begin_offset 結合対象の頂点の範囲(開始)
413
+ * @param {number} vertex_end_offset 結合対象の頂点の範囲(終了)
414
+ * @return {void}
415
+ * @method
416
+ * @static
417
+ * @private
418
+ */
419
+ static _$generateLineCap(vertex_begin_offset, vertex_end_offset) {
420
+ const vbd = this._$vertexBufferData;
421
+ const stx1 = vbd[vertex_begin_offset];
422
+ const sty1 = vbd[vertex_begin_offset + 1];
423
+ const stx2 = vbd[vertex_begin_offset + 2];
424
+ const sty2 = vbd[vertex_begin_offset + 3];
425
+ const edx1 = vbd[vertex_end_offset - 7];
426
+ const edy1 = vbd[vertex_end_offset - 6];
427
+ const edx2 = vbd[vertex_end_offset - 5];
428
+ const edy2 = vbd[vertex_end_offset - 4];
429
+ const indexBeginOffset = vertex_begin_offset / 7;
430
+ const indexEndOffset = vertex_end_offset / 7;
431
+ // 始点st1と終点ed1が同じなら、線端は追加せずに結合する
432
+ if (stx1 === edx1 && sty1 === edy1) {
433
+ this._$addLineJoinMesh(edx2, edy2, stx1, sty1, stx2, sty2, indexEndOffset - 2, indexEndOffset - 1, indexBeginOffset, indexBeginOffset + 1);
434
+ return;
435
+ }
436
+ // 始点の線端を追加する
437
+ this._$addLineCapMesh(stx1, sty1, stx2, sty2, indexBeginOffset, indexBeginOffset + 1);
438
+ // 終点の線端を追加する
439
+ this._$addLineCapMesh(edx1, edy1, edx2, edy2, indexEndOffset - 1, indexEndOffset - 2);
440
+ }
441
+ /**
442
+ * @param {number} x1 線端のx座標
443
+ * @param {number} y1 線端のy座標
444
+ * @param {number} x2 もう一方の端点のx座標
445
+ * @param {number} y2 もう一方の端点のy座標
446
+ * @param {number} index1 端点から反時計回り側の頂点インデックス
447
+ * @param {number} index2 端点から時計回り側の頂点インデックス
448
+ * @return {void}
449
+ * @method
450
+ * @static
451
+ * @private
452
+ */
453
+ static _$addLineCapMesh(x1, y1, x2, y2, index1, index2) {
454
+ // 線端タイプに合わせたメッシュを追加する
455
+ switch (this._$lineCap) {
456
+ case "round":
457
+ this._$addRoundJoinMesh(x1, y1);
458
+ break;
459
+ case "square":
460
+ this._$addSquareCapMesh(x1, y1, x2, y2, index1, index2);
461
+ break;
462
+ default:
463
+ break;
464
+ }
465
+ }
466
+ /**
467
+ * @param {number} x1 線端のx座標
468
+ * @param {number} y1 線端のy座標
469
+ * @param {number} x2 もう一方の端点のx座標
470
+ * @param {number} y2 もう一方の端点のy座標
471
+ * @param {number} index1 端点から反時計回り側の頂点インデックス
472
+ * @param {number} index2 端点から時計回り側の頂点インデックス
473
+ * @return {void}
474
+ * @method
475
+ * @static
476
+ * @private
477
+ */
478
+ static _$addSquareCapMesh(x1, y1, x2, y2, index1, index2) {
479
+ const index3 = this._$vertexBufferPos / 7;
480
+ const index4 = index3 + 1;
481
+ this._$expandIndexBufferIfNeeded(6);
482
+ const ibd = this._$indexBufferData;
483
+ let ibp = this._$indexBufferPos;
484
+ ibd[ibp++] = index1;
485
+ ibd[ibp++] = index3;
486
+ ibd[ibp++] = index4;
487
+ ibd[ibp++] = index4;
488
+ ibd[ibp++] = index2;
489
+ ibd[ibp++] = index1;
490
+ this._$indexBufferPos = ibp;
491
+ this._$expandVertexBufferIfNeeded(14);
492
+ const vbd = this._$vertexBufferData;
493
+ let vbp = this._$vertexBufferPos;
494
+ vbd[vbp++] = x1;
495
+ vbd[vbp++] = y1;
496
+ vbd[vbp++] = x2;
497
+ vbd[vbp++] = y2;
498
+ vbd[vbp++] = -1;
499
+ vbd[vbp++] = -1;
500
+ vbd[vbp++] = 10;
501
+ vbd[vbp++] = x1;
502
+ vbd[vbp++] = y1;
503
+ vbd[vbp++] = x2;
504
+ vbd[vbp++] = y2;
505
+ vbd[vbp++] = 1;
506
+ vbd[vbp++] = 1;
507
+ vbd[vbp++] = 10;
508
+ this._$vertexBufferPos = vbp;
509
+ }
510
+ }
@@ -0,0 +1,85 @@
1
+ import { WebGLShaderUniform } from "./WebGLShaderUniform";
2
+ import type { CanvasToWebGLContext } from "../CanvasToWebGLContext";
3
+ /**
4
+ * @class
5
+ */
6
+ export declare class CanvasToWebGLShader {
7
+ private readonly _$gl;
8
+ private readonly _$context;
9
+ private readonly _$program;
10
+ private readonly _$uniform;
11
+ /**
12
+ * @param {WebGL2RenderingContext} gl
13
+ * @param {CanvasToWebGLContext} context
14
+ * @param {string} vertex_source
15
+ * @param {string} fragment_source
16
+ * @constructor
17
+ * @public
18
+ */
19
+ constructor(gl: WebGL2RenderingContext, context: CanvasToWebGLContext, vertex_source: string, fragment_source: string);
20
+ /**
21
+ * @return {WebGLShaderUniform}
22
+ * @readonly
23
+ * @public
24
+ */
25
+ get uniform(): WebGLShaderUniform;
26
+ /**
27
+ * @param {string} vertex_source
28
+ * @param {string} fragment_source
29
+ * @return {WebGLProgram}
30
+ * @method
31
+ * @private
32
+ */
33
+ _$createProgram(vertex_source: string, fragment_source: string): WebGLProgram;
34
+ /**
35
+ * @return {void}
36
+ * @private
37
+ */
38
+ _$attachProgram(): void;
39
+ /**
40
+ * @return {void}
41
+ * @method
42
+ * @public
43
+ */
44
+ _$drawImage(): void;
45
+ /**
46
+ * @param {number} begin
47
+ * @param {number} end
48
+ * @return {void}
49
+ * @method
50
+ * @public
51
+ */
52
+ _$drawGradient(begin: number, end: number): void;
53
+ /**
54
+ * @param {WebGLVertexArrayObject} vertex_array_object
55
+ * @return {void}
56
+ * @method
57
+ * @public
58
+ */
59
+ _$stroke(vertex_array_object: WebGLVertexArrayObject): void;
60
+ /**
61
+ * @param {WebGLVertexArrayObject} vertex_array_object
62
+ * @return {void}
63
+ * @method
64
+ * @public
65
+ */
66
+ _$fill(vertex_array_object: WebGLVertexArrayObject): void;
67
+ /**
68
+ * @param {WebGLVertexArrayObject} vertex_array
69
+ * @param {number} first
70
+ * @param {number} count
71
+ * @return {void}
72
+ * @method
73
+ * @public
74
+ */
75
+ _$containerClip(vertex_array: WebGLVertexArrayObject, first: number, count: number): void;
76
+ /**
77
+ * @param {WebGLVertexArrayObject} vertex_array
78
+ * @param {number} first
79
+ * @param {number} count
80
+ * @return {void}
81
+ * @method
82
+ * @public
83
+ */
84
+ _$drawPoints(vertex_array: WebGLVertexArrayObject, first: number, count: number): void;
85
+ }