@nativescript/canvas 2.0.0-alpha.9 → 2.0.0-beta.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 (542) hide show
  1. package/Canvas/common.d.ts +213 -25
  2. package/Canvas/common.js +705 -452
  3. package/Canvas/common.js.map +1 -1
  4. package/Canvas/index.android.d.ts +10 -1
  5. package/Canvas/index.android.js +155 -52
  6. package/Canvas/index.android.js.map +1 -1
  7. package/Canvas/index.d.ts +8 -0
  8. package/Canvas/index.ios.d.ts +7 -4
  9. package/Canvas/index.ios.js +159 -106
  10. package/Canvas/index.ios.js.map +1 -1
  11. package/Canvas2D/CanvasGradient/index.d.ts +1 -3
  12. package/Canvas2D/CanvasGradient/index.js +1 -10
  13. package/Canvas2D/CanvasGradient/index.js.map +1 -1
  14. package/Canvas2D/CanvasPattern/index.d.ts +1 -3
  15. package/Canvas2D/CanvasPattern/index.js +1 -10
  16. package/Canvas2D/CanvasPattern/index.js.map +1 -1
  17. package/Canvas2D/CanvasRenderingContext2D/index.d.ts +9 -5
  18. package/Canvas2D/CanvasRenderingContext2D/index.js +174 -245
  19. package/Canvas2D/CanvasRenderingContext2D/index.js.map +1 -1
  20. package/Canvas2D/DOMMatrix/index.js +3 -3
  21. package/Canvas2D/DOMMatrix/index.js.map +1 -1
  22. package/Canvas2D/ImageData/index.js +6 -6
  23. package/Canvas2D/ImageData/index.js.map +1 -1
  24. package/Canvas2D/Path2D/index.d.ts +0 -2
  25. package/Canvas2D/Path2D/index.js +32 -42
  26. package/Canvas2D/Path2D/index.js.map +1 -1
  27. package/Dom/Paint.js +2 -3
  28. package/Dom/Paint.js.map +1 -1
  29. package/Dom/shapes/Circle.js +1 -2
  30. package/Dom/shapes/Circle.js.map +1 -1
  31. package/Dom/shapes/Points.js +1 -2
  32. package/Dom/shapes/Points.js.map +1 -1
  33. package/ImageAsset/index.d.ts +2 -2
  34. package/ImageAsset/index.js +33 -37
  35. package/ImageAsset/index.js.map +1 -1
  36. package/ImageBitmap/index.d.ts +0 -2
  37. package/ImageBitmap/index.js +47 -33
  38. package/ImageBitmap/index.js.map +1 -1
  39. package/LICENSE +201 -0
  40. package/SVG/SVG.js +1 -1
  41. package/SVG/SVG.js.map +1 -1
  42. package/TextDecoder/index.d.ts +0 -2
  43. package/TextDecoder/index.js +3 -12
  44. package/TextDecoder/index.js.map +1 -1
  45. package/TextEncoder/index.d.ts +0 -2
  46. package/TextEncoder/index.js +4 -13
  47. package/TextEncoder/index.js.map +1 -1
  48. package/WebGL/WebGLExtensions/index.d.ts +4 -12
  49. package/WebGL/WebGLExtensions/index.js +27 -77
  50. package/WebGL/WebGLExtensions/index.js.map +1 -1
  51. package/WebGL/WebGLProgram.d.ts +0 -1
  52. package/WebGL/WebGLProgram.js +0 -3
  53. package/WebGL/WebGLProgram.js.map +1 -1
  54. package/WebGL/WebGLRenderingContext/common.d.ts +1 -3
  55. package/WebGL/WebGLRenderingContext/common.js +3 -13
  56. package/WebGL/WebGLRenderingContext/common.js.map +1 -1
  57. package/WebGL/WebGLRenderingContext/index.d.ts +19 -17
  58. package/WebGL/WebGLRenderingContext/index.js +354 -728
  59. package/WebGL/WebGLRenderingContext/index.js.map +1 -1
  60. package/WebGL2/WebGL2RenderingContext/common.d.ts +2 -2
  61. package/WebGL2/WebGL2RenderingContext/common.js +2 -2
  62. package/WebGL2/WebGL2RenderingContext/common.js.map +1 -1
  63. package/WebGL2/WebGL2RenderingContext/index.d.ts +1 -1
  64. package/WebGL2/WebGL2RenderingContext/index.js +116 -285
  65. package/WebGL2/WebGL2RenderingContext/index.js.map +1 -1
  66. package/angular/esm2020/index.mjs +4 -4
  67. package/angular/fesm2015/nativescript-canvas-angular.mjs +4 -4
  68. package/angular/fesm2020/nativescript-canvas-angular.mjs +4 -4
  69. package/angular/package.json +2 -2
  70. package/index.js.map +1 -1
  71. package/package.json +3 -2
  72. package/platforms/android/canvas-release.aar +0 -0
  73. package/platforms/android/include.gradle +15 -0
  74. package/platforms/ios/CanvasNative.xcframework/Info.plist +5 -5
  75. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/CanvasNative +0 -0
  76. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative-Swift.h +132 -68
  77. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/CanvasNative.h +10 -0
  78. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_ios.h +144 -0
  79. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Headers/canvas_native.h +2808 -68
  80. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Info.plist +0 -0
  81. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo +0 -0
  82. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.abi.json +5847 -2633
  83. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.private.swiftinterface +43 -25
  84. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftdoc +0 -0
  85. package/platforms/ios/CanvasNative.xcframework/ios-arm64/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios.swiftinterface +43 -25
  86. package/platforms/ios/CanvasNative.xcframework/ios-arm64/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  87. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/CanvasNative +0 -0
  88. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative-Swift.h +264 -136
  89. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/CanvasNative.h +10 -0
  90. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_ios.h +144 -0
  91. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Headers/canvas_native.h +2808 -68
  92. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Info.plist +0 -0
  93. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/arm64-apple-ios-simulator.swiftsourceinfo +0 -0
  94. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo +0 -0
  95. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.abi.json +5847 -2633
  96. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.private.swiftinterface +43 -25
  97. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftdoc +0 -0
  98. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/arm64-apple-ios-simulator.swiftinterface +43 -25
  99. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.abi.json +5847 -2633
  100. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.private.swiftinterface +43 -25
  101. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftdoc +0 -0
  102. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/Modules/CanvasNative.swiftmodule/x86_64-apple-ios-simulator.swiftinterface +43 -25
  103. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/CanvasNative.framework/_CodeSignature/CodeResources +42 -31
  104. package/platforms/ios/CanvasNative.xcframework/ios-arm64_x86_64-simulator/dSYMs/CanvasNative.framework.dSYM/Contents/Resources/DWARF/CanvasNative +0 -0
  105. package/platforms/ios/Podfile +5 -2
  106. package/platforms/ios/build.xcconfig +3 -3
  107. package/platforms/ios/src/CanvasModule.h +0 -2
  108. package/platforms/ios/src/CanvasModule.mm +4 -4
  109. package/platforms/ios/src/NSOperationQueueWrapper.h +11 -0
  110. package/platforms/ios/src/NSOperationQueueWrapper.mm +74 -0
  111. package/platforms/ios/src/cpp/Caches.cpp +35 -0
  112. package/platforms/ios/src/cpp/Caches.h +190 -0
  113. package/platforms/ios/src/cpp/CanvasJSIModule.cpp +1593 -0
  114. package/platforms/ios/src/cpp/CanvasJSIModule.h +16 -34
  115. package/platforms/ios/src/cpp/Common.h +30 -0
  116. package/platforms/ios/src/cpp/ConcurrentMap.h +54 -0
  117. package/platforms/ios/src/cpp/Helpers.h +336 -38
  118. package/platforms/ios/src/cpp/ImageAssetImpl.cpp +802 -0
  119. package/platforms/ios/src/cpp/ImageAssetImpl.h +46 -12
  120. package/platforms/ios/src/cpp/ImageBitmapImpl.cpp +189 -0
  121. package/platforms/ios/src/cpp/ImageBitmapImpl.h +42 -16
  122. package/platforms/ios/src/cpp/JSICallback.h +83 -5
  123. package/platforms/ios/src/cpp/JSIReadFileCallback.h +86 -6
  124. package/platforms/ios/src/cpp/JSIRuntime.cpp +21 -0
  125. package/platforms/ios/src/cpp/JSIRuntime.h +7 -0
  126. package/platforms/ios/src/cpp/ObjectWrapperImpl.h +31 -0
  127. package/platforms/ios/src/cpp/OneByteStringResource.cpp +55 -0
  128. package/platforms/ios/src/cpp/OneByteStringResource.h +36 -0
  129. package/platforms/ios/src/cpp/PerIsolateData.cpp +49 -0
  130. package/platforms/ios/src/cpp/PerIsolateData.h +54 -0
  131. package/platforms/ios/src/cpp/RafImpl.cpp +8 -0
  132. package/platforms/ios/src/cpp/RafImpl.h +11 -8
  133. package/platforms/ios/src/cpp/TextDecoderImpl.cpp +193 -0
  134. package/platforms/ios/src/cpp/TextDecoderImpl.h +23 -13
  135. package/platforms/ios/src/cpp/TextEncoderImpl.cpp +139 -0
  136. package/platforms/ios/src/cpp/TextEncoderImpl.h +21 -12
  137. package/platforms/ios/src/cpp/URLImpl.cpp +464 -0
  138. package/platforms/ios/src/cpp/URLImpl.h +121 -0
  139. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.cpp +71 -0
  140. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.h +29 -13
  141. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.cpp +89 -0
  142. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.h +49 -12
  143. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.cpp +2809 -0
  144. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.h +1331 -21
  145. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.cpp +207 -0
  146. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.h +27 -13
  147. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.cpp +807 -0
  148. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.h +173 -13
  149. package/platforms/ios/src/cpp/canvas2d/Path2D.cpp +499 -0
  150. package/platforms/ios/src/cpp/canvas2d/Path2D.h +422 -12
  151. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.cpp +253 -0
  152. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.h +51 -12
  153. package/platforms/ios/src/cpp/gl.h +57 -7
  154. package/platforms/ios/src/cpp/gl3stub.c +425 -0
  155. package/platforms/ios/src/cpp/gl3stub.h +665 -0
  156. package/platforms/ios/src/cpp/gles3jni.h +37 -0
  157. package/platforms/ios/src/cpp/include/robin_hood.h +2544 -0
  158. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.cpp +91 -0
  159. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.h +33 -13
  160. package/platforms/ios/src/cpp/webgl/WebGLBuffer.h +42 -7
  161. package/platforms/ios/src/cpp/webgl/WebGLFramebuffer.h +47 -11
  162. package/platforms/ios/src/cpp/webgl/WebGLProgram.h +41 -6
  163. package/platforms/ios/src/cpp/webgl/WebGLRenderbuffer.h +41 -7
  164. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.cpp +6845 -0
  165. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.h +3217 -388
  166. package/platforms/ios/src/cpp/webgl/{WebGLRenderingContextBase.mm → WebGLRenderingContextBase.cpp} +18 -17
  167. package/platforms/ios/src/cpp/webgl/WebGLRenderingContextBase.h +16 -36
  168. package/platforms/ios/src/cpp/webgl/WebGLShader.h +41 -7
  169. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.cpp +50 -0
  170. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.h +67 -12
  171. package/platforms/ios/src/cpp/webgl/WebGLTexture.h +41 -7
  172. package/platforms/ios/src/cpp/webgl/WebGLUniformLocation.h +45 -9
  173. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.cpp +136 -0
  174. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.h +88 -12
  175. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.cpp +35 -0
  176. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.h +26 -6
  177. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.cpp +41 -0
  178. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.h +26 -6
  179. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.cpp +306 -0
  180. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.h +47 -13
  181. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.h +49 -6
  182. package/platforms/ios/src/cpp/webgl/extensions/EXT_shader_texture_lodImpl.h +37 -15
  183. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.h +47 -6
  184. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.h +49 -6
  185. package/platforms/ios/src/cpp/webgl/extensions/OES_fbo_render_mipmap.h +41 -16
  186. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.h +44 -6
  187. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_floatImpl.h +39 -16
  188. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_float_linearImpl.h +37 -16
  189. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.h +42 -6
  190. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_float_linearImpl.h +40 -16
  191. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.cpp +110 -0
  192. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.h +149 -14
  193. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.h +51 -8
  194. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.h +49 -6
  195. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.h +49 -8
  196. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.h +76 -6
  197. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.h +57 -6
  198. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.h +53 -6
  199. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.h +59 -6
  200. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.h +46 -6
  201. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.cpp +38 -0
  202. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.h +157 -14
  203. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.cpp +32 -0
  204. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.h +61 -13
  205. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.cpp +4564 -0
  206. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.h +1790 -342
  207. package/platforms/ios/src/cpp/webgl2/WebGLQuery.h +41 -4
  208. package/platforms/ios/src/cpp/webgl2/WebGLSampler.h +42 -3
  209. package/platforms/ios/src/cpp/webgl2/WebGLSyncImpl.h +45 -11
  210. package/platforms/ios/src/cpp/webgl2/WebGLTransformFeedback.h +43 -4
  211. package/platforms/ios/src/cpp/webgl2/WebGLVertexArrayObject.h +44 -4
  212. package/platforms/ios/src/module.modulemap +1 -0
  213. package/{pods → src-native/ios}/NativeScript.podspec +12 -25
  214. package/typings/objc!CanvasNative.d.ts +2038 -0
  215. package/typings/objc!CanvasNative.js +1 -0
  216. package/typings/objc!CanvasNative.js.map +1 -0
  217. package/utils.d.ts +3 -1
  218. package/utils.js +7 -20
  219. package/utils.js.map +1 -1
  220. package/angular/nativescript-canvas-angular.d.ts +0 -5
  221. package/platforms/ios/src/cpp/CanvasJSIModule.mm +0 -1105
  222. package/platforms/ios/src/cpp/ImageAssetImpl.mm +0 -417
  223. package/platforms/ios/src/cpp/ImageBitmapImpl.mm +0 -126
  224. package/platforms/ios/src/cpp/RafImpl.mm +0 -10
  225. package/platforms/ios/src/cpp/TextDecoderImpl.mm +0 -97
  226. package/platforms/ios/src/cpp/TextEncoderImpl.mm +0 -60
  227. package/platforms/ios/src/cpp/VecMutableBuffer.h +0 -46
  228. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.cc +0 -6156
  229. package/platforms/ios/src/cpp/canvas-cxx/src/lib.rs.h +0 -2867
  230. package/platforms/ios/src/cpp/canvas2d/CanvasGradient.mm +0 -42
  231. package/platforms/ios/src/cpp/canvas2d/CanvasPattern.mm +0 -49
  232. package/platforms/ios/src/cpp/canvas2d/CanvasRenderingContext2DImpl.mm +0 -1972
  233. package/platforms/ios/src/cpp/canvas2d/ImageDataImpl.mm +0 -68
  234. package/platforms/ios/src/cpp/canvas2d/MatrixImpl.mm +0 -149
  235. package/platforms/ios/src/cpp/canvas2d/Path2D.mm +0 -335
  236. package/platforms/ios/src/cpp/canvas2d/TextMetricsImpl.mm +0 -68
  237. package/platforms/ios/src/cpp/rust/cxx.cc +0 -793
  238. package/platforms/ios/src/cpp/rust/cxx.h +0 -1111
  239. package/platforms/ios/src/cpp/webgl/WebGLActiveInfoImpl.mm +0 -39
  240. package/platforms/ios/src/cpp/webgl/WebGLRenderingContext.mm +0 -5958
  241. package/platforms/ios/src/cpp/webgl/WebGLShaderPrecisionFormatImpl.mm +0 -40
  242. package/platforms/ios/src/cpp/webgl/extensions/ANGLE_instanced_arraysImpl.mm +0 -108
  243. package/platforms/ios/src/cpp/webgl/extensions/EXT_blend_minmaxImpl.mm +0 -28
  244. package/platforms/ios/src/cpp/webgl/extensions/EXT_color_buffer_half_floatImpl.mm +0 -42
  245. package/platforms/ios/src/cpp/webgl/extensions/EXT_disjoint_timer_queryImpl.mm +0 -295
  246. package/platforms/ios/src/cpp/webgl/extensions/EXT_sRGBImpl.mm +0 -40
  247. package/platforms/ios/src/cpp/webgl/extensions/EXT_texture_filter_anisotropicImpl.mm +0 -37
  248. package/platforms/ios/src/cpp/webgl/extensions/OES_element_index_uintImpl.mm +0 -28
  249. package/platforms/ios/src/cpp/webgl/extensions/OES_standard_derivativesImpl.mm +0 -31
  250. package/platforms/ios/src/cpp/webgl/extensions/OES_texture_half_floatImpl.mm +0 -28
  251. package/platforms/ios/src/cpp/webgl/extensions/OES_vertex_array_objectImpl.mm +0 -127
  252. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_color_buffer_floatImpl.mm +0 -45
  253. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_atcImpl.mm +0 -45
  254. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etc1Impl.mm +0 -31
  255. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_etcImpl.mm +0 -70
  256. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_pvrtcImpl.mm +0 -47
  257. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tcImpl.mm +0 -46
  258. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_compressed_texture_s3tc_srgbImpl.mm +0 -49
  259. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_depth_textureImpl.mm +0 -30
  260. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_draw_buffersImpl.mm +0 -177
  261. package/platforms/ios/src/cpp/webgl/extensions/WEBGL_lose_contextImpl.mm +0 -64
  262. package/platforms/ios/src/cpp/webgl2/WebGL2RenderingContext.mm +0 -4543
  263. package/pods/Headers/jsi/decorator.h +0 -770
  264. package/pods/Headers/jsi/instrumentation.h +0 -117
  265. package/pods/Headers/jsi/jsi-inl.h +0 -338
  266. package/pods/Headers/jsi/jsi.h +0 -1571
  267. package/pods/Headers/jsi/jsilib.h +0 -59
  268. package/pods/Headers/jsi/threadsafe.h +0 -79
  269. package/pods/Headers/v8runtime/HostProxy.h +0 -71
  270. package/pods/Headers/v8runtime/JSIV8ValueConverter.h +0 -74
  271. package/pods/Headers/v8runtime/V8PointerValue.h +0 -44
  272. package/pods/Headers/v8runtime/V8Runtime.h +0 -240
  273. package/pods/Headers/v8runtime/V8RuntimeConfig.h +0 -26
  274. package/pods/Headers/v8runtime/V8RuntimeFactory.h +0 -21
  275. /package/platforms/ios/src/cpp/{OnRafCallback.mm → OnRafCallback.cpp} +0 -0
  276. /package/{pods → src-native/ios}/Headers/include/APIDesign.md +0 -0
  277. /package/{pods → src-native/ios}/Headers/include/DEPS +0 -0
  278. /package/{pods → src-native/ios}/Headers/include/DIR_METADATA +0 -0
  279. /package/{pods → src-native/ios}/Headers/include/OWNERS +0 -0
  280. /package/{pods → src-native/ios}/Headers/include/cppgc/DEPS +0 -0
  281. /package/{pods → src-native/ios}/Headers/include/cppgc/OWNERS +0 -0
  282. /package/{pods → src-native/ios}/Headers/include/cppgc/README.md +0 -0
  283. /package/{pods → src-native/ios}/Headers/include/cppgc/allocation.h +0 -0
  284. /package/{pods → src-native/ios}/Headers/include/cppgc/common.h +0 -0
  285. /package/{pods → src-native/ios}/Headers/include/cppgc/cross-thread-persistent.h +0 -0
  286. /package/{pods → src-native/ios}/Headers/include/cppgc/custom-space.h +0 -0
  287. /package/{pods → src-native/ios}/Headers/include/cppgc/default-platform.h +0 -0
  288. /package/{pods → src-native/ios}/Headers/include/cppgc/ephemeron-pair.h +0 -0
  289. /package/{pods → src-native/ios}/Headers/include/cppgc/explicit-management.h +0 -0
  290. /package/{pods → src-native/ios}/Headers/include/cppgc/garbage-collected.h +0 -0
  291. /package/{pods → src-native/ios}/Headers/include/cppgc/heap-consistency.h +0 -0
  292. /package/{pods → src-native/ios}/Headers/include/cppgc/heap-state.h +0 -0
  293. /package/{pods → src-native/ios}/Headers/include/cppgc/heap-statistics.h +0 -0
  294. /package/{pods → src-native/ios}/Headers/include/cppgc/heap.h +0 -0
  295. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/api-constants.h +0 -0
  296. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/atomic-entry-flag.h +0 -0
  297. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/caged-heap-local-data.h +0 -0
  298. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/compiler-specific.h +0 -0
  299. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/finalizer-trait.h +0 -0
  300. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/gc-info.h +0 -0
  301. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/logging.h +0 -0
  302. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/name-trait.h +0 -0
  303. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/persistent-node.h +0 -0
  304. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/pointer-policies.h +0 -0
  305. /package/{pods → src-native/ios}/Headers/include/cppgc/internal/write-barrier.h +0 -0
  306. /package/{pods → src-native/ios}/Headers/include/cppgc/liveness-broker.h +0 -0
  307. /package/{pods → src-native/ios}/Headers/include/cppgc/macros.h +0 -0
  308. /package/{pods → src-native/ios}/Headers/include/cppgc/member.h +0 -0
  309. /package/{pods → src-native/ios}/Headers/include/cppgc/name-provider.h +0 -0
  310. /package/{pods → src-native/ios}/Headers/include/cppgc/object-size-trait.h +0 -0
  311. /package/{pods → src-native/ios}/Headers/include/cppgc/persistent.h +0 -0
  312. /package/{pods → src-native/ios}/Headers/include/cppgc/platform.h +0 -0
  313. /package/{pods → src-native/ios}/Headers/include/cppgc/prefinalizer.h +0 -0
  314. /package/{pods → src-native/ios}/Headers/include/cppgc/process-heap-statistics.h +0 -0
  315. /package/{pods → src-native/ios}/Headers/include/cppgc/sentinel-pointer.h +0 -0
  316. /package/{pods → src-native/ios}/Headers/include/cppgc/source-location.h +0 -0
  317. /package/{pods → src-native/ios}/Headers/include/cppgc/testing.h +0 -0
  318. /package/{pods → src-native/ios}/Headers/include/cppgc/trace-trait.h +0 -0
  319. /package/{pods → src-native/ios}/Headers/include/cppgc/type-traits.h +0 -0
  320. /package/{pods → src-native/ios}/Headers/include/cppgc/visitor.h +0 -0
  321. /package/{pods → src-native/ios}/Headers/include/js_protocol-1.2.json +0 -0
  322. /package/{pods → src-native/ios}/Headers/include/js_protocol-1.3.json +0 -0
  323. /package/{pods → src-native/ios}/Headers/include/js_protocol.pdl +0 -0
  324. /package/{pods → src-native/ios}/Headers/include/libffi/arm64/ffi.h +0 -0
  325. /package/{pods → src-native/ios}/Headers/include/libffi/arm64/ffitarget.h +0 -0
  326. /package/{pods → src-native/ios}/Headers/include/libffi/x86_64/ffi.h +0 -0
  327. /package/{pods → src-native/ios}/Headers/include/libffi/x86_64/ffitarget.h +0 -0
  328. /package/{pods → src-native/ios}/Headers/include/libffi.h +0 -0
  329. /package/{pods → src-native/ios}/Headers/include/libplatform/DEPS +0 -0
  330. /package/{pods → src-native/ios}/Headers/include/libplatform/libplatform-export.h +0 -0
  331. /package/{pods → src-native/ios}/Headers/include/libplatform/libplatform.h +0 -0
  332. /package/{pods → src-native/ios}/Headers/include/libplatform/v8-tracing.h +0 -0
  333. /package/{pods → src-native/ios}/Headers/include/v8-array-buffer.h +0 -0
  334. /package/{pods → src-native/ios}/Headers/include/v8-callbacks.h +0 -0
  335. /package/{pods → src-native/ios}/Headers/include/v8-container.h +0 -0
  336. /package/{pods → src-native/ios}/Headers/include/v8-context.h +0 -0
  337. /package/{pods → src-native/ios}/Headers/include/v8-cppgc.h +0 -0
  338. /package/{pods → src-native/ios}/Headers/include/v8-data.h +0 -0
  339. /package/{pods → src-native/ios}/Headers/include/v8-date.h +0 -0
  340. /package/{pods → src-native/ios}/Headers/include/v8-debug.h +0 -0
  341. /package/{pods → src-native/ios}/Headers/include/v8-embedder-heap.h +0 -0
  342. /package/{pods → src-native/ios}/Headers/include/v8-embedder-state-scope.h +0 -0
  343. /package/{pods → src-native/ios}/Headers/include/v8-exception.h +0 -0
  344. /package/{pods → src-native/ios}/Headers/include/v8-extension.h +0 -0
  345. /package/{pods → src-native/ios}/Headers/include/v8-external.h +0 -0
  346. /package/{pods → src-native/ios}/Headers/include/v8-fast-api-calls.h +0 -0
  347. /package/{pods → src-native/ios}/Headers/include/v8-forward.h +0 -0
  348. /package/{pods → src-native/ios}/Headers/include/v8-function-callback.h +0 -0
  349. /package/{pods → src-native/ios}/Headers/include/v8-function.h +0 -0
  350. /package/{pods → src-native/ios}/Headers/include/v8-initialization.h +0 -0
  351. /package/{pods → src-native/ios}/Headers/include/v8-inspector-protocol.h +0 -0
  352. /package/{pods → src-native/ios}/Headers/include/v8-inspector.h +0 -0
  353. /package/{pods → src-native/ios}/Headers/include/v8-internal.h +0 -0
  354. /package/{pods → src-native/ios}/Headers/include/v8-isolate.h +0 -0
  355. /package/{pods → src-native/ios}/Headers/include/v8-json.h +0 -0
  356. /package/{pods → src-native/ios}/Headers/include/v8-local-handle.h +0 -0
  357. /package/{pods → src-native/ios}/Headers/include/v8-locker.h +0 -0
  358. /package/{pods → src-native/ios}/Headers/include/v8-maybe.h +0 -0
  359. /package/{pods → src-native/ios}/Headers/include/v8-memory-span.h +0 -0
  360. /package/{pods → src-native/ios}/Headers/include/v8-message.h +0 -0
  361. /package/{pods → src-native/ios}/Headers/include/v8-metrics.h +0 -0
  362. /package/{pods → src-native/ios}/Headers/include/v8-microtask-queue.h +0 -0
  363. /package/{pods → src-native/ios}/Headers/include/v8-microtask.h +0 -0
  364. /package/{pods → src-native/ios}/Headers/include/v8-object.h +0 -0
  365. /package/{pods → src-native/ios}/Headers/include/v8-persistent-handle.h +0 -0
  366. /package/{pods → src-native/ios}/Headers/include/v8-platform.h +0 -0
  367. /package/{pods → src-native/ios}/Headers/include/v8-primitive-object.h +0 -0
  368. /package/{pods → src-native/ios}/Headers/include/v8-primitive.h +0 -0
  369. /package/{pods → src-native/ios}/Headers/include/v8-profiler.h +0 -0
  370. /package/{pods → src-native/ios}/Headers/include/v8-promise.h +0 -0
  371. /package/{pods → src-native/ios}/Headers/include/v8-proxy.h +0 -0
  372. /package/{pods → src-native/ios}/Headers/include/v8-regexp.h +0 -0
  373. /package/{pods → src-native/ios}/Headers/include/v8-script.h +0 -0
  374. /package/{pods → src-native/ios}/Headers/include/v8-snapshot.h +0 -0
  375. /package/{pods → src-native/ios}/Headers/include/v8-statistics.h +0 -0
  376. /package/{pods → src-native/ios}/Headers/include/v8-template.h +0 -0
  377. /package/{pods → src-native/ios}/Headers/include/v8-traced-handle.h +0 -0
  378. /package/{pods → src-native/ios}/Headers/include/v8-typed-array.h +0 -0
  379. /package/{pods → src-native/ios}/Headers/include/v8-unwinder-state.h +0 -0
  380. /package/{pods → src-native/ios}/Headers/include/v8-unwinder.h +0 -0
  381. /package/{pods → src-native/ios}/Headers/include/v8-util.h +0 -0
  382. /package/{pods → src-native/ios}/Headers/include/v8-value-serializer-version.h +0 -0
  383. /package/{pods → src-native/ios}/Headers/include/v8-value-serializer.h +0 -0
  384. /package/{pods → src-native/ios}/Headers/include/v8-value.h +0 -0
  385. /package/{pods → src-native/ios}/Headers/include/v8-version-string.h +0 -0
  386. /package/{pods → src-native/ios}/Headers/include/v8-version.h +0 -0
  387. /package/{pods → src-native/ios}/Headers/include/v8-wasm-trap-handler-posix.h +0 -0
  388. /package/{pods → src-native/ios}/Headers/include/v8-wasm-trap-handler-win.h +0 -0
  389. /package/{pods → src-native/ios}/Headers/include/v8-wasm.h +0 -0
  390. /package/{pods → src-native/ios}/Headers/include/v8-weak-callback-info.h +0 -0
  391. /package/{pods → src-native/ios}/Headers/include/v8.h +0 -0
  392. /package/{pods → src-native/ios}/Headers/include/v8config.h +0 -0
  393. /package/{pods → src-native/ios}/Headers/inspector/InspectorServer.h +0 -0
  394. /package/{pods → src-native/ios}/Headers/inspector/JsV8InspectorClient.h +0 -0
  395. /package/{pods → src-native/ios}/Headers/inspector/base/trace_event/common/trace_event_common.h +0 -0
  396. /package/{pods → src-native/ios}/Headers/inspector/base64.h +0 -0
  397. /package/{pods → src-native/ios}/Headers/inspector/src/base/address-region.h +0 -0
  398. /package/{pods → src-native/ios}/Headers/inspector/src/base/atomic-utils.h +0 -0
  399. /package/{pods → src-native/ios}/Headers/inspector/src/base/atomicops.h +0 -0
  400. /package/{pods → src-native/ios}/Headers/inspector/src/base/atomicops_internals_atomicword_compat.h +0 -0
  401. /package/{pods → src-native/ios}/Headers/inspector/src/base/base-export.h +0 -0
  402. /package/{pods → src-native/ios}/Headers/inspector/src/base/bits.h +0 -0
  403. /package/{pods → src-native/ios}/Headers/inspector/src/base/build_config.h +0 -0
  404. /package/{pods → src-native/ios}/Headers/inspector/src/base/compiler-specific.h +0 -0
  405. /package/{pods → src-native/ios}/Headers/inspector/src/base/export-template.h +0 -0
  406. /package/{pods → src-native/ios}/Headers/inspector/src/base/flags.h +0 -0
  407. /package/{pods → src-native/ios}/Headers/inspector/src/base/immediate-crash.h +0 -0
  408. /package/{pods → src-native/ios}/Headers/inspector/src/base/lazy-instance.h +0 -0
  409. /package/{pods → src-native/ios}/Headers/inspector/src/base/logging.h +0 -0
  410. /package/{pods → src-native/ios}/Headers/inspector/src/base/macros.h +0 -0
  411. /package/{pods → src-native/ios}/Headers/inspector/src/base/memory.h +0 -0
  412. /package/{pods → src-native/ios}/Headers/inspector/src/base/once.h +0 -0
  413. /package/{pods → src-native/ios}/Headers/inspector/src/base/optional.h +0 -0
  414. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/mutex.h +0 -0
  415. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/platform.h +0 -0
  416. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/semaphore.h +0 -0
  417. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/v8-time.h +0 -0
  418. /package/{pods → src-native/ios}/Headers/inspector/src/base/platform/wrappers.h +0 -0
  419. /package/{pods → src-native/ios}/Headers/inspector/src/base/safe_conversions.h +0 -0
  420. /package/{pods → src-native/ios}/Headers/inspector/src/base/safe_conversions_impl.h +0 -0
  421. /package/{pods → src-native/ios}/Headers/inspector/src/base/template-utils.h +0 -0
  422. /package/{pods → src-native/ios}/Headers/inspector/src/base/v8-fallthrough.h +0 -0
  423. /package/{pods → src-native/ios}/Headers/inspector/src/common/checks.h +0 -0
  424. /package/{pods → src-native/ios}/Headers/inspector/src/common/globals.h +0 -0
  425. /package/{pods → src-native/ios}/Headers/inspector/src/debug/debug-interface.h +0 -0
  426. /package/{pods → src-native/ios}/Headers/inspector/src/debug/interface-types.h +0 -0
  427. /package/{pods → src-native/ios}/Headers/inspector/src/init/v8.h +0 -0
  428. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/custom-preview.h +0 -0
  429. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/injected-script.h +0 -0
  430. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/inspected-context.h +0 -0
  431. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/CSS.h +0 -0
  432. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Console.h +0 -0
  433. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/DOM.h +0 -0
  434. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Debugger.h +0 -0
  435. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Forward.h +0 -0
  436. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/HeapProfiler.h +0 -0
  437. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Log.h +0 -0
  438. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Network.h +0 -0
  439. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Overlay.h +0 -0
  440. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Page.h +0 -0
  441. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Profiler.h +0 -0
  442. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Protocol.h +0 -0
  443. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Runtime.h +0 -0
  444. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Schema.h +0 -0
  445. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/protocol/Security.h +0 -0
  446. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/remote-object-id.h +0 -0
  447. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/search-util.h +0 -0
  448. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/string-16.h +0 -0
  449. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/string-util.h +0 -0
  450. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-console-agent-impl.h +0 -0
  451. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-console-message.h +0 -0
  452. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-console.h +0 -0
  453. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-css-agent-impl.h +0 -0
  454. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger-agent-impl.h +0 -0
  455. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger-id.h +0 -0
  456. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger-script.h +0 -0
  457. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-debugger.h +0 -0
  458. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-dom-agent-impl.h +0 -0
  459. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-heap-profiler-agent-impl.h +0 -0
  460. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-inspector-impl.h +0 -0
  461. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-inspector-session-impl.h +0 -0
  462. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-log-agent-impl.h +0 -0
  463. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-network-agent-impl.h +0 -0
  464. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-ns-debugger-agent-impl.h +0 -0
  465. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-overlay-agent-impl.h +0 -0
  466. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-page-agent-impl.h +0 -0
  467. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-profiler-agent-impl.h +0 -0
  468. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-regex.h +0 -0
  469. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-runtime-agent-impl.h +0 -0
  470. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-schema-agent-impl.h +0 -0
  471. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-stack-trace-impl.h +0 -0
  472. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-string-conversions.h +0 -0
  473. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/v8-value-utils.h +0 -0
  474. /package/{pods → src-native/ios}/Headers/inspector/src/inspector/value-mirror.h +0 -0
  475. /package/{pods → src-native/ios}/Headers/inspector/src/libplatform/default-platform.h +0 -0
  476. /package/{pods → src-native/ios}/Headers/inspector/src/logging/tracing-flags.h +0 -0
  477. /package/{pods → src-native/ios}/Headers/inspector/src/numbers/conversions.h +0 -0
  478. /package/{pods → src-native/ios}/Headers/inspector/src/tracing/trace-event.h +0 -0
  479. /package/{pods → src-native/ios}/Headers/inspector/src/utils/allocation.h +0 -0
  480. /package/{pods → src-native/ios}/Headers/inspector/src/utils/vector.h +0 -0
  481. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/cbor.h +0 -0
  482. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/dispatch.h +0 -0
  483. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/error_support.h +0 -0
  484. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/export.h +0 -0
  485. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/find_by_first.h +0 -0
  486. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/frontend_channel.h +0 -0
  487. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/glue.h +0 -0
  488. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/json.h +0 -0
  489. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/json_platform.h +0 -0
  490. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/maybe.h +0 -0
  491. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/parser_handler.h +0 -0
  492. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/protocol_core.h +0 -0
  493. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/serializable.h +0 -0
  494. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/serializer_traits.h +0 -0
  495. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/span.h +0 -0
  496. /package/{pods → src-native/ios}/Headers/inspector/third_party/inspector_protocol/crdtp/status.h +0 -0
  497. /package/{pods → src-native/ios}/Headers/inspector/utils.h +0 -0
  498. /package/{pods → src-native/ios}/Headers/inspector/v8-inspector-platform.h +0 -0
  499. /package/{pods → src-native/ios}/Headers/runtime/ArgConverter.h +0 -0
  500. /package/{pods → src-native/ios}/Headers/runtime/ArrayAdapter.h +0 -0
  501. /package/{pods → src-native/ios}/Headers/runtime/Caches.h +0 -0
  502. /package/{pods → src-native/ios}/Headers/runtime/ClassBuilder.h +0 -0
  503. /package/{pods → src-native/ios}/Headers/runtime/Common.h +0 -0
  504. /package/{pods → src-native/ios}/Headers/runtime/ConcurrentMap.h +0 -0
  505. /package/{pods → src-native/ios}/Headers/runtime/ConcurrentQueue.h +0 -0
  506. /package/{pods → src-native/ios}/Headers/runtime/Console.h +0 -0
  507. /package/{pods → src-native/ios}/Headers/runtime/Constants.h +0 -0
  508. /package/{pods → src-native/ios}/Headers/runtime/DataWrapper.h +0 -0
  509. /package/{pods → src-native/ios}/Headers/runtime/DictionaryAdapter.h +0 -0
  510. /package/{pods → src-native/ios}/Headers/runtime/ExtVector.h +0 -0
  511. /package/{pods → src-native/ios}/Headers/runtime/FFICall.h +0 -0
  512. /package/{pods → src-native/ios}/Headers/runtime/FastEnumerationAdapter.h +0 -0
  513. /package/{pods → src-native/ios}/Headers/runtime/FunctionReference.h +0 -0
  514. /package/{pods → src-native/ios}/Headers/runtime/Helpers.h +0 -0
  515. /package/{pods → src-native/ios}/Headers/runtime/InlineFunctions.h +0 -0
  516. /package/{pods → src-native/ios}/Headers/runtime/Interop.h +0 -0
  517. /package/{pods → src-native/ios}/Headers/runtime/KnownUnknownClassPair.h +0 -0
  518. /package/{pods → src-native/ios}/Headers/runtime/Metadata.h +0 -0
  519. /package/{pods → src-native/ios}/Headers/runtime/MetadataBuilder.h +0 -0
  520. /package/{pods → src-native/ios}/Headers/runtime/MetadataInlines.h +0 -0
  521. /package/{pods → src-native/ios}/Headers/runtime/ModuleInternal.h +0 -0
  522. /package/{pods → src-native/ios}/Headers/runtime/NSDataAdapter.h +0 -0
  523. /package/{pods → src-native/ios}/Headers/runtime/NativeScriptException.h +0 -0
  524. /package/{pods → src-native/ios}/Headers/runtime/ObjectManager.h +0 -0
  525. /package/{pods → src-native/ios}/Headers/runtime/OneByteStringResource.h +0 -0
  526. /package/{pods → src-native/ios}/Headers/runtime/Pointer.h +0 -0
  527. /package/{pods → src-native/ios}/Headers/runtime/PromiseProxy.h +0 -0
  528. /package/{pods → src-native/ios}/Headers/runtime/Reference.h +0 -0
  529. /package/{pods → src-native/ios}/Headers/runtime/Runtime.h +0 -0
  530. /package/{pods → src-native/ios}/Headers/runtime/RuntimeConfig.h +0 -0
  531. /package/{pods → src-native/ios}/Headers/runtime/SetTimeout.h +0 -0
  532. /package/{pods → src-native/ios}/Headers/runtime/SimpleAllocator.h +0 -0
  533. /package/{pods → src-native/ios}/Headers/runtime/StringHasher.h +0 -0
  534. /package/{pods → src-native/ios}/Headers/runtime/SymbolIterator.h +0 -0
  535. /package/{pods → src-native/ios}/Headers/runtime/SymbolLoader.h +0 -0
  536. /package/{pods → src-native/ios}/Headers/runtime/TNSDerivedClass.h +0 -0
  537. /package/{pods → src-native/ios}/Headers/runtime/TSHelpers.h +0 -0
  538. /package/{pods → src-native/ios}/Headers/runtime/Tasks.h +0 -0
  539. /package/{pods → src-native/ios}/Headers/runtime/UnmanagedType.h +0 -0
  540. /package/{pods → src-native/ios}/Headers/runtime/WeakRef.h +0 -0
  541. /package/{pods → src-native/ios}/Headers/runtime/Worker.h +0 -0
  542. /package/{pods → src-native/ios}/Headers/runtime/robin_hood.h +0 -0
@@ -1,4543 +0,0 @@
1
- //
2
- // Created by Osei Fortune on 22/03/2022.
3
- //
4
-
5
- #include "WebGL2RenderingContext.h"
6
-
7
- WebGL2RenderingContext::WebGL2RenderingContext(rust::Box<WebGLState> state) : WebGLRenderingContext(
8
- std::move(state), WebGLRenderingVersion::V2) {
9
- }
10
-
11
-
12
- WebGL2RenderingContext::WebGL2RenderingContext(rust::Box<WebGLState> state,
13
- WebGLRenderingVersion version)
14
- : WebGLRenderingContext(std::move(state), version) {
15
-
16
- }
17
-
18
-
19
- std::vector<jsi::PropNameID> WebGL2RenderingContext::getPropertyNames(jsi::Runtime &rt) {
20
- std::vector<jsi::PropNameID> ret;
21
-
22
- // gl2 + gl1 props
23
- ret.reserve(353 + 434);
24
-
25
- // 351
26
- ret.push_back(jsi::PropNameID::forAscii(rt, "beginQuery"));
27
- ret.push_back(jsi::PropNameID::forAscii(rt, "beginTransformFeedback"));
28
- ret.push_back(jsi::PropNameID::forAscii(rt, "bindBufferBase"));
29
- ret.push_back(jsi::PropNameID::forAscii(rt, "bindBufferRange"));
30
- ret.push_back(jsi::PropNameID::forAscii(rt, "bindSampler"));
31
- ret.push_back(jsi::PropNameID::forAscii(rt, "bindTransformFeedback"));
32
- ret.push_back(jsi::PropNameID::forAscii(rt, "bindVertexArray"));
33
- ret.push_back(jsi::PropNameID::forAscii(rt, "blitFramebuffer"));
34
- ret.push_back(jsi::PropNameID::forAscii(rt, "clearBufferfi"));
35
- ret.push_back(jsi::PropNameID::forAscii(rt, "clearBufferfv"));
36
- ret.push_back(jsi::PropNameID::forAscii(rt, "clearBufferiv"));
37
- ret.push_back(jsi::PropNameID::forAscii(rt, "clearBufferuiv"));
38
- ret.push_back(jsi::PropNameID::forAscii(rt, "clientWaitSync"));
39
- ret.push_back(jsi::PropNameID::forAscii(rt, "compressedTexSubImage3D"));
40
- ret.push_back(jsi::PropNameID::forAscii(rt, "copyBufferSubData"));
41
- ret.push_back(jsi::PropNameID::forAscii(rt, "copyTexSubImage3D"));
42
- ret.push_back(jsi::PropNameID::forAscii(rt, "createQuery"));
43
- ret.push_back(jsi::PropNameID::forAscii(rt, "createSampler"));
44
- ret.push_back(jsi::PropNameID::forAscii(rt, "createTransformFeedback"));
45
- ret.push_back(jsi::PropNameID::forAscii(rt, "createVertexArray"));
46
- ret.push_back(jsi::PropNameID::forAscii(rt, "deleteQuery"));
47
- ret.push_back(jsi::PropNameID::forAscii(rt, "deleteSampler"));
48
- ret.push_back(jsi::PropNameID::forAscii(rt, "deleteSync"));
49
- ret.push_back(jsi::PropNameID::forAscii(rt, "deleteTransformFeedback"));
50
- ret.push_back(jsi::PropNameID::forAscii(rt, "deleteVertexArray"));
51
- ret.push_back(jsi::PropNameID::forAscii(rt, "drawArraysInstanced"));
52
- ret.push_back(jsi::PropNameID::forAscii(rt, "drawBuffers"));
53
- ret.push_back(jsi::PropNameID::forAscii(rt, "drawElementsInstanced"));
54
- ret.push_back(jsi::PropNameID::forAscii(rt, "drawRangeElements"));
55
- ret.push_back(jsi::PropNameID::forAscii(rt, "endQuery"));
56
- ret.push_back(jsi::PropNameID::forAscii(rt, "endTransformFeedback"));
57
- ret.push_back(jsi::PropNameID::forAscii(rt, "fenceSync"));
58
- ret.push_back(jsi::PropNameID::forAscii(rt, "framebufferTextureLayer"));
59
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform1ui"));
60
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform1uiv"));
61
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform2ui"));
62
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform2uiv"));
63
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform3ui"));
64
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform3uiv"));
65
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform4ui"));
66
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniform4uiv"));
67
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformBlockBinding"));
68
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformMatrix2x3fv"));
69
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformMatrix2x4fv"));
70
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformMatrix3x2fv"));
71
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformMatrix3x4fv"));
72
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformMatrix4x2fv"));
73
- ret.push_back(jsi::PropNameID::forAscii(rt, "uniformMatrix4x3fv"));
74
- ret.push_back(jsi::PropNameID::forAscii(rt, "vertexAttribDivisor"));
75
- ret.push_back(jsi::PropNameID::forAscii(rt, "vertexAttribI4i"));
76
- ret.push_back(jsi::PropNameID::forAscii(rt, "vertexAttribI4iv"));
77
- ret.push_back(jsi::PropNameID::forAscii(rt, "vertexAttribI4ui"));
78
- ret.push_back(jsi::PropNameID::forAscii(rt, "vertexAttribI4uiv"));
79
- ret.push_back(jsi::PropNameID::forAscii(rt, "getActiveUniformBlockName"));
80
- ret.push_back(jsi::PropNameID::forAscii(rt, "getActiveUniformBlockParameter"));
81
- ret.push_back(jsi::PropNameID::forAscii(rt, "getActiveUniforms"));
82
- ret.push_back(jsi::PropNameID::forAscii(rt, "getBufferSubData"));
83
- ret.push_back(jsi::PropNameID::forAscii(rt, "getFragDataLocation"));
84
- ret.push_back(jsi::PropNameID::forAscii(rt, "getIndexedParameter"));
85
- ret.push_back(jsi::PropNameID::forAscii(rt, "getInternalformatParameter"));
86
- ret.push_back(jsi::PropNameID::forAscii(rt, "getParameter"));
87
- ret.push_back(jsi::PropNameID::forAscii(rt, "getQueryParameter"));
88
- ret.push_back(jsi::PropNameID::forAscii(rt, "getQuery"));
89
- ret.push_back(jsi::PropNameID::forAscii(rt, "getSamplerParameter"));
90
- ret.push_back(jsi::PropNameID::forAscii(rt, "getSyncParameter"));
91
- ret.push_back(jsi::PropNameID::forAscii(rt, "getTransformFeedbackVarying"));
92
- ret.push_back(jsi::PropNameID::forAscii(rt, "getUniformBlockIndex"));
93
- ret.push_back(jsi::PropNameID::forAscii(rt, "getUniformIndices"));
94
- ret.push_back(jsi::PropNameID::forAscii(rt, "invalidateFramebuffer"));
95
- ret.push_back(jsi::PropNameID::forAscii(rt, "invalidateSubFramebuffer"));
96
- ret.push_back(jsi::PropNameID::forAscii(rt, "isQuery"));
97
- ret.push_back(jsi::PropNameID::forAscii(rt, "isSampler"));
98
- ret.push_back(jsi::PropNameID::forAscii(rt, "isSync"));
99
- ret.push_back(jsi::PropNameID::forAscii(rt, "isTransformFeedback"));
100
- ret.push_back(jsi::PropNameID::forAscii(rt, "isVertexArray"));
101
- ret.push_back(jsi::PropNameID::forAscii(rt, "pauseTransformFeedback"));
102
- ret.push_back(jsi::PropNameID::forAscii(rt, "readBuffer"));
103
- ret.push_back(jsi::PropNameID::forAscii(rt, "renderbufferStorageMultisample"));
104
- ret.push_back(jsi::PropNameID::forAscii(rt, "resumeTransformFeedback"));
105
- ret.push_back(jsi::PropNameID::forAscii(rt, "samplerParameterf"));
106
- ret.push_back(jsi::PropNameID::forAscii(rt, "samplerParameteri"));
107
- ret.push_back(jsi::PropNameID::forAscii(rt, "texImage3D"));
108
- ret.push_back(jsi::PropNameID::forAscii(rt, "texStorage2D"));
109
- ret.push_back(jsi::PropNameID::forAscii(rt, "texStorage3D"));
110
- ret.push_back(jsi::PropNameID::forAscii(rt, "texSubImage3D"));
111
- ret.push_back(jsi::PropNameID::forAscii(rt, "transformFeedbackVaryings"));
112
-
113
-
114
- ret.push_back(jsi::PropNameID::forAscii(rt, "READ_BUFFER"));
115
-
116
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNPACK_ROW_LENGTH"));
117
-
118
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNPACK_SKIP_ROWS"));
119
-
120
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNPACK_SKIP_PIXELS"));
121
-
122
- ret.push_back(jsi::PropNameID::forAscii(rt, "PACK_ROW_LENGTH"));
123
-
124
- ret.push_back(jsi::PropNameID::forAscii(rt, "PACK_SKIP_ROWS"));
125
-
126
- ret.push_back(jsi::PropNameID::forAscii(rt, "PACK_SKIP_PIXELS"));
127
-
128
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_BINDING_3D"));
129
-
130
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNPACK_SKIP_IMAGES"));
131
-
132
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNPACK_IMAGE_HEIGHT"));
133
-
134
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_3D_TEXTURE_SIZE"));
135
-
136
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_ELEMENTS_VERTICES"));
137
-
138
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_ELEMENTS_INDICES"));
139
-
140
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_TEXTURE_LOD_BIAS"));
141
-
142
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_FRAGMENT_UNIFORM_COMPONENTS"));
143
-
144
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_VERTEX_UNIFORM_COMPONENTS"));
145
-
146
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_ARRAY_TEXTURE_LAYERS"));
147
-
148
- ret.push_back(jsi::PropNameID::forAscii(rt, "MIN_PROGRAM_TEXEL_OFFSET"));
149
-
150
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_PROGRAM_TEXEL_OFFSET"));
151
-
152
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_VARYING_COMPONENTS"));
153
-
154
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAGMENT_SHADER_DERIVATIVE_HINT"));
155
-
156
- ret.push_back(jsi::PropNameID::forAscii(rt, "RASTERIZER_DISCARD"));
157
-
158
- ret.push_back(jsi::PropNameID::forAscii(rt, "VERTEX_ARRAY_BINDING"));
159
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_VERTEX_OUTPUT_COMPONENTS"));
160
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_FRAGMENT_INPUT_COMPONENTS"));
161
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_SERVER_WAIT_TIMEOUT"));
162
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_ELEMENT_INDEX"));
163
-
164
- ret.push_back(jsi::PropNameID::forAscii(rt, "RED"));
165
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB8"));
166
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA8"));
167
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB10_A2"));
168
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_3D"));
169
-
170
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_WRAP_R"));
171
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_MIN_LOD"));
172
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_MAX_LOD"));
173
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_BASE_LEVEL"));
174
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_MAX_LEVEL"));
175
-
176
-
177
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_COMPARE_MODE"));
178
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_COMPARE_FUNC"));
179
- ret.push_back(jsi::PropNameID::forAscii(rt, "SRGB"));
180
- ret.push_back(jsi::PropNameID::forAscii(rt, "SRGB8"));
181
- ret.push_back(jsi::PropNameID::forAscii(rt, "SRGB8_ALPHA8"));
182
-
183
- ret.push_back(jsi::PropNameID::forAscii(rt, "COMPARE_REF_TO_TEXTURE"));
184
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA32F"));
185
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB32F"));
186
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA16F"));
187
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB16F"));
188
-
189
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_2D_ARRAY"));
190
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_BINDING_2D_ARRAY"));
191
- ret.push_back(jsi::PropNameID::forAscii(rt, "R11F_G11F_B10F"));
192
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB9_E5"));
193
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA32UI"));
194
-
195
-
196
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB32UI"));
197
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA16UI"));
198
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB16UI"));
199
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA8UI"));
200
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB8UI"));
201
-
202
-
203
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA32I"));
204
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB32I"));
205
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA16I"));
206
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB16I"));
207
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA8I"));
208
-
209
-
210
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB8I"));
211
- ret.push_back(jsi::PropNameID::forAscii(rt, "RED_INTEGER"));
212
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB_INTEGER"));
213
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA_INTEGER"));
214
- ret.push_back(jsi::PropNameID::forAscii(rt, "R8"));
215
-
216
-
217
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG8"));
218
- ret.push_back(jsi::PropNameID::forAscii(rt, "R16F"));
219
- ret.push_back(jsi::PropNameID::forAscii(rt, "R32F"));
220
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG16F"));
221
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG32F"));
222
-
223
-
224
- ret.push_back(jsi::PropNameID::forAscii(rt, "R8I"));
225
- ret.push_back(jsi::PropNameID::forAscii(rt, "R8UI"));
226
- ret.push_back(jsi::PropNameID::forAscii(rt, "R16I"));
227
- ret.push_back(jsi::PropNameID::forAscii(rt, "R16UI"));
228
- ret.push_back(jsi::PropNameID::forAscii(rt, "R32I"));
229
-
230
-
231
- ret.push_back(jsi::PropNameID::forAscii(rt, "R32UI"));
232
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG8I"));
233
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG8UI"));
234
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG16I"));
235
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG16UI"));
236
-
237
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG32I"));
238
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG32UI"));
239
- ret.push_back(jsi::PropNameID::forAscii(rt, "R8_SNORM"));
240
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG8_SNORM"));
241
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB8_SNORM"));
242
-
243
-
244
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGBA8_SNORM"));
245
- ret.push_back(jsi::PropNameID::forAscii(rt, "RGB10_A2UI"));
246
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_IMMUTABLE_FORMAT"));
247
- ret.push_back(jsi::PropNameID::forAscii(rt, "TEXTURE_IMMUTABLE_LEVELS"));
248
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_2_10_10_10_REV"));
249
-
250
-
251
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_10F_11F_11F_REV"));
252
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_5_9_9_9_REV"));
253
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_32_UNSIGNED_INT_24_8_REV"));
254
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_24_8"));
255
- ret.push_back(jsi::PropNameID::forAscii(rt, "HALF_FLOAT"));
256
-
257
-
258
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG"));
259
- ret.push_back(jsi::PropNameID::forAscii(rt, "RG_INTEGER"));
260
- ret.push_back(jsi::PropNameID::forAscii(rt, "INT_2_10_10_10_REV"));
261
- ret.push_back(jsi::PropNameID::forAscii(rt, "QUERY_RESULT_AVAILABLE"));
262
- ret.push_back(jsi::PropNameID::forAscii(rt, "QUERY_RESULT"));
263
-
264
-
265
- ret.push_back(jsi::PropNameID::forAscii(rt, "CURRENT_QUERY"));
266
- ret.push_back(jsi::PropNameID::forAscii(rt, "ANY_SAMPLES_PASSED"));
267
- ret.push_back(jsi::PropNameID::forAscii(rt, "ANY_SAMPLES_PASSED_CONSERVATIVE"));
268
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_DRAW_BUFFERS"));
269
-
270
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER0"));
271
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER1"));
272
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER2"));
273
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER3)"));
274
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER4"));
275
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER5"));
276
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER6"));
277
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER7"));
278
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER8"));
279
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER9"));
280
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER10"));
281
-
282
- /* Getting GL parameter information */
283
-
284
- /* Textures */
285
-
286
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER11"));
287
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER12"));
288
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER13"));
289
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER14"));
290
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_BUFFER15"));
291
-
292
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_COLOR_ATTACHMENTS"));
293
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT1"));
294
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT2"));
295
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT3"));
296
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT4"));
297
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT5"));
298
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT6"));
299
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT7"));
300
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT8"));
301
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT9"));
302
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT10"));
303
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT11"));
304
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT12"));
305
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT13"));
306
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT14"));
307
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR_ATTACHMENT15"));
308
-
309
- ret.push_back(jsi::PropNameID::forAscii(rt, "SAMPLER_3D"));
310
- ret.push_back(jsi::PropNameID::forAscii(rt, "SAMPLER_2D_SHADOW"));
311
- ret.push_back(jsi::PropNameID::forAscii(rt, "SAMPLER_2D_ARRAY"));
312
- ret.push_back(jsi::PropNameID::forAscii(rt, "SAMPLER_2D_ARRAY_SHADOW"));
313
- ret.push_back(jsi::PropNameID::forAscii(rt, "SAMPLER_CUBE_SHADOW"));
314
-
315
- ret.push_back(jsi::PropNameID::forAscii(rt, "INT_SAMPLER_2D"));
316
- ret.push_back(jsi::PropNameID::forAscii(rt, "INT_SAMPLER_3D"));
317
- ret.push_back(jsi::PropNameID::forAscii(rt, "INT_SAMPLER_CUBE"));
318
- ret.push_back(jsi::PropNameID::forAscii(rt, "INT_SAMPLER_2D_ARRAY"));
319
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_SAMPLER_2D"));
320
-
321
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_SAMPLER_3D"));
322
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_SAMPLER_CUBE"));
323
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_SAMPLER_2D_ARRAY"));
324
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_SAMPLES"));
325
- ret.push_back(jsi::PropNameID::forAscii(rt, "SAMPLER_BINDING"));
326
-
327
- ret.push_back(jsi::PropNameID::forAscii(rt, "PIXEL_PACK_BUFFER"));
328
- ret.push_back(jsi::PropNameID::forAscii(rt, "PIXEL_UNPACK_BUFFER"));
329
- ret.push_back(jsi::PropNameID::forAscii(rt, "PIXEL_PACK_BUFFER_BINDING"));
330
- ret.push_back(jsi::PropNameID::forAscii(rt, "PIXEL_UNPACK_BUFFER_BINDING"));
331
- ret.push_back(jsi::PropNameID::forAscii(rt, "COPY_READ_BUFFER"));
332
-
333
- ret.push_back(jsi::PropNameID::forAscii(rt, "COPY_WRITE_BUFFER"));
334
- ret.push_back(jsi::PropNameID::forAscii(rt, "COPY_READ_BUFFER_BINDING"));
335
- ret.push_back(jsi::PropNameID::forAscii(rt, "COPY_WRITE_BUFFER_BINDING"));
336
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_MAT2x3"));
337
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_MAT2x4"));
338
-
339
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_MAT3x2"));
340
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_MAT3x4"));
341
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_MAT4x2"));
342
- ret.push_back(jsi::PropNameID::forAscii(rt, "FLOAT_MAT4x3"));
343
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_VEC2"));
344
-
345
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_VEC3"));
346
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_INT_VEC4"));
347
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNED_NORMALIZED"));
348
- ret.push_back(jsi::PropNameID::forAscii(rt, "SIGNED_NORMALIZED"));
349
-
350
- /* Vertex attributes */
351
-
352
- ret.push_back(jsi::PropNameID::forAscii(rt, "VERTEX_ATTRIB_ARRAY_INTEGER"));
353
- ret.push_back(jsi::PropNameID::forAscii(rt, "VERTEX_ATTRIB_ARRAY_DIVISOR"));
354
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_BUFFER_MODE"));
355
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS"));
356
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_VARYINGS"));
357
-
358
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_BUFFER_START"));
359
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_BUFFER_SIZE"));
360
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN"));
361
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS"));
362
-
363
- /* Textures */
364
-
365
- /* Pixel types */
366
-
367
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS"));
368
- ret.push_back(jsi::PropNameID::forAscii(rt, "INTERLEAVED_ATTRIBS"));
369
- ret.push_back(jsi::PropNameID::forAscii(rt, "SEPARATE_ATTRIBS"));
370
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_BUFFER"));
371
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_BUFFER_BINDING"));
372
-
373
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK"));
374
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_PAUSED"));
375
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_ACTIVE"));
376
- ret.push_back(jsi::PropNameID::forAscii(rt, "TRANSFORM_FEEDBACK_BINDING"));
377
-
378
- /* Pixel types */
379
-
380
- /* Queries */
381
-
382
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING"));
383
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE"));
384
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_RED_SIZE"));
385
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_GREEN_SIZE"));
386
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_BLUE_SIZE"));
387
-
388
- /* Queries */
389
-
390
- /* Draw buffers */
391
-
392
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE"));
393
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE"));
394
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE"));
395
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_DEFAULT"));
396
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH_STENCIL_ATTACHMENT"));
397
-
398
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH_STENCIL"));
399
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH24_STENCIL8"));
400
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_FRAMEBUFFER_BINDING"));
401
- ret.push_back(jsi::PropNameID::forAscii(rt, "READ_FRAMEBUFFER"));
402
- ret.push_back(jsi::PropNameID::forAscii(rt, "DRAW_FRAMEBUFFER"));
403
-
404
- ret.push_back(jsi::PropNameID::forAscii(rt, "READ_FRAMEBUFFER_BINDING"));
405
- ret.push_back(jsi::PropNameID::forAscii(rt, "RENDERBUFFER_SAMPLES"));
406
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER"));
407
- ret.push_back(jsi::PropNameID::forAscii(rt, "FRAMEBUFFER_INCOMPLETE_MULTISAMPLE"));
408
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BUFFER"));
409
-
410
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BUFFER_BINDING"));
411
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BUFFER_START"));
412
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BUFFER_SIZE"));
413
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_VERTEX_UNIFORM_BLOCKS"));
414
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_FRAGMENT_UNIFORM_BLOCKS"));
415
-
416
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_COMBINED_UNIFORM_BLOCKS"));
417
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_UNIFORM_BUFFER_BINDINGS"));
418
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_UNIFORM_BLOCK_SIZE"));
419
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS"));
420
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS"));
421
-
422
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BUFFER_OFFSET_ALIGNMENT"));
423
- ret.push_back(jsi::PropNameID::forAscii(rt, "ACTIVE_UNIFORM_BLOCKS"));
424
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_TYPE"));
425
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_SIZE"));
426
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_INDEX"));
427
-
428
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_OFFSET"));
429
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_ARRAY_STRIDE"));
430
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_MATRIX_STRIDE"));
431
-
432
- /* Draw buffers */
433
-
434
- /* Samplers */
435
-
436
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_IS_ROW_MAJOR"));
437
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_BINDING"));
438
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_DATA_SIZE"));
439
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_ACTIVE_UNIFORMS"));
440
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES"));
441
-
442
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER"));
443
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER"));
444
- ret.push_back(jsi::PropNameID::forAscii(rt, "OBJECT_TYPE"));
445
- ret.push_back(jsi::PropNameID::forAscii(rt, "SYNC_CONDITION"));
446
- ret.push_back(jsi::PropNameID::forAscii(rt, "SYNC_STATUS"));
447
-
448
- ret.push_back(jsi::PropNameID::forAscii(rt, "SYNC_FLAGS"));
449
- ret.push_back(jsi::PropNameID::forAscii(rt, "SYNC_FENCE"));
450
- ret.push_back(jsi::PropNameID::forAscii(rt, "SYNC_GPU_COMMANDS_COMPLETE"));
451
- ret.push_back(jsi::PropNameID::forAscii(rt, "UNSIGNALED"));
452
- ret.push_back(jsi::PropNameID::forAscii(rt, "SIGNALED"));
453
-
454
- /* Samplers */
455
-
456
- /* Buffers */
457
-
458
- ret.push_back(jsi::PropNameID::forAscii(rt, "ALREADY_SIGNALED"));
459
- ret.push_back(jsi::PropNameID::forAscii(rt, "TIMEOUT_EXPIRED"));
460
- ret.push_back(jsi::PropNameID::forAscii(rt, "CONDITION_SATISFIED"));
461
- ret.push_back(jsi::PropNameID::forAscii(rt, "WAIT_FAILED"));
462
- ret.push_back(jsi::PropNameID::forAscii(rt, "SYNC_FLUSH_COMMANDS_BIT"));
463
-
464
- ret.push_back(jsi::PropNameID::forAscii(rt, "COLOR"));
465
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH"));
466
- ret.push_back(jsi::PropNameID::forAscii(rt, "STENCIL"));
467
-
468
- /* Buffers */
469
-
470
- /* Data types */
471
-
472
- ret.push_back(jsi::PropNameID::forAscii(rt, "MIN"));
473
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX"));
474
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH_COMPONENT24"));
475
- ret.push_back(jsi::PropNameID::forAscii(rt, "STREAM_READ"));
476
- ret.push_back(jsi::PropNameID::forAscii(rt, "STREAM_COPY"));
477
-
478
- ret.push_back(jsi::PropNameID::forAscii(rt, "STATIC_READ"));
479
- ret.push_back(jsi::PropNameID::forAscii(rt, "STATIC_COPY"));
480
- ret.push_back(jsi::PropNameID::forAscii(rt, "DYNAMIC_READ"));
481
- ret.push_back(jsi::PropNameID::forAscii(rt, "DYNAMIC_COPY"));
482
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH_COMPONENT32F"));
483
- ret.push_back(jsi::PropNameID::forAscii(rt, "DEPTH32F_STENCIL8"));
484
-
485
- /* Data types */
486
-
487
- ret.push_back(jsi::PropNameID::forAscii(rt, "INVALID_INDEX"));
488
- ret.push_back(jsi::PropNameID::forAscii(rt, "TIMEOUT_IGNORED"));
489
-
490
- /* Vertex attributes */
491
-
492
- /* Transform feedback */
493
-
494
- ret.push_back(jsi::PropNameID::forAscii(rt, "MAX_CLIENT_WAIT_TIMEOUT_WEBGL"));
495
-
496
- /* Transform feedback */
497
-
498
-
499
- /* GL 1 */
500
-
501
- ret.push_back(jsi::PropNameID::forUtf8(rt, "__resized"));
502
- ret.push_back(jsi::PropNameID::forUtf8(rt, "__startRaf"));
503
- ret.push_back(jsi::PropNameID::forUtf8(rt, "__stopRaf"));
504
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("activeTexture")));
505
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("attachShader")));
506
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bindAttribLocation")));
507
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bindBuffer")));
508
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bindFramebuffer")));
509
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bindRenderbuffer")));
510
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bindTexture")));
511
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("blendColor")));
512
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("blendEquationSeparate")));
513
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("blendEquation")));
514
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("blendFuncSeparate")));
515
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("blendFunc")));
516
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bufferData")));
517
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("bufferSubData")));
518
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("checkFramebufferStatus")));
519
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clearColor")));
520
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clearDepth")));
521
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clearStencil")));
522
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("clear")));
523
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("colorMask")));
524
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("commit")));
525
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("compileShader")));
526
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("compressedTexImage2D")));
527
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("compressedTexSubImage2D")));
528
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("copyTexImage2D")));
529
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("copyTexSubImage2D")));
530
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createBuffer")));
531
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createFramebuffer")));
532
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createProgram")));
533
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createRenderbuffer")));
534
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createShader")));
535
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("createTexture")));
536
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("cullFace")));
537
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("deleteBuffer")));
538
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("deleteFramebuffer")));
539
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("deleteProgram")));
540
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("deleteRenderbuffer")));
541
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("deleteShader")));
542
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("deleteTexture")));
543
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("depthFunc")));
544
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("depthMask")));
545
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("depthRange")));
546
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("detachShader")));
547
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("disableVertexAttribArray")));
548
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("disable")));
549
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("drawArrays")));
550
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("drawElements")));
551
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("enableVertexAttribArray")));
552
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("enable")));
553
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("finish")));
554
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("flush")));
555
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("framebufferRenderbuffer")));
556
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("framebufferTexture2D")));
557
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("frontFace")));
558
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("generateMipmap")));
559
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getActiveAttrib")));
560
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getActiveUniform")));
561
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getAttachedShaders")));
562
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getAttribLocation")));
563
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getBufferParameter")));
564
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getContextAttributes")));
565
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getError")));
566
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getExtension")));
567
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getFramebufferAttachmentParameter")));
568
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getParameter")));
569
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getProgramInfoLog")));
570
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getProgramParameter")));
571
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getRenderbufferParameter")));
572
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getShaderInfoLog")));
573
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getShaderParameter")));
574
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getShaderPrecisionFormat")));
575
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getShaderSource")));
576
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getSupportedExtensions")));
577
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getTexParameter")));
578
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getUniformLocation")));
579
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getUniform")));
580
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getVertexAttribOffset")));
581
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("getVertexAttrib")));
582
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("hint")));
583
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isBuffer")));
584
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isContextLost")));
585
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isEnabled")));
586
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isFramebuffer")));
587
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isProgram")));
588
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isRenderbuffer")));
589
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isShader")));
590
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("isTexture")));
591
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("lineWidth")));
592
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("linkProgram")));
593
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("pixelStorei")));
594
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("polygonOffset")));
595
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("readPixels")));
596
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("renderbufferStorage")));
597
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("sampleCoverage")));
598
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("scissor")));
599
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("shaderSource")));
600
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stencilFuncSeparate")));
601
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stencilFunc")));
602
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stencilMaskSeparate")));
603
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stencilMask")));
604
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stencilOpSeparate")));
605
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("stencilOp")));
606
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("texImage2D")));
607
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("texParameterf")));
608
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("texParameteri")));
609
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("texSubImage2D")));
610
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform1f")));
611
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform1iv")));
612
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform1fv")));
613
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform1i")));
614
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform2f")));
615
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform2iv")));
616
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform2fv")));
617
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform2i")));
618
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform3f")));
619
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform3iv")));
620
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform3fv")));
621
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform3i")));
622
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform4f")));
623
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform4iv")));
624
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform4fv")));
625
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniform4i")));
626
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniformMatrix2fv")));
627
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniformMatrix3fv")));
628
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("uniformMatrix4fv")));
629
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("useProgram")));
630
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("validateProgram")));
631
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib1f")));
632
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib1fv")));
633
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib2f")));
634
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib2fv")));
635
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib3f")));
636
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib3fv")));
637
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib4f")));
638
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttrib4fv")));
639
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("vertexAttribPointer")));
640
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("viewport")));
641
- ret.push_back(jsi::PropNameID::forUtf8(rt, std::string("__toDataURL")));
642
-
643
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_BUFFER_BIT"));
644
-
645
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BUFFER_BIT"));
646
-
647
- ret.push_back(jsi::PropNameID::forUtf8(rt, "COLOR_BUFFER_BIT"));
648
-
649
- ret.push_back(jsi::PropNameID::forUtf8(rt, "POINTS"));
650
-
651
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINES"));
652
-
653
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINE_LOOP"));
654
-
655
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINE_STRIP"));
656
-
657
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TRIANGLES"));
658
-
659
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TRIANGLE_STRIP"));
660
-
661
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TRIANGLE_FAN"));
662
-
663
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ZERO"));
664
-
665
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE"));
666
-
667
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SRC_COLOR"));
668
-
669
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE_MINUS_SRC_COLOR"));
670
-
671
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SRC_ALPHA"));
672
-
673
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE_MINUS_SRC_ALPHA"));
674
-
675
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DST_ALPHA"));
676
-
677
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE_MINUS_DST_ALPHA"));
678
-
679
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DST_COLOR"));
680
-
681
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE_MINUS_DST_COLOR"));
682
-
683
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SRC_ALPHA_SATURATE"));
684
-
685
-
686
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CONSTANT_COLOR"));
687
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE_MINUS_CONSTANT_COLOR"));
688
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CONSTANT_ALPHA"));
689
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ONE_MINUS_CONSTANT_ALPHA"));
690
-
691
-
692
- /* Blending equations */
693
-
694
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FUNC_ADD"));
695
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FUNC_SUBTRACT"));
696
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FUNC_REVERSE_SUBTRACT"));
697
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_EQUATION"));
698
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_EQUATION_RGB"));
699
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_EQUATION_ALPHA"));
700
-
701
-
702
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_DST_RGB"));
703
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_SRC_RGB"));
704
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_DST_ALPHA"));
705
-
706
-
707
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_SRC_ALPHA"));
708
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND_COLOR"));
709
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ARRAY_BUFFER_BINDING"));
710
-
711
-
712
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ELEMENT_ARRAY_BUFFER_BINDING"));
713
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINE_WIDTH"));
714
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ALIASED_POINT_SIZE_RANGE"));
715
-
716
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ALIASED_LINE_WIDTH_RANGE"));
717
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CULL_FACE_MODE"));
718
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRONT_FACE"));
719
-
720
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_RANGE"));
721
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_WRITEMASK"));
722
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_CLEAR_VALUE"));
723
-
724
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_FUNC"));
725
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_CLEAR_VALUE"));
726
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_FUNC"));
727
-
728
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_FAIL"));
729
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_PASS_DEPTH_FAIL"));
730
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_PASS_DEPTH_PASS"));
731
-
732
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_REF"));
733
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_VALUE_MASK"));
734
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_WRITEMASK"));
735
-
736
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_FUNC"));
737
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_FAIL"));
738
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_PASS_DEPTH_FAIL"));
739
-
740
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_PASS_DEPTH_PASS"));
741
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_REF"));
742
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_VALUE_MASK"));
743
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BACK_WRITEMASK"));
744
-
745
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VIEWPORT"));
746
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SCISSOR_BOX"));
747
- ret.push_back(jsi::PropNameID::forUtf8(rt, "COLOR_CLEAR_VALUE"));
748
- ret.push_back(jsi::PropNameID::forUtf8(rt, "COLOR_WRITEMASK"));
749
-
750
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNPACK_ALIGNMENT"));
751
- ret.push_back(jsi::PropNameID::forUtf8(rt, "PACK_ALIGNMENT"));
752
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_TEXTURE_SIZE"));
753
-
754
-
755
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_VIEWPORT_DIMS"));
756
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SUBPIXEL_BITS"));
757
-
758
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RED_BITS"));
759
- ret.push_back(jsi::PropNameID::forUtf8(rt, "GREEN_BITS"));
760
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLUE_BITS"));
761
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ALPHA_BITS"));
762
-
763
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_BITS"));
764
- ret.push_back(jsi::PropNameID::forUtf8(rt, "POLYGON_OFFSET_UNITS"));
765
- ret.push_back(jsi::PropNameID::forUtf8(rt, "POLYGON_OFFSET_FACTOR"));
766
-
767
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_BINDING_2D"));
768
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLE_BUFFERS"));
769
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLES"));
770
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLE_COVERAGE_VALUE"));
771
-
772
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLE_COVERAGE_INVERT"));
773
- ret.push_back(jsi::PropNameID::forUtf8(rt, "COMPRESSED_TEXTURE_FORMATS"));
774
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VENDOR"));
775
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERER"));
776
-
777
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERSION"));
778
- ret.push_back(jsi::PropNameID::forUtf8(rt, "IMPLEMENTATION_COLOR_READ_TYPE"));
779
- ret.push_back(jsi::PropNameID::forUtf8(rt, "IMPLEMENTATION_COLOR_READ_FORMAT"));
780
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BROWSER_DEFAULT_WEBGL"));
781
-
782
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STATIC_DRAW"));
783
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STREAM_DRAW"));
784
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DYNAMIC_DRAW"));
785
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ARRAY_BUFFER"));
786
-
787
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ELEMENT_ARRAY_BUFFER"));
788
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BUFFER_SIZE"));
789
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BUFFER_USAGE"));
790
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CURRENT_VERTEX_ATTRIB"));
791
-
792
-
793
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_ENABLED"));
794
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_SIZE"));
795
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_STRIDE"));
796
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_TYPE"));
797
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_NORMALIZED"));
798
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_POINTER"));
799
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_ATTRIB_ARRAY_BUFFER_BINDING"));
800
-
801
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CULL_FACE"));
802
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRONT"));
803
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BACK"));
804
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRONT_AND_BACK"));
805
-
806
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BLEND"));
807
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_TEST"));
808
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DITHER"));
809
- ret.push_back(jsi::PropNameID::forUtf8(rt, "POLYGON_OFFSET_FILL"));
810
-
811
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLE_ALPHA_TO_COVERAGE"));
812
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLE_COVERAGE"));
813
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SCISSOR_TEST"));
814
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_TEST"));
815
-
816
-
817
- /* Errors */
818
-
819
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NO_ERROR"));
820
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INVALID_ENUM"));
821
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INVALID_VALUE"));
822
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INVALID_OPERATION"));
823
-
824
- ret.push_back(jsi::PropNameID::forUtf8(rt, "OUT_OF_MEMORY"));
825
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CONTEXT_LOST_WEBGL"));
826
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CW"));
827
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CCW"));
828
-
829
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DONT_CARE"));
830
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FASTEST"));
831
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NICEST"));
832
- ret.push_back(jsi::PropNameID::forUtf8(rt, "GENERATE_MIPMAP_HINT"));
833
-
834
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BYTE"));
835
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNSIGNED_BYTE"));
836
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SHORT"));
837
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNSIGNED_SHORT"));
838
-
839
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INT"));
840
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNSIGNED_INT"));
841
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT"));
842
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_COMPONENT"));
843
-
844
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ALPHA"));
845
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RGB"));
846
-
847
- /* Clearing buffers */
848
-
849
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RGBA"));
850
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LUMINANCE"));
851
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LUMINANCE_ALPHA"));
852
-
853
- /* Clearing buffers */
854
-
855
- /* Rendering primitives */
856
-
857
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNSIGNED_SHORT_4_4_4_4"));
858
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNSIGNED_SHORT_5_5_5_1"));
859
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNSIGNED_SHORT_5_6_5"));
860
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAGMENT_SHADER"));
861
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VERTEX_SHADER"));
862
- ret.push_back(jsi::PropNameID::forUtf8(rt, "COMPILE_STATUS"));
863
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DELETE_STATUS"));
864
-
865
- /* Rendering primitives */
866
-
867
- /* Blending modes */
868
-
869
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINK_STATUS"));
870
- ret.push_back(jsi::PropNameID::forUtf8(rt, "VALIDATE_STATUS"));
871
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ATTACHED_SHADERS"));
872
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ACTIVE_ATTRIBUTES"));
873
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ACTIVE_UNIFORMS"));
874
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_VERTEX_ATTRIBS"));
875
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_VERTEX_UNIFORM_VECTORS"));
876
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_VARYING_VECTORS"));
877
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_COMBINED_TEXTURE_IMAGE_UNITS"));
878
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_VERTEX_TEXTURE_IMAGE_UNITS"));
879
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_TEXTURE_IMAGE_UNITS"));
880
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_FRAGMENT_UNIFORM_VECTORS"));
881
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SHADER_TYPE"));
882
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SHADING_LANGUAGE_VERSION"));
883
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CURRENT_PROGRAM"));
884
-
885
- /* Blending modes */
886
-
887
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NEVER"));
888
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LESS"));
889
- ret.push_back(jsi::PropNameID::forUtf8(rt, "EQUAL"));
890
-
891
- /* Blending equations */
892
-
893
- /* Getting GL parameter information */
894
-
895
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LEQUAL"));
896
- ret.push_back(jsi::PropNameID::forUtf8(rt, "GREATER"));
897
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NOTEQUAL"));
898
- ret.push_back(jsi::PropNameID::forUtf8(rt, "GEQUAL"));
899
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ALWAYS"));
900
- ret.push_back(jsi::PropNameID::forUtf8(rt, "KEEP"));
901
- ret.push_back(jsi::PropNameID::forUtf8(rt, "REPLACE"));
902
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INCR"));
903
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DECR"));
904
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INVERT"));
905
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INCR_WRAP"));
906
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DECR_WRAP"));
907
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NEAREST"));
908
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINEAR"));
909
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NEAREST_MIPMAP_NEAREST"));
910
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINEAR_MIPMAP_NEAREST"));
911
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NEAREST_MIPMAP_LINEAR"));
912
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LINEAR_MIPMAP_LINEAR"));
913
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_MAG_FILTER"));
914
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_MIN_FILTER"));
915
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_WRAP_S"));
916
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_WRAP_T"));
917
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_2D"));
918
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE"));
919
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP"));
920
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_BINDING_CUBE_MAP"));
921
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP_POSITIVE_X"));
922
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP_NEGATIVE_X"));
923
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP_POSITIVE_Y"));
924
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP_NEGATIVE_Y"));
925
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP_POSITIVE_Z"));
926
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE_CUBE_MAP_NEGATIVE_Z"));
927
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_CUBE_MAP_TEXTURE_SIZE"));
928
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE0"));
929
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE1"));
930
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE2"));
931
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE3"));
932
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE4"));
933
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE5"));
934
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE6"));
935
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE7"));
936
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE8"));
937
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE9"));
938
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE10"));
939
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE11"));
940
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE12"));
941
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE13"));
942
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE14"));
943
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE15"));
944
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE16"));
945
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE17"));
946
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE18"));
947
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE19"));
948
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE20"));
949
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE21"));
950
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE22"));
951
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE23"));
952
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE24"));
953
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE25"));
954
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE26"));
955
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE27"));
956
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE28"));
957
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE29"));
958
-
959
- /* Getting GL parameter information */
960
-
961
- /* Buffers */
962
-
963
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE30"));
964
- ret.push_back(jsi::PropNameID::forUtf8(rt, "TEXTURE31"));
965
- ret.push_back(jsi::PropNameID::forUtf8(rt, "ACTIVE_TEXTURE"));
966
- ret.push_back(jsi::PropNameID::forUtf8(rt, "REPEAT"));
967
- ret.push_back(jsi::PropNameID::forUtf8(rt, "CLAMP_TO_EDGE"));
968
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MIRRORED_REPEAT"));
969
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT_VEC2"));
970
-
971
- /* Buffers */
972
-
973
- /* Vertex attributes */
974
-
975
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT_VEC3"));
976
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT_VEC4"));
977
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INT_VEC2"));
978
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INT_VEC3"));
979
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INT_VEC4"));
980
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BOOL"));
981
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BOOL_VEC2"));
982
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BOOL_VEC3"));
983
-
984
- /* Vertex attributes */
985
-
986
- /* Culling */
987
-
988
- ret.push_back(jsi::PropNameID::forUtf8(rt, "BOOL_VEC4"));
989
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT_MAT2"));
990
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT_MAT3"));
991
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FLOAT_MAT4"));
992
-
993
- /* Culling */
994
-
995
- /* Enabling and disabling */
996
-
997
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLER_2D"));
998
- ret.push_back(jsi::PropNameID::forUtf8(rt, "SAMPLER_CUBE"));
999
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LOW_FLOAT"));
1000
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MEDIUM_FLOAT"));
1001
- ret.push_back(jsi::PropNameID::forUtf8(rt, "HIGH_FLOAT"));
1002
- ret.push_back(jsi::PropNameID::forUtf8(rt, "LOW_INT"));
1003
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MEDIUM_INT"));
1004
- ret.push_back(jsi::PropNameID::forUtf8(rt, "HIGH_INT"));
1005
-
1006
- /* Enabling and disabling */
1007
-
1008
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER"));
1009
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER"));
1010
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RGBA4"));
1011
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RGB5_A1"));
1012
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RGB565"));
1013
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_COMPONENT16"));
1014
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_INDEX8"));
1015
-
1016
- /* Errors */
1017
-
1018
- /* Front face directions */
1019
-
1020
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_STENCIL"));
1021
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_WIDTH"));
1022
-
1023
- /* Front face directions */
1024
-
1025
- /* Hints */
1026
-
1027
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_HEIGHT"));
1028
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_INTERNAL_FORMAT"));
1029
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_RED_SIZE"));
1030
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_GREEN_SIZE"));
1031
-
1032
- /* Hints */
1033
-
1034
- /* Data types */
1035
-
1036
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_BLUE_SIZE"));
1037
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_ALPHA_SIZE"));
1038
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_DEPTH_SIZE"));
1039
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_STENCIL_SIZE"));
1040
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE"));
1041
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_ATTACHMENT_OBJECT_NAME"));
1042
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL"));
1043
-
1044
- /* Data types */
1045
-
1046
- /* Pixel formats */
1047
-
1048
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE"));
1049
- ret.push_back(jsi::PropNameID::forUtf8(rt, "COLOR_ATTACHMENT0"));
1050
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_ATTACHMENT"));
1051
- ret.push_back(jsi::PropNameID::forUtf8(rt, "STENCIL_ATTACHMENT"));
1052
- ret.push_back(jsi::PropNameID::forUtf8(rt, "DEPTH_STENCIL_ATTACHMENT"));
1053
- ret.push_back(jsi::PropNameID::forUtf8(rt, "NONE"));
1054
-
1055
- /* Pixel formats */
1056
-
1057
- /* Pixel types */
1058
-
1059
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_COMPLETE"));
1060
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_INCOMPLETE_ATTACHMENT"));
1061
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT"));
1062
-
1063
- /* Pixel types */
1064
-
1065
- /* Shaders */
1066
-
1067
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_INCOMPLETE_DIMENSIONS"));
1068
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_UNSUPPORTED"));
1069
- ret.push_back(jsi::PropNameID::forUtf8(rt, "FRAMEBUFFER_BINDING"));
1070
- ret.push_back(jsi::PropNameID::forUtf8(rt, "RENDERBUFFER_BINDING"));
1071
- ret.push_back(jsi::PropNameID::forUtf8(rt, "MAX_RENDERBUFFER_SIZE"));
1072
- ret.push_back(jsi::PropNameID::forUtf8(rt, "INVALID_FRAMEBUFFER_OPERATION"));
1073
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNPACK_FLIP_Y_WEBGL"));
1074
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNPACK_PREMULTIPLY_ALPHA_WEBGL"));
1075
- ret.push_back(jsi::PropNameID::forUtf8(rt, "UNPACK_COLORSPACE_CONVERSION_WEBGL"));
1076
-
1077
-
1078
- /* GL 1 */
1079
-
1080
-
1081
- return ret;
1082
- }
1083
-
1084
- jsi::Value WebGL2RenderingContext::get(jsi::Runtime &runtime, const jsi::PropNameID &name) {
1085
- auto methodName = name.utf8(runtime);
1086
-
1087
- auto prop = GetProperty(methodName);
1088
-
1089
-
1090
- if (methodName == "beginQuery") {
1091
- return jsi::Function::createFromHostFunction(runtime,
1092
- jsi::PropNameID::forAscii(runtime, methodName),
1093
- 2,
1094
- [this](jsi::Runtime &runtime,
1095
- const jsi::Value &thisValue,
1096
- const jsi::Value *arguments,
1097
- size_t count) -> jsi::Value {
1098
-
1099
- if (count > 1 && arguments[0].isNumber() &&
1100
- arguments[1].isObject()) {
1101
- auto target = (uint32_t) arguments[0].asNumber();
1102
- auto queryObject = arguments[1].asObject(
1103
- runtime);
1104
-
1105
- if (queryObject.isHostObject(
1106
- runtime)) {
1107
- auto query = queryObject.asHostObject<WebGLQuery>(
1108
- runtime);
1109
- canvas_native_webgl2_begin_query(
1110
- target,
1111
- query->GetQuery(),
1112
- this->GetState()
1113
- );
1114
- }
1115
- }
1116
- return jsi::Value::undefined();
1117
- }
1118
- );
1119
- } else if (methodName == "beginTransformFeedback") {
1120
- return jsi::Function::createFromHostFunction(runtime,
1121
- jsi::PropNameID::forAscii(runtime, methodName),
1122
- 1,
1123
- [this](jsi::Runtime &runtime,
1124
- const jsi::Value &thisValue,
1125
- const jsi::Value *arguments,
1126
- size_t count) -> jsi::Value {
1127
-
1128
- if (count > 0 && arguments[0].isNumber()) {
1129
- canvas_native_webgl2_begin_transform_feedback(
1130
- (uint32_t) arguments[0].asNumber(),
1131
- this->GetState()
1132
- );
1133
- }
1134
-
1135
- return jsi::Value::undefined();
1136
- }
1137
- );
1138
- } else if (methodName == "bindBufferBase") {
1139
- return jsi::Function::createFromHostFunction(runtime,
1140
- jsi::PropNameID::forAscii(runtime, methodName),
1141
- 3,
1142
- [this](jsi::Runtime &runtime,
1143
- const jsi::Value &thisValue,
1144
- const jsi::Value *arguments,
1145
- size_t count) -> jsi::Value {
1146
-
1147
- if (count > 2 && arguments[2].isObject()) {
1148
- auto target = (uint32_t) arguments[0].asNumber();
1149
- auto index = (uint32_t) arguments[1].asNumber();
1150
- auto bufferObject = arguments[2].asObject(
1151
- runtime);
1152
- if (bufferObject.isHostObject(
1153
- runtime)) {
1154
- auto buffer = bufferObject.asHostObject<WebGLBuffer>(
1155
- runtime);
1156
-
1157
- canvas_native_webgl2_bind_buffer_base(
1158
- target,
1159
- index,
1160
- buffer->GetBuffer(),
1161
- this->GetState()
1162
- );
1163
- }
1164
- }
1165
-
1166
- return jsi::Value::undefined();
1167
- }
1168
- );
1169
- } else if (methodName == "bindBufferRange") {
1170
- return jsi::Function::createFromHostFunction(runtime,
1171
- jsi::PropNameID::forAscii(runtime, methodName),
1172
- 5,
1173
- [this](jsi::Runtime &runtime,
1174
- const jsi::Value &thisValue,
1175
- const jsi::Value *arguments,
1176
- size_t count) -> jsi::Value {
1177
-
1178
- if (count > 4 && arguments[2].isObject()) {
1179
- auto target = (uint32_t) arguments[0].asNumber();
1180
- auto index = (uint32_t) arguments[1].asNumber();
1181
- auto offset = arguments[3].asNumber();
1182
- auto size = arguments[4].asNumber();
1183
- auto bufferObject = arguments[2].asObject(
1184
- runtime);
1185
- if (bufferObject.isHostObject(
1186
- runtime)) {
1187
- auto buffer = bufferObject.asHostObject<WebGLBuffer>(
1188
- runtime);
1189
- canvas_native_webgl2_bind_buffer_range(
1190
- target,
1191
- index,
1192
- buffer->GetBuffer(),
1193
- static_cast<ssize_t>(offset),
1194
- static_cast<ssize_t>(size),
1195
- this->GetState()
1196
- );
1197
- }
1198
- }
1199
-
1200
- return jsi::Value::undefined();
1201
-
1202
- }
1203
- );
1204
- } else if (methodName == "bindSampler") {
1205
- return jsi::Function::createFromHostFunction(runtime,
1206
- jsi::PropNameID::forAscii(runtime, methodName),
1207
- 2,
1208
- [this](jsi::Runtime &runtime,
1209
- const jsi::Value &thisValue,
1210
- const jsi::Value *arguments,
1211
- size_t count) -> jsi::Value {
1212
-
1213
- if (count > 1 && arguments[1].isObject()) {
1214
- auto samplerObject = arguments[1].asObject(
1215
- runtime);
1216
- if (samplerObject.isHostObject(
1217
- runtime)) {
1218
- auto unit = (uint32_t) arguments[0].asNumber();
1219
- auto sampler = samplerObject.asHostObject<WebGLSampler>(
1220
- runtime);
1221
-
1222
- canvas_native_webgl2_bind_sampler(
1223
- unit,
1224
- sampler->GetSampler(),
1225
- this->GetState()
1226
- );
1227
- }
1228
- }
1229
-
1230
- return jsi::Value::undefined();
1231
-
1232
- }
1233
- );
1234
- } else if (methodName == "bindTransformFeedback") {
1235
- return jsi::Function::createFromHostFunction(runtime,
1236
- jsi::PropNameID::forAscii(runtime, methodName),
1237
- 2,
1238
- [this](jsi::Runtime &runtime,
1239
- const jsi::Value &thisValue,
1240
- const jsi::Value *arguments,
1241
- size_t count) -> jsi::Value {
1242
-
1243
- if (count > 1 && arguments[1].isObject()) {
1244
- auto transformFeedbackObject = arguments[1].asObject(
1245
- runtime);
1246
- if (transformFeedbackObject.isHostObject(
1247
- runtime)) {
1248
- auto target = (uint32_t) arguments[0].asNumber();
1249
- auto transformFeedback = transformFeedbackObject.asHostObject<WebGLTransformFeedback>(
1250
- runtime);
1251
-
1252
- canvas_native_webgl2_bind_transform_feedback(
1253
- target,
1254
- transformFeedback->GetFeedback(),
1255
- this->GetState()
1256
- );
1257
- }
1258
- }
1259
-
1260
- return jsi::Value::undefined();
1261
- }
1262
- );
1263
- } else if (methodName == "bindVertexArray") {
1264
- return jsi::Function::createFromHostFunction(runtime,
1265
- jsi::PropNameID::forAscii(runtime, methodName),
1266
- 3,
1267
- [this](jsi::Runtime &runtime,
1268
- const jsi::Value &thisValue,
1269
- const jsi::Value *arguments,
1270
- size_t count) -> jsi::Value {
1271
-
1272
- if (count > 0) {
1273
- if (arguments[0].isNull()) {
1274
- canvas_native_webgl2_bind_vertex_array(
1275
- 0,
1276
- this->GetState()
1277
- );
1278
- return jsi::Value::undefined();
1279
- }
1280
-
1281
- if (arguments[0].isObject()) {
1282
- auto vertexArrayObject = arguments[0].asObject(
1283
- runtime);
1284
- if (vertexArrayObject.isHostObject(
1285
- runtime)) {
1286
- auto vertexArray = vertexArrayObject.asHostObject<WebGLVertexArrayObject>(
1287
- runtime);
1288
-
1289
- if (vertexArray != nullptr) {
1290
-
1291
- canvas_native_webgl2_bind_vertex_array(
1292
- vertexArray->GetVertexArrayObject(),
1293
- this->GetState()
1294
- );
1295
- }
1296
- }
1297
- }
1298
-
1299
- }
1300
-
1301
- return jsi::Value::undefined();
1302
- }
1303
- );
1304
- } else if (methodName == "blitFramebuffer") {
1305
- return jsi::Function::createFromHostFunction(runtime,
1306
- jsi::PropNameID::forAscii(runtime, methodName),
1307
- 10,
1308
- [this](jsi::Runtime &runtime,
1309
- const jsi::Value &thisValue,
1310
- const jsi::Value *arguments,
1311
- size_t count) -> jsi::Value {
1312
-
1313
- if (count > 9) {
1314
- auto srcX0 = (int32_t) arguments[0].asNumber();
1315
- auto srcY0 = (int32_t) arguments[1].asNumber();
1316
-
1317
- auto srcX1 = (int32_t) arguments[2].asNumber();
1318
- auto srcY1 = (int32_t) arguments[3].asNumber();
1319
-
1320
- auto dstX0 = (int32_t) arguments[4].asNumber();
1321
- auto dstY0 = (int32_t) arguments[5].asNumber();
1322
-
1323
- auto dstX1 = (int32_t) arguments[6].asNumber();
1324
- auto dstY1 = (int32_t) arguments[7].asNumber();
1325
-
1326
- auto mask = (uint32_t) arguments[8].asNumber();
1327
- auto filter = (uint32_t) arguments[9].asNumber();
1328
- canvas_native_webgl2_blit_framebuffer(
1329
- srcX0,
1330
- srcY0,
1331
- srcX1,
1332
- srcY1,
1333
- dstX0,
1334
- dstY0,
1335
- dstX1,
1336
- dstY1,
1337
- mask,
1338
- filter,
1339
- this->GetState()
1340
- );
1341
- }
1342
-
1343
- return jsi::Value::undefined();
1344
-
1345
- }
1346
- );
1347
- } else if (methodName == "clearBufferfv") {
1348
- return jsi::Function::createFromHostFunction(runtime,
1349
- jsi::PropNameID::forAscii(runtime, methodName),
1350
- 3,
1351
- [this](jsi::Runtime &runtime,
1352
- const jsi::Value &thisValue,
1353
- const jsi::Value *arguments,
1354
- size_t count) -> jsi::Value {
1355
-
1356
- if (count > 2 && arguments[0].isObject() &&
1357
- arguments[1].isObject()) {
1358
- auto bufferObject = arguments[0].asObject(
1359
- runtime);
1360
- auto drawbuffer = (int32_t) arguments[1].asNumber();
1361
- auto values = arguments[2].asObject(
1362
- runtime);
1363
- if (bufferObject.isHostObject(
1364
- runtime)) {
1365
- auto buffer = bufferObject.asHostObject<WebGLBuffer>(
1366
- runtime);
1367
- if (values.isArray(runtime)) {
1368
- auto array = values.getArray(
1369
- runtime);
1370
- auto len = array.size(runtime);
1371
- rust::Vec<float> buf;
1372
- buf.reserve(len);
1373
- for (int j = 0; j < len; ++j) {
1374
- auto item = array.getValueAtIndex(
1375
- runtime, j);
1376
- if (!item.isNumber()) {
1377
- buf.push_back(
1378
- std::nanf(""));
1379
- } else {
1380
- buf.push_back(
1381
- static_cast<float>(item.asNumber())
1382
- );
1383
- }
1384
- }
1385
-
1386
- rust::Slice<const float> slice(
1387
- buf.data(),
1388
- buf.size());
1389
- canvas_native_webgl2_clear_bufferfv(
1390
- buffer->GetBuffer(),
1391
- drawbuffer,
1392
- slice,
1393
- this->GetState()
1394
- );
1395
-
1396
- } else if (values.isFloat32Array(
1397
- runtime)) {
1398
- auto buff = values.getTypedArray(
1399
- runtime);
1400
- auto slice = GetTypedArrayData<const float>(
1401
- runtime, buff);
1402
- canvas_native_webgl2_clear_bufferfv(
1403
- buffer->GetBuffer(),
1404
- drawbuffer,
1405
- slice,
1406
- this->GetState()
1407
- );
1408
- }
1409
- }
1410
- }
1411
-
1412
- return jsi::Value::undefined();
1413
- }
1414
- );
1415
- } else if (methodName == "clearBufferiv") {
1416
- return jsi::Function::createFromHostFunction(runtime,
1417
- jsi::PropNameID::forAscii(runtime, methodName),
1418
- 3,
1419
- [this](jsi::Runtime &runtime,
1420
- const jsi::Value &thisValue,
1421
- const jsi::Value *arguments,
1422
- size_t count) -> jsi::Value {
1423
-
1424
- if (count > 2 && arguments[0].isObject() &&
1425
- arguments[1].isObject()) {
1426
- auto bufferObject = arguments[0].asObject(
1427
- runtime);
1428
- auto drawbuffer = (int32_t) arguments[1].asNumber();
1429
- auto values = arguments[2].asObject(
1430
- runtime);
1431
- if (bufferObject.isHostObject(
1432
- runtime)) {
1433
- auto buffer = bufferObject.asHostObject<WebGLBuffer>(
1434
- runtime);
1435
- if (values.isArray(runtime)) {
1436
- auto array = values.getArray(
1437
- runtime);
1438
- auto len = array.size(runtime);
1439
- rust::Vec<int32_t> buf;
1440
- buf.reserve(len);
1441
- for (int j = 0; j < len; ++j) {
1442
- auto item = array.getValueAtIndex(
1443
- runtime, j);
1444
- buf.push_back(
1445
- static_cast<int32_t>(item.asNumber())
1446
- );
1447
- }
1448
- rust::Slice<const int32_t> slice(
1449
- buf.data(),
1450
- buf.size());
1451
-
1452
- canvas_native_webgl2_clear_bufferiv(
1453
- buffer->GetBuffer(),
1454
- drawbuffer,
1455
- slice,
1456
- this->GetState()
1457
- );
1458
-
1459
- } else if (values.isInt32Array(
1460
- runtime)) {
1461
- auto buff = values.getTypedArray(
1462
- runtime);
1463
- auto slice = GetTypedArrayData<const int32_t>(
1464
- runtime, buff);
1465
- canvas_native_webgl2_clear_bufferiv(
1466
- buffer->GetBuffer(),
1467
- drawbuffer,
1468
- slice,
1469
- this->GetState()
1470
- );
1471
- }
1472
- }
1473
- }
1474
-
1475
- return jsi::Value::undefined();
1476
- }
1477
- );
1478
- } else if (methodName == "clearBufferuiv") {
1479
- return jsi::Function::createFromHostFunction(runtime,
1480
- jsi::PropNameID::forAscii(runtime, methodName),
1481
- 3,
1482
- [this](jsi::Runtime &runtime,
1483
- const jsi::Value &thisValue,
1484
- const jsi::Value *arguments,
1485
- size_t count) -> jsi::Value {
1486
- if (count > 2 && arguments[0].isObject() &&
1487
- arguments[1].isObject()) {
1488
- auto bufferObject = arguments[0].asObject(
1489
- runtime);
1490
- auto drawbuffer = (int32_t) arguments[1].asNumber();
1491
- auto values = arguments[2].asObject(
1492
- runtime);
1493
- if (bufferObject.isHostObject(
1494
- runtime)) {
1495
- auto buffer = bufferObject.asHostObject<WebGLBuffer>(
1496
- runtime);
1497
- if (values.isArray(runtime)) {
1498
- auto array = values.getArray(
1499
- runtime);
1500
- auto len = array.size(runtime);
1501
- rust::Vec<uint32_t> buf;
1502
- buf.reserve(len);
1503
- for (int j = 0; j < len; ++j) {
1504
- auto item = array.getValueAtIndex(
1505
- runtime, j);
1506
- buf.push_back(
1507
- static_cast<uint32_t>(item.asNumber())
1508
- );
1509
- }
1510
-
1511
- rust::Slice<const uint32_t> slice(
1512
- buf.data(),
1513
- buf.size());
1514
-
1515
- canvas_native_webgl2_clear_bufferuiv(
1516
- buffer->GetBuffer(),
1517
- drawbuffer,
1518
- slice,
1519
- this->GetState()
1520
- );
1521
-
1522
- } else if (values.isUint32Array(
1523
- runtime)) {
1524
- auto buff = values.getTypedArray(
1525
- runtime);
1526
- auto slice = GetTypedArrayData<const uint32_t>(
1527
- runtime, buff);
1528
- canvas_native_webgl2_clear_bufferuiv(
1529
- buffer->GetBuffer(),
1530
- drawbuffer,
1531
- slice,
1532
- this->GetState()
1533
- );
1534
- }
1535
- }
1536
- }
1537
- return jsi::Value::undefined();
1538
-
1539
- }
1540
- );
1541
- } else if (methodName == "clientWaitSync") {
1542
- return jsi::Function::createFromHostFunction(runtime,
1543
- jsi::PropNameID::forAscii(runtime, methodName),
1544
- 3,
1545
- [this](jsi::Runtime &runtime,
1546
- const jsi::Value &thisValue,
1547
- const jsi::Value *arguments,
1548
- size_t count) -> jsi::Value {
1549
-
1550
-
1551
- if (count > 2 && arguments[0].isObject()) {
1552
- auto syncObject = arguments[0].asObject(
1553
- runtime);
1554
-
1555
- if (syncObject.isHostObject(runtime)) {
1556
- auto sync = syncObject.asHostObject<WebGLSyncImpl>(
1557
- runtime);
1558
- if (sync != nullptr) {
1559
- auto flags = (uint32_t) arguments[1].asNumber();
1560
- auto timeout = arguments[2].asNumber();
1561
- auto ret = canvas_native_webgl2_client_wait_sync(
1562
- sync->GetSync(),
1563
- flags,
1564
- static_cast<ssize_t>(timeout),
1565
- this->GetState()
1566
- );
1567
- return {(int32_t) ret};
1568
- }
1569
- }
1570
- }
1571
- // todo decide if WAIT_FAILED should be returned here
1572
- return jsi::Value::undefined();
1573
- }
1574
- );
1575
- } else if (methodName == "compressedTexSubImage3D") {
1576
- return jsi::Function::createFromHostFunction(runtime,
1577
- jsi::PropNameID::forAscii(runtime, methodName),
1578
- 12,
1579
- [this](jsi::Runtime &runtime,
1580
- const jsi::Value &thisValue,
1581
- const jsi::Value *arguments,
1582
- size_t count) -> jsi::Value {
1583
- if (count > 8) {
1584
- auto target = (uint32_t) arguments[0].asNumber();
1585
- auto level = (int32_t) arguments[1].asNumber();
1586
- auto xoffset = (int32_t) arguments[2].asNumber();
1587
- auto yoffset = (int32_t) arguments[3].asNumber();
1588
- auto zoffset = (int32_t) arguments[4].asNumber();
1589
- auto width = (int32_t) arguments[5].asNumber();
1590
- auto height = (int32_t) arguments[6].asNumber();
1591
- auto depth = (int32_t) arguments[7].asNumber();
1592
- auto format = (uint32_t) arguments[8].asNumber();
1593
-
1594
- if (arguments[9].isObject()) {
1595
- auto imageSizeOrBuf = arguments[9].asObject(
1596
- runtime);
1597
- if (imageSizeOrBuf.isTypedArray(
1598
- runtime)) {
1599
- auto array = imageSizeOrBuf.getTypedArray(
1600
- runtime);
1601
- auto slice = GetTypedArrayData<const uint8_t>(
1602
- runtime, array);
1603
-
1604
- size_t srcOffset = 0;
1605
- if (arguments[10].isNumber()) {
1606
- srcOffset = static_cast<size_t>(arguments[10].asNumber());
1607
- }
1608
- size_t srcLengthOverride = 0;
1609
- if (arguments[11].isNumber()) {
1610
- srcLengthOverride = static_cast<size_t>(arguments[11].asNumber());
1611
- }
1612
-
1613
-
1614
- canvas_native_webgl2_compressed_tex_sub_image3d(
1615
- target,
1616
- level,
1617
- xoffset,
1618
- yoffset,
1619
- zoffset,
1620
- width,
1621
- height,
1622
- depth,
1623
- format,
1624
- slice,
1625
- srcOffset,
1626
- srcLengthOverride,
1627
- this->GetState()
1628
- );
1629
- }
1630
- } else {
1631
- auto imageSizeOrBuf = (int32_t) arguments[0].asNumber();
1632
- auto offset = 0;
1633
- if (arguments[10].isNumber()) {
1634
- offset = (int32_t) arguments[10].asNumber();
1635
- }
1636
- canvas_native_webgl2_compressed_tex_sub_image3d_none(
1637
- target,
1638
- level,
1639
- xoffset,
1640
- yoffset,
1641
- zoffset,
1642
- width,
1643
- height,
1644
- depth,
1645
- format,
1646
- imageSizeOrBuf,
1647
- offset,
1648
- this->GetState()
1649
- );
1650
- }
1651
- }
1652
- return jsi::Value::undefined();
1653
- }
1654
- );
1655
- } else if (methodName == "copyBufferSubData") {
1656
- return jsi::Function::createFromHostFunction(runtime,
1657
- jsi::PropNameID::forAscii(runtime, methodName),
1658
- 5,
1659
- [this](jsi::Runtime &runtime,
1660
- const jsi::Value &thisValue,
1661
- const jsi::Value *arguments,
1662
- size_t count) -> jsi::Value {
1663
- if (count > 4) {
1664
- auto readTarget = (uint32_t) arguments[0].asNumber();
1665
- auto writeTarget = (uint32_t) arguments[1].asNumber();
1666
- auto readOffset = arguments[2].asNumber();
1667
- auto writeOffset = arguments[3].asNumber();
1668
- auto size = arguments[4].asNumber();
1669
- canvas_native_webgl2_copy_buffer_sub_data(
1670
- readTarget,
1671
- writeTarget,
1672
- static_cast<ssize_t>(readOffset),
1673
- static_cast<ssize_t>(writeOffset),
1674
- static_cast<ssize_t>(size),
1675
- this->GetState()
1676
- );
1677
- }
1678
-
1679
- return jsi::Value::undefined();
1680
- }
1681
- );
1682
- } else if (methodName == "copyTexSubImage3D") {
1683
- return jsi::Function::createFromHostFunction(runtime,
1684
- jsi::PropNameID::forAscii(runtime, methodName),
1685
- 9,
1686
- [this](jsi::Runtime &runtime,
1687
- const jsi::Value &thisValue,
1688
- const jsi::Value *arguments,
1689
- size_t count) -> jsi::Value {
1690
-
1691
- if (count > 8) {
1692
- auto target = (uint32_t) arguments[0].asNumber();
1693
- auto level = (int32_t) arguments[1].asNumber();
1694
- auto xoffset = (int32_t) arguments[2].asNumber();
1695
- auto yoffset = (int32_t) arguments[3].asNumber();
1696
- auto zoffset = (int32_t) arguments[4].asNumber();
1697
- auto x = (int32_t) arguments[5].asNumber();
1698
- auto y = (int32_t) arguments[6].asNumber();
1699
- auto width = (int32_t) arguments[7].asNumber();
1700
- auto height = (int32_t) arguments[8].asNumber();
1701
- canvas_native_webgl2_copy_tex_sub_image3d(
1702
- target,
1703
- level,
1704
- xoffset,
1705
- yoffset,
1706
- zoffset,
1707
- x,
1708
- y,
1709
- width,
1710
- height,
1711
- this->GetState()
1712
- );
1713
- }
1714
-
1715
- return jsi::Value::undefined();
1716
- }
1717
- );
1718
- } else if (methodName == "createQuery") {
1719
- return jsi::Function::createFromHostFunction(runtime,
1720
- jsi::PropNameID::forAscii(runtime, methodName),
1721
- 0,
1722
- [this](jsi::Runtime &runtime,
1723
- const jsi::Value &thisValue,
1724
- const jsi::Value *arguments,
1725
- size_t count) -> jsi::Value {
1726
-
1727
- auto ret = canvas_native_webgl2_create_query(
1728
- this->GetState());
1729
- auto query = std::make_shared<WebGLQuery>(
1730
- ret);
1731
- return jsi::Object::createFromHostObject(
1732
- runtime, query);
1733
- }
1734
- );
1735
- } else if (methodName == "createSampler") {
1736
- return jsi::Function::createFromHostFunction(runtime,
1737
- jsi::PropNameID::forAscii(runtime, methodName),
1738
- 0,
1739
- [this](jsi::Runtime &runtime,
1740
- const jsi::Value &thisValue,
1741
- const jsi::Value *arguments,
1742
- size_t count) -> jsi::Value {
1743
- auto ret = canvas_native_webgl2_create_sampler(
1744
- this->GetState());
1745
- auto sampler = std::make_shared<WebGLSampler>(
1746
- ret);
1747
- return jsi::Object::createFromHostObject(
1748
- runtime, sampler);
1749
- }
1750
- );
1751
- } else if (methodName == "createTransformFeedback") {
1752
- return jsi::Function::createFromHostFunction(runtime,
1753
- jsi::PropNameID::forAscii(runtime, methodName),
1754
- 0,
1755
- [this](jsi::Runtime &runtime,
1756
- const jsi::Value &thisValue,
1757
- const jsi::Value *arguments,
1758
- size_t count) -> jsi::Value {
1759
- auto ret = canvas_native_webgl2_create_transform_feedback(
1760
- this->GetState());
1761
-
1762
- auto feedback = std::make_shared<WebGLTransformFeedback>(
1763
- ret);
1764
- return jsi::Object::createFromHostObject(
1765
- runtime, feedback);
1766
- }
1767
- );
1768
- } else if (methodName == "createVertexArray") {
1769
- return jsi::Function::createFromHostFunction(runtime,
1770
- jsi::PropNameID::forAscii(runtime, methodName),
1771
- 0,
1772
- [this](jsi::Runtime &runtime,
1773
- const jsi::Value &thisValue,
1774
- const jsi::Value *arguments,
1775
- size_t count) -> jsi::Value {
1776
- auto ret = canvas_native_webgl2_create_vertex_array(
1777
- this->GetState());
1778
-
1779
- auto vertexArrayObject = std::make_shared<WebGLVertexArrayObject>(
1780
- ret);
1781
- return jsi::Object::createFromHostObject(
1782
- runtime, vertexArrayObject);
1783
- }
1784
- );
1785
- } else if (methodName == "clearBufferfi") {
1786
- return jsi::Function::createFromHostFunction(runtime,
1787
- jsi::PropNameID::forAscii(runtime, methodName),
1788
- 4,
1789
- [this](jsi::Runtime &runtime,
1790
- const jsi::Value &thisValue,
1791
- const jsi::Value *arguments,
1792
- size_t count) -> jsi::Value {
1793
-
1794
-
1795
- if (count > 3 && arguments[0].isObject()) {
1796
- auto bufferObject = arguments[0].asObject(
1797
- runtime);
1798
- if (bufferObject.isHostObject(
1799
- runtime)) {
1800
- auto buffer = bufferObject.asHostObject<WebGLBuffer>(
1801
- runtime);
1802
- if (buffer != nullptr) {
1803
- auto drawbuffer = (int32_t) arguments[1].asNumber();
1804
- auto depth = arguments[2].asNumber();
1805
- auto stencil = (int32_t) arguments[3].asNumber();
1806
- canvas_native_webgl2_clear_bufferfi(
1807
- buffer->GetBuffer(),
1808
- drawbuffer,
1809
- static_cast<float>(depth),
1810
- stencil,
1811
- this->GetState()
1812
- );
1813
- }
1814
-
1815
- }
1816
- }
1817
-
1818
- return jsi::Value::undefined();
1819
-
1820
- }
1821
- );
1822
- } else if (methodName == "deleteQuery") {
1823
- return jsi::Function::createFromHostFunction(runtime,
1824
- jsi::PropNameID::forAscii(runtime, methodName),
1825
- 1,
1826
- [this](jsi::Runtime &runtime,
1827
- const jsi::Value &thisValue,
1828
- const jsi::Value *arguments,
1829
- size_t count) -> jsi::Value {
1830
-
1831
- if (arguments[0].isObject()) {
1832
- auto queryObject = arguments[0].asObject(
1833
- runtime);
1834
- if (queryObject.isHostObject(
1835
- runtime)) {
1836
- auto query = queryObject.asHostObject<WebGLQuery>(
1837
- runtime);
1838
-
1839
- if (query != nullptr) {
1840
- canvas_native_webgl2_delete_query_with_query(
1841
- query->GetQuery(),
1842
- this->GetState()
1843
- );
1844
- }
1845
-
1846
- }
1847
- }
1848
-
1849
- return jsi::Value::undefined();
1850
- }
1851
- );
1852
- } else if (methodName == "deleteSampler") {
1853
- return jsi::Function::createFromHostFunction(runtime,
1854
- jsi::PropNameID::forAscii(runtime, methodName),
1855
- 1,
1856
- [this](jsi::Runtime &runtime,
1857
- const jsi::Value &thisValue,
1858
- const jsi::Value *arguments,
1859
- size_t count) -> jsi::Value {
1860
-
1861
- if (arguments[0].isObject()) {
1862
- auto samplerObject = arguments[0].asObject(
1863
- runtime);
1864
- if (samplerObject.isHostObject(
1865
- runtime)) {
1866
- auto sampler = samplerObject.asHostObject<WebGLSampler>(
1867
- runtime);
1868
-
1869
- if (sampler != nullptr) {
1870
- canvas_native_webgl2_delete_sampler_with_sampler(
1871
- sampler->GetSampler(),
1872
- this->GetState()
1873
- );
1874
- }
1875
- }
1876
- }
1877
-
1878
- return jsi::Value::undefined();
1879
- }
1880
- );
1881
- } else if (methodName == "deleteSync") {
1882
- return jsi::Function::createFromHostFunction(runtime,
1883
- jsi::PropNameID::forAscii(runtime, methodName),
1884
- 3,
1885
- [this](jsi::Runtime &runtime,
1886
- const jsi::Value &thisValue,
1887
- const jsi::Value *arguments,
1888
- size_t count) -> jsi::Value {
1889
-
1890
- if (arguments[0].isObject()) {
1891
- auto syncObject = arguments[0].asObject(
1892
- runtime);
1893
- if (syncObject.isHostObject(runtime)) {
1894
- auto sync = syncObject.asHostObject<WebGLSyncImpl>(
1895
- runtime);
1896
-
1897
- if (sync != nullptr) {
1898
- canvas_native_webgl2_delete_sync_with_sync(
1899
- sync->GetSync(),
1900
- this->GetState()
1901
- );
1902
- }
1903
- }
1904
- }
1905
- return jsi::Value::undefined();
1906
- }
1907
- );
1908
- } else if (methodName == "deleteTransformFeedback") {
1909
- return jsi::Function::createFromHostFunction(runtime,
1910
- jsi::PropNameID::forAscii(runtime, methodName),
1911
- 3,
1912
- [this](jsi::Runtime &runtime,
1913
- const jsi::Value &thisValue,
1914
- const jsi::Value *arguments,
1915
- size_t count) -> jsi::Value {
1916
-
1917
- if (arguments[0].isObject()) {
1918
- auto transformFeedbackObject = arguments[0].asObject(
1919
- runtime);
1920
- if (transformFeedbackObject.isHostObject(
1921
- runtime)) {
1922
- auto transformFeedback = transformFeedbackObject.asHostObject<WebGLTransformFeedback>(
1923
- runtime);
1924
-
1925
- if (transformFeedback != nullptr) {
1926
- canvas_native_webgl2_delete_transform_feedback(
1927
- transformFeedback->GetFeedback(),
1928
- this->GetState()
1929
- );
1930
- }
1931
-
1932
- }
1933
- }
1934
-
1935
- return jsi::Value::undefined();
1936
- }
1937
- );
1938
- } else if (methodName == "deleteVertexArray") {
1939
- return jsi::Function::createFromHostFunction(runtime,
1940
- jsi::PropNameID::forAscii(runtime, methodName),
1941
- 3,
1942
- [this](jsi::Runtime &runtime,
1943
- const jsi::Value &thisValue,
1944
- const jsi::Value *arguments,
1945
- size_t count) -> jsi::Value {
1946
-
1947
- if (arguments[0].isObject()) {
1948
- auto vertexArrayObject = arguments[0].asObject(
1949
- runtime);
1950
- if (vertexArrayObject.isHostObject(
1951
- runtime)) {
1952
- auto vertexArray = vertexArrayObject.asHostObject<WebGLVertexArrayObject>(
1953
- runtime);
1954
- if (vertexArray != nullptr) {
1955
- canvas_native_webgl2_delete_vertex_array_with_vertex_array(
1956
- vertexArray->GetVertexArrayObject(),
1957
- this->GetState()
1958
- );
1959
- }
1960
-
1961
- }
1962
- }
1963
-
1964
- return jsi::Value::undefined();
1965
- }
1966
- );
1967
- } else if (methodName == "drawArraysInstanced") {
1968
- return jsi::Function::createFromHostFunction(runtime,
1969
- jsi::PropNameID::forAscii(runtime, methodName),
1970
- 4,
1971
- [this](jsi::Runtime &runtime,
1972
- const jsi::Value &thisValue,
1973
- const jsi::Value *arguments,
1974
- size_t count) -> jsi::Value {
1975
-
1976
- if (count > 3) {
1977
- auto mode = (uint32_t) arguments[0].asNumber();
1978
- auto first = (int32_t) arguments[1].asNumber();
1979
- auto count_ = (int32_t) arguments[2].asNumber();
1980
- auto instanceCount = (int32_t) arguments[3].asNumber();
1981
- canvas_native_webgl2_draw_arrays_instanced(
1982
- mode,
1983
- first,
1984
- count_,
1985
- instanceCount,
1986
- this->GetState()
1987
- );
1988
-
1989
- this->UpdateInvalidateState();
1990
- }
1991
- return jsi::Value::undefined();
1992
- }
1993
- );
1994
- } else if (methodName == "drawBuffers") {
1995
- return jsi::Function::createFromHostFunction(runtime,
1996
- jsi::PropNameID::forAscii(runtime, methodName),
1997
- 1,
1998
- [this](jsi::Runtime &runtime,
1999
- const jsi::Value &thisValue,
2000
- const jsi::Value *arguments,
2001
- size_t count) -> jsi::Value {
2002
-
2003
-
2004
- if (arguments[0].isObject()) {
2005
- auto buffersObject = arguments[0].asObject(
2006
- runtime);
2007
- if (buffersObject.isArray(runtime)) {
2008
- auto array = buffersObject.getArray(
2009
- runtime);
2010
- auto len = array.size(runtime);
2011
- rust::Vec<uint32_t> buf;
2012
- buf.reserve(len);
2013
- for (int j = 0; j < len; ++j) {
2014
- auto item = array.getValueAtIndex(
2015
- runtime, j);
2016
- buf.emplace_back(
2017
- (uint32_t) item.asNumber());
2018
- }
2019
- rust::Slice<const uint32_t> slice(
2020
- buf.data(), buf.size());
2021
- canvas_native_webgl2_draw_buffers(
2022
- slice,
2023
- this->GetState());
2024
- }
2025
- }
2026
-
2027
- return jsi::Value::undefined();
2028
- }
2029
- );
2030
- } else if (methodName == "drawElementsInstanced") {
2031
- return jsi::Function::createFromHostFunction(runtime,
2032
- jsi::PropNameID::forAscii(runtime, methodName),
2033
- 5,
2034
- [this](jsi::Runtime &runtime,
2035
- const jsi::Value &thisValue,
2036
- const jsi::Value *arguments,
2037
- size_t count) -> jsi::Value {
2038
- if (count > 4) {
2039
- auto mode = (uint32_t) arguments[0].asNumber();
2040
- auto count_ = (int32_t) arguments[1].asNumber();
2041
- auto type = (uint32_t) arguments[2].asNumber();
2042
- auto offset = arguments[3].asNumber();
2043
- auto instanceCount = (int32_t) arguments[4].asNumber();
2044
- canvas_native_webgl2_draw_elements_instanced(
2045
- mode,
2046
- count_,
2047
- type,
2048
- static_cast<ssize_t>(offset),
2049
- instanceCount,
2050
- this->GetState()
2051
- );
2052
-
2053
- this->UpdateInvalidateState();
2054
- }
2055
- return jsi::Value::undefined();
2056
- }
2057
- );
2058
- } else if (methodName == "drawRangeElements") {
2059
- return jsi::Function::createFromHostFunction(runtime,
2060
- jsi::PropNameID::forAscii(runtime, methodName),
2061
- 6,
2062
- [this](jsi::Runtime &runtime,
2063
- const jsi::Value &thisValue,
2064
- const jsi::Value *arguments,
2065
- size_t count) -> jsi::Value {
2066
- if (count > 5) {
2067
- auto mode = (uint32_t) arguments[0].asNumber();
2068
- auto start = (uint32_t) arguments[1].asNumber();
2069
- auto end = (uint32_t) arguments[2].asNumber();
2070
- auto count_ = (int32_t) arguments[3].asNumber();
2071
- auto type = (uint32_t) arguments[4].asNumber();
2072
- auto offset = arguments[5].asNumber();
2073
- canvas_native_webgl2_draw_range_elements(
2074
- mode,
2075
- start,
2076
- end,
2077
- count_,
2078
- type,
2079
- static_cast<ssize_t>(offset),
2080
- this->GetState()
2081
- );
2082
-
2083
- this->UpdateInvalidateState();
2084
- }
2085
- return jsi::Value::undefined();
2086
- }
2087
- );
2088
- } else if (methodName == "endQuery") {
2089
- return jsi::Function::createFromHostFunction(runtime,
2090
- jsi::PropNameID::forAscii(runtime, methodName),
2091
- 1,
2092
- [this](jsi::Runtime &runtime,
2093
- const jsi::Value &thisValue,
2094
- const jsi::Value *arguments,
2095
- size_t count) -> jsi::Value {
2096
-
2097
-
2098
- if (arguments[0].isNumber()) {
2099
- auto target = (uint32_t) arguments[0].asNumber();
2100
- canvas_native_webgl2_end_query(target,
2101
- this->GetState());
2102
- }
2103
-
2104
- return jsi::Value::undefined();
2105
- }
2106
- );
2107
- } else if (methodName == "endTransformFeedback") {
2108
- return jsi::Function::createFromHostFunction(runtime,
2109
- jsi::PropNameID::forAscii(runtime, methodName),
2110
- 03,
2111
- [this](jsi::Runtime &runtime,
2112
- const jsi::Value &thisValue,
2113
- const jsi::Value *arguments,
2114
- size_t count) -> jsi::Value {
2115
- canvas_native_webgl2_end_transform_feedback(
2116
- this->GetState());
2117
- return jsi::Value::undefined();
2118
- }
2119
- );
2120
- } else if (methodName == "fenceSync") {
2121
- return jsi::Function::createFromHostFunction(runtime,
2122
- jsi::PropNameID::forAscii(runtime, methodName),
2123
- 2,
2124
- [this](jsi::Runtime &runtime,
2125
- const jsi::Value &thisValue,
2126
- const jsi::Value *arguments,
2127
- size_t count) -> jsi::Value {
2128
-
2129
- if (count > 1) {
2130
- auto condition = (uint32_t) arguments[0].asNumber();
2131
- auto flags = (uint32_t) arguments[1].asNumber();
2132
- canvas_native_webgl2_fence_sync(
2133
- condition,
2134
- flags,
2135
- this->GetState()
2136
- );
2137
- }
2138
-
2139
- return jsi::Value::undefined();
2140
- }
2141
- );
2142
- } else if (methodName == "framebufferTextureLayer") {
2143
- return jsi::Function::createFromHostFunction(runtime,
2144
- jsi::PropNameID::forAscii(runtime, methodName),
2145
- 5,
2146
- [this](jsi::Runtime &runtime,
2147
- const jsi::Value &thisValue,
2148
- const jsi::Value *arguments,
2149
- size_t count) -> jsi::Value {
2150
-
2151
-
2152
- if (count > 4 && arguments[2].isObject()) {
2153
- auto textureObject = arguments[2].asObject(
2154
- runtime);
2155
- if (textureObject.isHostObject(
2156
- runtime)) {
2157
- auto target = (uint32_t) arguments[0].asNumber();
2158
- auto attachment = (uint32_t) arguments[1].asNumber();
2159
- auto texture = textureObject.asHostObject<WebGLTexture>(
2160
- runtime);
2161
- auto level = (int32_t) arguments[3].asNumber();
2162
- auto layer = (int32_t) arguments[4].asNumber();
2163
- if (texture != nullptr) {
2164
- canvas_native_webgl2_framebuffer_texture_layer(
2165
- target,
2166
- attachment,
2167
- texture->GetTexture(),
2168
- level,
2169
- layer,
2170
- this->GetState()
2171
- );
2172
- }
2173
- }
2174
-
2175
- }
2176
-
2177
- return jsi::Value::undefined();
2178
- }
2179
- );
2180
- } else if (methodName == "getActiveUniformBlockName") {
2181
- return jsi::Function::createFromHostFunction(runtime,
2182
- jsi::PropNameID::forAscii(runtime, methodName),
2183
- 2,
2184
- [this](jsi::Runtime &runtime,
2185
- const jsi::Value &thisValue,
2186
- const jsi::Value *arguments,
2187
- size_t count) -> jsi::Value {
2188
-
2189
-
2190
- if (count > 1) {
2191
- auto program = getHostObject<WebGLProgram>(
2192
- runtime, arguments[0]);
2193
- if (program != nullptr) {
2194
- auto uniformBlockIndex = (uint32_t) arguments[1].asNumber();
2195
- auto name = canvas_native_webgl2_get_active_uniform_block_name(
2196
- program->GetProgram(),
2197
- uniformBlockIndex,
2198
- this->GetState()
2199
- );
2200
- return jsi::String::createFromAscii(
2201
- runtime, name.data(),
2202
- name.size());
2203
- }
2204
-
2205
- }
2206
-
2207
- return jsi::Value::undefined();
2208
- }
2209
- );
2210
- } else if (methodName == "getActiveUniformBlockParameter") {
2211
- return jsi::Function::createFromHostFunction(runtime,
2212
- jsi::PropNameID::forAscii(runtime, methodName),
2213
- 3,
2214
- [this](jsi::Runtime &runtime,
2215
- const jsi::Value &thisValue,
2216
- const jsi::Value *arguments,
2217
- size_t count) -> jsi::Value {
2218
-
2219
-
2220
- if (count > 2) {
2221
-
2222
- auto program = getHostObject<WebGLProgram>(
2223
- runtime, arguments[0]);
2224
-
2225
- if (program != nullptr) {
2226
- auto uniformBlockIndex = (uint32_t) arguments[1].asNumber();
2227
- auto pname = (uint32_t) arguments[2].asNumber();
2228
- auto ret = canvas_native_webgl2_get_active_uniform_block_parameter(
2229
- program->GetProgram(),
2230
- uniformBlockIndex,
2231
- pname,
2232
- this->GetState()
2233
- );
2234
-
2235
- switch (pname) {
2236
- case GL_UNIFORM_BLOCK_BINDING:
2237
- case GL_UNIFORM_BLOCK_DATA_SIZE:
2238
- case GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS:
2239
- return {canvas_native_webgl_result_get_i32(
2240
- *ret)};
2241
- case GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: {
2242
- auto value = canvas_native_webgl_result_get_u32_array(
2243
- *ret);
2244
- auto buffer = std::make_shared<VecMutableBuffer<uint32_t>>(
2245
- std::move(value));
2246
- auto array = jsi::ArrayBuffer(
2247
- runtime, buffer);
2248
-
2249
- auto Uint32Array = runtime.global()
2250
- .getProperty(
2251
- runtime,
2252
- "Uint32Array")
2253
- .asObject(runtime)
2254
- .asFunction(
2255
- runtime);
2256
-
2257
-
2258
- return Uint32Array.callAsConstructor(
2259
- runtime, array);
2260
- }
2261
- case GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:
2262
- case GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:
2263
- return {canvas_native_webgl_result_get_bool(
2264
- *ret)};
2265
- default:
2266
- return jsi::Value::null();
2267
- }
2268
- }
2269
- }
2270
-
2271
- return jsi::Value::null();
2272
- }
2273
- );
2274
- } else if (methodName == "getActiveUniforms") {
2275
- return jsi::Function::createFromHostFunction(runtime,
2276
- jsi::PropNameID::forAscii(runtime, methodName),
2277
- 3,
2278
- [this](jsi::Runtime &runtime,
2279
- const jsi::Value &thisValue,
2280
- const jsi::Value *arguments,
2281
- size_t count) -> jsi::Value {
2282
-
2283
-
2284
- if (count > 2 && arguments[1].isObject()) {
2285
-
2286
- auto program = getHostObject<WebGLProgram>(
2287
- runtime, arguments[0]);
2288
- auto uniformIndicesObject = arguments[1].asObject(
2289
- runtime);
2290
- auto pname = (uint32_t) arguments[2].asNumber();
2291
-
2292
- if (uniformIndicesObject.isArray(
2293
- runtime)) {
2294
- auto uniformIndices = uniformIndicesObject.asArray(
2295
- runtime);
2296
- auto size = uniformIndices.size(
2297
- runtime);
2298
- rust::Vec<uint32_t> buf;
2299
- buf.reserve(size);
2300
- for (int j = 0; j < size; j++) {
2301
- auto item = (uint32_t) uniformIndices.getValueAtIndex(
2302
- runtime, j).asNumber();
2303
- buf.emplace_back(item);
2304
- }
2305
- rust::Slice<const uint32_t> slice(
2306
- buf.data(), buf.size());
2307
- auto ret = canvas_native_webgl2_get_active_uniforms(
2308
- program->GetProgram(),
2309
- slice,
2310
- pname,
2311
- this->GetState()
2312
- );
2313
-
2314
- switch (pname) {
2315
- case GL_UNIFORM_TYPE:
2316
- case GL_UNIFORM_SIZE: {
2317
- auto value = canvas_native_webgl_result_get_u32_array(
2318
- *ret);
2319
- auto array = jsi::Array(
2320
- runtime,
2321
- value.size());
2322
- auto len = value.size();
2323
- for (int j = 0;
2324
- j < len; ++j) {
2325
- auto item = value[j];
2326
- array.setValueAtIndex(
2327
- runtime, j,
2328
- jsi::Value(
2329
- (int32_t) item));
2330
- }
2331
- return array;
2332
- }
2333
- break;
2334
- case GL_UNIFORM_BLOCK_INDEX:
2335
- case GL_UNIFORM_OFFSET:
2336
- case GL_UNIFORM_ARRAY_STRIDE:
2337
- case GL_UNIFORM_MATRIX_STRIDE: {
2338
- auto value = canvas_native_webgl_result_get_i32_array(
2339
- *ret);
2340
- auto array = jsi::Array(
2341
- runtime,
2342
- value.size());
2343
- auto len = value.size();
2344
- for (int j = 0;
2345
- j < len; ++j) {
2346
- auto item = value[j];
2347
- array.setValueAtIndex(
2348
- runtime, j,
2349
- jsi::Value(
2350
- item));
2351
- }
2352
- return array;
2353
- }
2354
- case GL_UNIFORM_IS_ROW_MAJOR: {
2355
- auto value = canvas_native_webgl_result_get_bool_array(
2356
- *ret);
2357
- auto len = value.size();
2358
- auto array = jsi::Array(
2359
- runtime,
2360
- len);
2361
- for (int j = 0;
2362
- j < len; ++j) {
2363
- bool item =
2364
- value[j] == 1;
2365
- array.setValueAtIndex(
2366
- runtime, j,
2367
- jsi::Value(
2368
- item));
2369
- }
2370
- return array;
2371
- }
2372
- default:
2373
- return jsi::Value::null();
2374
- }
2375
- }
2376
-
2377
-
2378
- }
2379
- return jsi::Value::null();
2380
- }
2381
- );
2382
- } else if (methodName == "getBufferSubData") {
2383
- return jsi::Function::createFromHostFunction(runtime,
2384
- jsi::PropNameID::forAscii(runtime, methodName),
2385
- 4,
2386
- [this](jsi::Runtime &runtime,
2387
- const jsi::Value &thisValue,
2388
- const jsi::Value *arguments,
2389
- size_t count) -> jsi::Value {
2390
-
2391
-
2392
- if (count >= 3 &&
2393
- arguments[2].isObject()) {
2394
- auto target = (uint32_t) arguments[0].asNumber();
2395
- auto srcByteOffset = arguments[1].asNumber();
2396
- auto dstDataObject = arguments[2].asObject(
2397
- runtime);
2398
-
2399
- if (dstDataObject.isTypedArray(
2400
- runtime)) {
2401
- ssize_t dstOffsetValue = 0;
2402
- if (arguments[3].isNumber()) {
2403
- dstOffsetValue = static_cast<ssize_t>(arguments[3].asNumber());
2404
- }
2405
-
2406
- ssize_t lengthValue = 0;
2407
- if (arguments[4].isNumber()) {
2408
- lengthValue = static_cast<ssize_t>(arguments[4].asNumber());
2409
- }
2410
-
2411
- auto array = dstDataObject.getTypedArray(
2412
- runtime);
2413
- auto slice = GetTypedArrayData<uint8_t>(
2414
- runtime, array);
2415
-
2416
- canvas_native_webgl2_get_buffer_sub_data(
2417
- target,
2418
- static_cast<ssize_t>(srcByteOffset),
2419
- slice,
2420
- dstOffsetValue,
2421
- lengthValue,
2422
- this->GetState()
2423
- );
2424
- }
2425
- }
2426
-
2427
- return jsi::Value::undefined();
2428
- }
2429
- );
2430
- } else if (methodName == "getFragDataLocation") {
2431
- return jsi::Function::createFromHostFunction(runtime,
2432
- jsi::PropNameID::forAscii(runtime, methodName),
2433
- 2,
2434
- [this](jsi::Runtime &runtime,
2435
- const jsi::Value &thisValue,
2436
- const jsi::Value *arguments,
2437
- size_t count) -> jsi::Value {
2438
-
2439
-
2440
- if (count > 1 && arguments[1].isString()) {
2441
- auto program = getHostObject<WebGLProgram>(
2442
- runtime, arguments[0]);
2443
-
2444
- if (program != nullptr) {
2445
- auto name = arguments[1].asString(
2446
- runtime).utf8(runtime);
2447
-
2448
- auto ret = canvas_native_webgl2_get_frag_data_location(
2449
- program->GetProgram(),
2450
- rust::Str(name.c_str()),
2451
- this->GetState()
2452
- );
2453
-
2454
- return {ret};
2455
- }
2456
- }
2457
-
2458
- return jsi::Value::null();
2459
- }
2460
- );
2461
- } else if (methodName == "getIndexedParameter") {
2462
- return jsi::Function::createFromHostFunction(runtime,
2463
- jsi::PropNameID::forAscii(runtime, methodName),
2464
- 2,
2465
- [this](jsi::Runtime &runtime,
2466
- const jsi::Value &thisValue,
2467
- const jsi::Value *arguments,
2468
- size_t count) -> jsi::Value {
2469
-
2470
- if (count > 1) {
2471
- auto target = (uint32_t) arguments[0].asNumber();
2472
- auto index = (uint32_t) arguments[1].asNumber();
2473
- auto ret = canvas_native_webgl2_get_indexed_parameter(
2474
- target,
2475
- index,
2476
- this->GetState()
2477
- );
2478
-
2479
- switch (target) {
2480
- case GL_UNIFORM_BUFFER_BINDING:
2481
- case GL_TRANSFORM_FEEDBACK_BUFFER_BINDING: {
2482
- auto buffer = canvas_native_webgl2_indexed_parameter_get_buffer_value(
2483
- *ret);
2484
- return jsi::Object::createFromHostObject(
2485
- runtime,
2486
- std::make_shared<WebGLBuffer>(
2487
- buffer));
2488
- }
2489
- break;
2490
- case GL_TRANSFORM_FEEDBACK_BUFFER_SIZE:
2491
- case GL_TRANSFORM_FEEDBACK_BUFFER_START:
2492
- case GL_UNIFORM_BUFFER_SIZE:
2493
- case GL_UNIFORM_BUFFER_START: {
2494
- auto value = canvas_native_webgl2_indexed_parameter_get_value(
2495
- *ret);
2496
- return {static_cast<double>(value)};
2497
- }
2498
- break;
2499
- default:
2500
- return jsi::Value::null();
2501
- }
2502
- }
2503
-
2504
- return jsi::Value::null();
2505
- }
2506
- );
2507
- } else if (methodName == "getInternalformatParameter") {
2508
- return jsi::Function::createFromHostFunction(runtime,
2509
- jsi::PropNameID::forAscii(runtime, methodName),
2510
- 3,
2511
- [this](jsi::Runtime &runtime,
2512
- const jsi::Value &thisValue,
2513
- const jsi::Value *arguments,
2514
- size_t count) -> jsi::Value {
2515
- if (count > 2) {
2516
- auto target = (uint32_t) arguments[0].asNumber();
2517
- auto internalformat = (uint32_t) arguments[1].asNumber();
2518
- auto pname = (uint32_t) arguments[2].asNumber();
2519
- switch (internalformat) {
2520
- case GL_RGB:
2521
- case GL_RGBA:
2522
- case GL_R8UI:
2523
- case GL_R8I:
2524
- case GL_R16UI:
2525
- case GL_R16I:
2526
- case GL_R32UI:
2527
- case GL_R32I:
2528
- case GL_RG8UI:
2529
- case GL_RG8I:
2530
- case GL_RG16UI:
2531
- case GL_RG16I:
2532
- case GL_RG32UI:
2533
- case GL_RG32I:
2534
- case GL_RGBA8UI:
2535
- case GL_RGBA8I:
2536
- case GL_RGB10_A2UI:
2537
- case GL_RGBA16UI:
2538
- case GL_RGBA16I:
2539
- case GL_RGBA32UI:
2540
- case GL_RGBA32I: {
2541
- // empty
2542
-
2543
- auto value = rust::Vec<int32_t>();
2544
- auto buffer = std::make_shared<VecMutableBuffer<int32_t>>(
2545
- std::move(value));
2546
- auto array = jsi::ArrayBuffer(
2547
- runtime, buffer);
2548
-
2549
- auto Int32Array = runtime.global()
2550
- .getProperty(runtime,
2551
- "Int32Array")
2552
- .asObject(runtime)
2553
- .asFunction(runtime);
2554
-
2555
-
2556
- return Int32Array.callAsConstructor(
2557
- runtime, array);
2558
- }
2559
- case GL_R8:
2560
- case GL_RG8:
2561
- case GL_RGB565:
2562
- case GL_RGBA8:
2563
- case GL_SRGB8_ALPHA8:
2564
- case GL_RGB5_A1:
2565
- case GL_RGBA4:
2566
- case GL_RGB10_A2:
2567
- case GL_DEPTH_COMPONENT16:
2568
- case GL_DEPTH_COMPONENT24:
2569
- case GL_DEPTH_COMPONENT32F:
2570
- case GL_DEPTH24_STENCIL8:
2571
- case GL_DEPTH32F_STENCIL8:
2572
- case GL_STENCIL_INDEX8:
2573
- // noop
2574
- break;
2575
- case GL_R16F:
2576
- case GL_RG16F:
2577
- case GL_R32F:
2578
- case GL_RG32F:
2579
- case GL_RGBA32F:
2580
- case GL_R11F_G11F_B10F:
2581
- // noop
2582
- break;
2583
- default:
2584
- return jsi::Value::null();
2585
- }
2586
-
2587
-
2588
- auto ret = canvas_native_webgl2_get_internalformat_parameter(
2589
- target,
2590
- internalformat,
2591
- pname,
2592
- this->GetState()
2593
- );
2594
-
2595
- if (pname == GL_SAMPLES) {
2596
- auto value = canvas_native_webgl_result_get_i32_array(
2597
- *ret);
2598
-
2599
- auto buffer = std::make_shared<VecMutableBuffer<int32_t>>(
2600
- std::move(value));
2601
- auto array = jsi::ArrayBuffer(
2602
- runtime,
2603
- buffer);
2604
-
2605
- auto Int32Array = runtime.global()
2606
- .getProperty(runtime,
2607
- "Int32Array")
2608
- .asObject(runtime)
2609
- .asFunction(runtime);
2610
-
2611
-
2612
- return Int32Array.callAsConstructor(
2613
- runtime, array);
2614
- } else {
2615
- return jsi::Value::null();
2616
- }
2617
- }
2618
-
2619
- return jsi::Value::null();
2620
- }
2621
- );
2622
- } else if (methodName == "getParameter") {
2623
- return jsi::Function::createFromHostFunction(runtime,
2624
- jsi::PropNameID::forAscii(runtime, methodName),
2625
- 1,
2626
- [this](jsi::Runtime &runtime,
2627
- const jsi::Value &thisValue,
2628
- const jsi::Value *arguments,
2629
- size_t count) -> jsi::Value {
2630
-
2631
- if (count > 0) {
2632
- auto pname = (uint32_t) arguments[0].asNumber();
2633
- auto result = canvas_native_webgl2_get_parameter(
2634
- pname,
2635
- this->GetState());
2636
- switch (pname) {
2637
- case GL_COPY_READ_BUFFER_BINDING:
2638
- case GL_COPY_WRITE_BUFFER_BINDING:
2639
- case GL_DRAW_FRAMEBUFFER_BINDING:
2640
- return {canvas_native_webgl_result_get_i32(
2641
- *result)};
2642
- default:
2643
- return this->GetParameterInternal(
2644
- runtime, pname,
2645
- std::move(result));
2646
- }
2647
- }
2648
-
2649
- return jsi::Value::null();
2650
- }
2651
- );
2652
- } else if (methodName == "getQueryParameter") {
2653
- return jsi::Function::createFromHostFunction(runtime,
2654
- jsi::PropNameID::forAscii(runtime, methodName),
2655
- 2,
2656
- [this](jsi::Runtime &runtime,
2657
- const jsi::Value &thisValue,
2658
- const jsi::Value *arguments,
2659
- size_t count) -> jsi::Value {
2660
-
2661
-
2662
- if (count > 1) {
2663
- auto query = getHostObject<WebGLQuery>(
2664
- runtime, arguments[0]);
2665
- if (query != nullptr) {
2666
- auto pname = (uint32_t) arguments[1].asNumber();
2667
-
2668
-
2669
- auto ret = canvas_native_webgl2_get_query_parameter(
2670
- query->GetQuery(),
2671
- pname,
2672
- this->GetState());
2673
- if (pname == GL_QUERY_RESULT) {
2674
- return {canvas_native_webgl_result_get_bool(
2675
- *ret)};
2676
- } else if (pname ==
2677
- GL_QUERY_RESULT_AVAILABLE) {
2678
- return {(int32_t) canvas_native_webgl_result_get_u32(
2679
- *ret)};
2680
- }
2681
- }
2682
- }
2683
-
2684
- return jsi::Value::null();
2685
- }
2686
- );
2687
- } else if (methodName == "getQuery") {
2688
- return jsi::Function::createFromHostFunction(runtime,
2689
- jsi::PropNameID::forAscii(runtime, methodName),
2690
- 2,
2691
- [this](jsi::Runtime &runtime,
2692
- const jsi::Value &thisValue,
2693
- const jsi::Value *arguments,
2694
- size_t count) -> jsi::Value {
2695
-
2696
- if (count > 1) {
2697
- auto target = (uint32_t) arguments[0].asNumber();
2698
- auto pname = (uint32_t) arguments[1].asNumber();
2699
- auto ret = canvas_native_webgl2_get_query(
2700
- target,
2701
- pname,
2702
- this->GetState());
2703
- if (pname == GL_CURRENT_QUERY) {
2704
- return {canvas_native_webgl_result_get_i32(
2705
- *ret)};
2706
- }
2707
- }
2708
-
2709
- return jsi::Value::null();
2710
- }
2711
- );
2712
- } else if (methodName == "getSamplerParameter") {
2713
- return jsi::Function::createFromHostFunction(runtime,
2714
- jsi::PropNameID::forAscii(runtime, methodName),
2715
- 2,
2716
- [this](jsi::Runtime &runtime,
2717
- const jsi::Value &thisValue,
2718
- const jsi::Value *arguments,
2719
- size_t count) -> jsi::Value {
2720
-
2721
- if (count > 1) {
2722
- auto sampler = getHostObject<WebGLSampler>(
2723
- runtime, arguments[0]);
2724
- if (sampler != nullptr) {
2725
- auto pname = (uint32_t) arguments[1].asNumber();
2726
- auto ret = canvas_native_webgl2_get_sampler_parameter(
2727
- sampler->GetSampler(),
2728
- pname,
2729
- this->GetState());
2730
-
2731
- switch (pname) {
2732
- case GL_TEXTURE_MAX_LOD:
2733
- case GL_TEXTURE_MIN_LOD:
2734
- return {static_cast<double>(canvas_native_webgl_result_get_f32(
2735
- *ret))};
2736
- case GL_TEXTURE_COMPARE_FUNC:
2737
- case GL_TEXTURE_COMPARE_MODE:
2738
- case GL_TEXTURE_MAG_FILTER:
2739
- case GL_TEXTURE_MIN_FILTER:
2740
- case GL_TEXTURE_WRAP_R:
2741
- case GL_TEXTURE_WRAP_S:
2742
- case GL_TEXTURE_WRAP_T:
2743
- return {canvas_native_webgl_result_get_i32(
2744
- *ret)};
2745
- default:
2746
- return jsi::Value::null();
2747
- }
2748
- }
2749
- }
2750
-
2751
- return jsi::Value::null();
2752
- }
2753
- );
2754
- } else if (methodName == "getSyncParameter") {
2755
- return jsi::Function::createFromHostFunction(runtime,
2756
- jsi::PropNameID::forAscii(runtime, methodName),
2757
- 2,
2758
- [this](jsi::Runtime &runtime,
2759
- const jsi::Value &thisValue,
2760
- const jsi::Value *arguments,
2761
- size_t count) -> jsi::Value {
2762
-
2763
- if (count > 1) {
2764
- auto sync = getHostObject<WebGLSyncImpl>(
2765
- runtime, arguments[0]);
2766
- if (sync != nullptr) {
2767
- auto pname = (uint32_t) arguments[1].asNumber();
2768
- auto ret = canvas_native_webgl2_get_sync_parameter(
2769
- sync->GetSync(),
2770
- pname,
2771
- this->GetState());
2772
-
2773
- switch (pname) {
2774
- case GL_OBJECT_TYPE:
2775
- case GL_SYNC_STATUS:
2776
- case GL_SYNC_CONDITION:
2777
- case GL_SYNC_FLAGS:
2778
- return {canvas_native_webgl_result_get_i32(
2779
- *ret)};
2780
- default:
2781
- return jsi::Value::null();
2782
- }
2783
- }
2784
- }
2785
- return jsi::Value::null();
2786
- }
2787
- );
2788
- } else if (methodName == "getTransformFeedbackVarying") {
2789
- return jsi::Function::createFromHostFunction(runtime,
2790
- jsi::PropNameID::forAscii(runtime, methodName),
2791
- 2,
2792
- [this](jsi::Runtime &runtime,
2793
- const jsi::Value &thisValue,
2794
- const jsi::Value *arguments,
2795
- size_t count) -> jsi::Value {
2796
- if (count > 1) {
2797
- auto program = getHostObject<WebGLProgram>(
2798
- runtime, arguments[0]);
2799
- auto index = (uint32_t) arguments[1].asNumber();
2800
- if (program != nullptr) {
2801
- auto ret = canvas_native_webgl2_get_transform_feedback_varying(
2802
- program->GetProgram(),
2803
- index,
2804
- this->GetState()
2805
- );
2806
-
2807
- if (canvas_native_webgl_active_info_get_is_empty(
2808
- *ret)) {
2809
- return jsi::Value::null();
2810
- }
2811
-
2812
- auto info = std::make_shared<WebGLActiveInfoImpl>(
2813
- std::move(ret));
2814
-
2815
- return jsi::Object::createFromHostObject(
2816
- runtime, info);
2817
- }
2818
- }
2819
-
2820
- return jsi::Value::null();
2821
- }
2822
- );
2823
- } else if (methodName == "getUniformBlockIndex") {
2824
- return jsi::Function::createFromHostFunction(runtime,
2825
- jsi::PropNameID::forAscii(runtime, methodName),
2826
- 2,
2827
- [this](jsi::Runtime &runtime,
2828
- const jsi::Value &thisValue,
2829
- const jsi::Value *arguments,
2830
- size_t count) -> jsi::Value {
2831
- if (count > 1) {
2832
- auto program = getHostObject<WebGLProgram>(
2833
- runtime, arguments[0]);
2834
- auto index = arguments[1].asString(runtime).utf8(runtime);
2835
- if (program != nullptr) {
2836
- auto ret = canvas_native_webgl2_get_uniform_block_index(program->GetProgram(), rust::Str(index.c_str()), this->GetState());
2837
-
2838
- return jsi::Value((int)ret);
2839
- }
2840
- }
2841
-
2842
- return jsi::Value::null();
2843
- }
2844
- );
2845
- } else if (methodName == "getUniformIndices") {
2846
- return jsi::Function::createFromHostFunction(runtime,
2847
- jsi::PropNameID::forAscii(runtime, methodName),
2848
- 2,
2849
- [this](jsi::Runtime &runtime,
2850
- const jsi::Value &thisValue,
2851
- const jsi::Value *arguments,
2852
- size_t count) -> jsi::Value {
2853
-
2854
- if (count > 1 && arguments[1].isObject()) {
2855
- auto program = getHostObject<WebGLProgram>(
2856
- runtime, arguments[0]);
2857
- auto uniformNamesObject = arguments[1].asObject(
2858
- runtime);
2859
- if (program != nullptr &&
2860
- uniformNamesObject.isArray(
2861
- runtime)) {
2862
- auto uniformNames = uniformNamesObject.getArray(
2863
- runtime);
2864
- auto len = uniformNames.size(
2865
- runtime);
2866
- rust::Vec<rust::Str> store;
2867
- store.reserve(len);
2868
- for (int j = 0; j < len; ++j) {
2869
- auto name = uniformNames.getValueAtIndex(
2870
- runtime, j).asString(
2871
- runtime).utf8(runtime);
2872
- rust::Str val(name.data(),
2873
- name.size());
2874
- store.push_back(val);
2875
- }
2876
- rust::Slice<const rust::Str> slice(
2877
- store.data(),
2878
- store.size());
2879
- auto ret = canvas_native_webgl2_get_uniform_indices(
2880
- program->GetProgram(),
2881
- slice,
2882
- this->GetState());
2883
-
2884
- auto retSize = ret.size();
2885
- auto result = jsi::Array(runtime,
2886
- retSize);
2887
- for (int j = 0; j < retSize; ++j) {
2888
- auto item = ret[j];
2889
- result.setValueAtIndex(runtime,
2890
- j,
2891
- jsi::Value(
2892
- (int32_t) item));
2893
- }
2894
-
2895
- return result;
2896
- }
2897
- }
2898
-
2899
- return jsi::Value::null();
2900
- }
2901
- );
2902
- } else if (methodName == "invalidateFramebuffer") {
2903
- return jsi::Function::createFromHostFunction(runtime,
2904
- jsi::PropNameID::forAscii(runtime, methodName),
2905
- 2,
2906
- [this](jsi::Runtime &runtime,
2907
- const jsi::Value &thisValue,
2908
- const jsi::Value *arguments,
2909
- size_t count) -> jsi::Value {
2910
-
2911
-
2912
- if (count > 1 && arguments[1].isObject()) {
2913
- auto target = (uint32_t) arguments[0].asNumber();
2914
- auto attachments = arguments[1].asObject(
2915
- runtime);
2916
-
2917
- if (attachments.isArray(runtime)) {
2918
- auto array = attachments.getArray(
2919
- runtime);
2920
- auto len = array.size(runtime);
2921
- rust::Vec<uint32_t> buf;
2922
- buf.reserve(len);
2923
- for (int j = 0; j < len; ++j) {
2924
- auto item = (uint32_t) array.getValueAtIndex(
2925
- runtime, j).asNumber();
2926
- buf.push_back(item);
2927
- }
2928
-
2929
- rust::Slice<const uint32_t> slice(
2930
- buf.data(), buf.size());
2931
- canvas_native_webgl2_invalidate_framebuffer(
2932
- target, slice,
2933
- this->GetState());
2934
- }
2935
- }
2936
-
2937
- return jsi::Value::undefined();
2938
- }
2939
- );
2940
- } else if (methodName == "invalidateSubFramebuffer") {
2941
- return jsi::Function::createFromHostFunction(runtime,
2942
- jsi::PropNameID::forAscii(runtime, methodName),
2943
- 6,
2944
- [this](jsi::Runtime &runtime,
2945
- const jsi::Value &thisValue,
2946
- const jsi::Value *arguments,
2947
- size_t count) -> jsi::Value {
2948
-
2949
-
2950
- if (count > 5 && arguments[1].isObject()) {
2951
- auto attachments = arguments[1].asObject(
2952
- runtime);
2953
- if (attachments.isArray(runtime)) {
2954
- auto target = (uint32_t) arguments[0].asNumber();
2955
- auto x = (int32_t) arguments[2].asNumber();
2956
- auto y = (int32_t) arguments[3].asNumber();
2957
- auto width = (int32_t) arguments[4].asNumber();
2958
- auto height = (int32_t) arguments[5].asNumber();
2959
-
2960
- auto array = attachments.getArray(
2961
- runtime);
2962
- auto len = array.size(runtime);
2963
- rust::Vec<uint32_t> buf;
2964
- buf.reserve(len);
2965
- for (int j = 0; j < len; ++j) {
2966
- auto item = (uint) array.getValueAtIndex(
2967
- runtime, j).asNumber();
2968
- buf.push_back(item);
2969
- }
2970
- rust::Slice<const uint32_t> slice(
2971
- buf.data(), buf.size());
2972
-
2973
- canvas_native_webgl2_invalidate_sub_framebuffer(
2974
- target,
2975
- slice,
2976
- x,
2977
- y,
2978
- width,
2979
- height,
2980
- this->GetState());
2981
- }
2982
-
2983
-
2984
- }
2985
-
2986
- return jsi::Value::undefined();
2987
- }
2988
- );
2989
- } else if (methodName == "isQuery") {
2990
- return jsi::Function::createFromHostFunction(runtime,
2991
- jsi::PropNameID::forAscii(runtime, methodName),
2992
- 1,
2993
- [this](jsi::Runtime &runtime,
2994
- const jsi::Value &thisValue,
2995
- const jsi::Value *arguments,
2996
- size_t count) -> jsi::Value {
2997
- if (count > 0) {
2998
- auto query = getHostObject<WebGLQuery>(
2999
- runtime, arguments[0]);
3000
- if (query != nullptr) {
3001
- auto ret = canvas_native_webgl2_is_query(
3002
- query->GetQuery(),
3003
- this->GetState());
3004
- return {ret};
3005
- }
3006
- }
3007
- // todo check return
3008
- return {false};
3009
- }
3010
- );
3011
- } else if (methodName == "isSampler") {
3012
- return jsi::Function::createFromHostFunction(runtime,
3013
- jsi::PropNameID::forAscii(runtime, methodName),
3014
- 1,
3015
- [this](jsi::Runtime &runtime,
3016
- const jsi::Value &thisValue,
3017
- const jsi::Value *arguments,
3018
- size_t count) -> jsi::Value {
3019
- if (count > 0) {
3020
- auto sampler = getHostObject<WebGLSampler>(
3021
- runtime, arguments[0]);
3022
- if (sampler != nullptr) {
3023
- auto ret = canvas_native_webgl2_is_sampler(
3024
- sampler->GetSampler(),
3025
- this->GetState());
3026
- return {ret};
3027
- }
3028
- }
3029
- // todo check return
3030
- return {false};
3031
- }
3032
- );
3033
- } else if (methodName == "isSync") {
3034
- return jsi::Function::createFromHostFunction(runtime,
3035
- jsi::PropNameID::forAscii(runtime, methodName),
3036
- 1,
3037
- [this](jsi::Runtime &runtime,
3038
- const jsi::Value &thisValue,
3039
- const jsi::Value *arguments,
3040
- size_t count) -> jsi::Value {
3041
- if (count > 0) {
3042
- auto sync = getHostObject<WebGLSyncImpl>(
3043
- runtime, arguments[0]);
3044
- if (sync != nullptr) {
3045
- auto ret = canvas_native_webgl2_is_sync(
3046
- sync->GetSync(),
3047
- this->GetState());
3048
- return {ret};
3049
- }
3050
- }
3051
- // todo check return
3052
- return {false};
3053
- }
3054
- );
3055
- } else if (methodName == "isTransformFeedback") {
3056
- return jsi::Function::createFromHostFunction(runtime,
3057
- jsi::PropNameID::forAscii(runtime, methodName),
3058
- 1,
3059
- [this](jsi::Runtime &runtime,
3060
- const jsi::Value &thisValue,
3061
- const jsi::Value *arguments,
3062
- size_t count) -> jsi::Value {
3063
- if (count > 0) {
3064
- auto transformFeedback = getHostObject<WebGLTransformFeedback>(
3065
- runtime, arguments[0]);
3066
- if (transformFeedback != nullptr) {
3067
- auto ret = canvas_native_webgl2_is_transform_feedback(
3068
- transformFeedback->GetFeedback(),
3069
- this->GetState());
3070
- return {ret};
3071
- }
3072
- }
3073
- // todo check return
3074
- return {false};
3075
- }
3076
- );
3077
- } else if (methodName == "isVertexArray") {
3078
- return jsi::Function::createFromHostFunction(runtime,
3079
- jsi::PropNameID::forAscii(runtime, methodName),
3080
- 3,
3081
- [this](jsi::Runtime &runtime,
3082
- const jsi::Value &thisValue,
3083
- const jsi::Value *arguments,
3084
- size_t count) -> jsi::Value {
3085
- if (count > 0) {
3086
- auto vertexArray = getHostObject<WebGLVertexArrayObject>(
3087
- runtime, arguments[0]);
3088
- if (vertexArray != nullptr) {
3089
- auto ret = canvas_native_webgl2_is_vertex_array(
3090
- vertexArray->GetVertexArrayObject(),
3091
- this->GetState());
3092
- return {ret};
3093
- }
3094
- }
3095
- // todo check return
3096
- return {false};
3097
-
3098
-
3099
- }
3100
- );
3101
- } else if (methodName == "pauseTransformFeedback") {
3102
- return jsi::Function::createFromHostFunction(runtime,
3103
- jsi::PropNameID::forAscii(runtime, methodName),
3104
- 0,
3105
- [this](jsi::Runtime &runtime,
3106
- const jsi::Value &thisValue,
3107
- const jsi::Value *arguments,
3108
- size_t count) -> jsi::Value {
3109
-
3110
- canvas_native_webgl2_pause_transform_feedback(
3111
- this->GetState());
3112
-
3113
- return jsi::Value::undefined();
3114
- }
3115
- );
3116
- } else if (methodName == "readBuffer") {
3117
- return jsi::Function::createFromHostFunction(runtime,
3118
- jsi::PropNameID::forAscii(runtime, methodName),
3119
- 1,
3120
- [this](jsi::Runtime &runtime,
3121
- const jsi::Value &thisValue,
3122
- const jsi::Value *arguments,
3123
- size_t count) -> jsi::Value {
3124
- if (count > 0) {
3125
- auto src = (uint32_t) arguments[0].asNumber();
3126
- canvas_native_webgl2_read_buffer(
3127
- src,
3128
- this->GetState()
3129
- );
3130
- }
3131
-
3132
- return jsi::Value::undefined();
3133
- }
3134
- );
3135
- } else if (methodName == "renderbufferStorageMultisample") {
3136
- return jsi::Function::createFromHostFunction(runtime,
3137
- jsi::PropNameID::forAscii(runtime, methodName),
3138
- 5,
3139
- [this](jsi::Runtime &runtime,
3140
- const jsi::Value &thisValue,
3141
- const jsi::Value *arguments,
3142
- size_t count) -> jsi::Value {
3143
-
3144
- if (count > 4) {
3145
- auto target = (uint32_t) arguments[0].asNumber();
3146
- auto samples = (int32_t) arguments[1].asNumber();
3147
- auto internalFormat = (uint32_t) arguments[2].asNumber();
3148
- auto width = (int32_t) arguments[3].asNumber();
3149
- auto height = (int32_t) arguments[4].asNumber();
3150
- canvas_native_webgl2_renderbuffer_storage_multisample(
3151
- target,
3152
- samples,
3153
- internalFormat,
3154
- width,
3155
- height,
3156
- this->GetState()
3157
- );
3158
- }
3159
-
3160
- return jsi::Value::undefined();
3161
- }
3162
- );
3163
- } else if (methodName == "resumeTransformFeedback") {
3164
- return jsi::Function::createFromHostFunction(runtime,
3165
- jsi::PropNameID::forAscii(runtime, methodName),
3166
- 0,
3167
- [this](jsi::Runtime &runtime,
3168
- const jsi::Value &thisValue,
3169
- const jsi::Value *arguments,
3170
- size_t count) -> jsi::Value {
3171
- canvas_native_webgl2_resume_transform_feedback(
3172
- this->GetState());
3173
- return jsi::Value::undefined();
3174
- }
3175
- );
3176
- } else if (methodName == "samplerParameterf") {
3177
- return jsi::Function::createFromHostFunction(runtime,
3178
- jsi::PropNameID::forAscii(runtime, methodName),
3179
- 3,
3180
- [this](jsi::Runtime &runtime,
3181
- const jsi::Value &thisValue,
3182
- const jsi::Value *arguments,
3183
- size_t count) -> jsi::Value {
3184
-
3185
- if (count > 2) {
3186
- auto sampler = getHostObject<WebGLSampler>(
3187
- runtime, arguments[0]);
3188
- auto pname = (uint32_t) arguments[1].asNumber();
3189
- auto param = arguments[2].asNumber();
3190
- if (sampler != nullptr) {
3191
- canvas_native_webgl2_sampler_parameterf(
3192
- sampler->GetSampler(),
3193
- pname,
3194
- static_cast<float>(param),
3195
- this->GetState());
3196
- }
3197
- }
3198
-
3199
- return jsi::Value::undefined();
3200
- }
3201
- );
3202
- } else if (methodName == "samplerParameteri") {
3203
- return jsi::Function::createFromHostFunction(runtime,
3204
- jsi::PropNameID::forAscii(runtime, methodName),
3205
- 3,
3206
- [this](jsi::Runtime &runtime,
3207
- const jsi::Value &thisValue,
3208
- const jsi::Value *arguments,
3209
- size_t count) -> jsi::Value {
3210
-
3211
- if (count > 2) {
3212
- auto sampler = getHostObject<WebGLSampler>(
3213
- runtime, arguments[0]);
3214
- auto pname = (uint32_t) arguments[1].asNumber();
3215
- auto param = (int32_t) arguments[2].asNumber();
3216
- if (sampler != nullptr) {
3217
- canvas_native_webgl2_sampler_parameteri(
3218
- sampler->GetSampler(),
3219
- pname,
3220
- param,
3221
- this->GetState());
3222
- }
3223
- }
3224
-
3225
- return jsi::Value::undefined();
3226
- }
3227
- );
3228
- } else if (methodName == "texImage3D") {
3229
- return jsi::Function::createFromHostFunction(runtime,
3230
- jsi::PropNameID::forAscii(runtime, methodName),
3231
- 3,
3232
- [this](jsi::Runtime &runtime,
3233
- const jsi::Value &thisValue,
3234
- const jsi::Value *arguments,
3235
- size_t count) -> jsi::Value {
3236
-
3237
- if (count == 10) {
3238
- auto target = (int32_t) arguments[0].asNumber();
3239
- auto level = (int32_t) arguments[1].asNumber();
3240
- auto internalformat = (int32_t) arguments[2].asNumber();
3241
- auto width = (int32_t) arguments[3].asNumber();
3242
- auto height = (int32_t) arguments[4].asNumber();
3243
- auto depth = (int32_t) arguments[5].asNumber();
3244
- auto border = (int32_t) arguments[6].asNumber();
3245
- auto format = (int32_t) arguments[7].asNumber();
3246
- auto type = (uint32_t) arguments[8].asNumber();
3247
-
3248
-
3249
- if (arguments[9].isNumber()) {
3250
- auto imageOrPixelsOrOffset = arguments[9].asNumber();
3251
- canvas_native_webgl2_tex_image3d_none(
3252
- target,
3253
- level,
3254
- internalformat,
3255
- width,
3256
- height,
3257
- depth,
3258
- border,
3259
- format,
3260
- type,
3261
- static_cast<ssize_t>(imageOrPixelsOrOffset),
3262
- this->GetState()
3263
- );
3264
- return jsi::Value::undefined();
3265
- }
3266
-
3267
- if (arguments[9].isObject()) {
3268
- auto imageOrPixelsOrOffsetObject = arguments[9].asObject(
3269
- runtime);
3270
-
3271
- if (imageOrPixelsOrOffsetObject.isTypedArray(
3272
- runtime)) {
3273
- auto buf = imageOrPixelsOrOffsetObject.getTypedArray(
3274
- runtime);
3275
- auto slice = GetTypedArrayData<const uint8_t>(
3276
- runtime, buf);
3277
-
3278
-
3279
- canvas_native_webgl2_tex_image3d(
3280
- target,
3281
- level,
3282
- internalformat,
3283
- width,
3284
- height,
3285
- depth,
3286
- border,
3287
- format,
3288
- type,
3289
- slice,
3290
- this->GetState()
3291
- );
3292
- return jsi::Value::undefined();
3293
- }
3294
-
3295
- try {
3296
- auto image_asset = getHostObject<ImageAssetImpl>(
3297
- runtime, arguments[9]);
3298
- if (image_asset != nullptr) {
3299
- canvas_native_webgl2_tex_image3d_asset(
3300
- target,
3301
- level,
3302
- internalformat,
3303
- width,
3304
- height,
3305
- depth,
3306
- border,
3307
- format,
3308
- type,
3309
- image_asset->GetImageAsset(),
3310
- this->GetState()
3311
- );
3312
-
3313
- return jsi::Value::undefined();
3314
- }
3315
- } catch (...) {}
3316
-
3317
- try {
3318
- auto image_bitmap = getHostObject<ImageBitmapImpl>(
3319
- runtime, arguments[9]);
3320
- if (image_bitmap != nullptr) {
3321
- canvas_native_webgl2_tex_image3d_asset(
3322
- target,
3323
- level,
3324
- internalformat,
3325
- width,
3326
- height,
3327
- depth,
3328
- border,
3329
- format,
3330
- type,
3331
- image_bitmap->GetImageAsset(),
3332
- this->GetState()
3333
- );
3334
-
3335
- return jsi::Value::undefined();
3336
- }
3337
- } catch (...) {}
3338
-
3339
-
3340
- }
3341
- } else if (count > 10) {
3342
-
3343
- auto target = (int32_t) arguments[0].asNumber();
3344
- auto level = (int32_t) arguments[1].asNumber();
3345
- auto internalformat = (int32_t) arguments[2].asNumber();
3346
- auto width = (int32_t) arguments[3].asNumber();
3347
- auto height = (int32_t) arguments[4].asNumber();
3348
- auto depth = (int32_t) arguments[5].asNumber();
3349
- auto border = (int32_t) arguments[6].asNumber();
3350
- auto format = (int32_t) arguments[7].asNumber();
3351
- auto type = (uint32_t) arguments[8].asNumber();
3352
- if (arguments[9].isObject()) {
3353
- auto imageOrPixelsOrOffset = arguments[9].asObject(
3354
- runtime);
3355
- size_t srcOffsetValue = 0;
3356
- if (arguments[9].isNumber()) {
3357
- srcOffsetValue = static_cast<size_t>(arguments[9].asNumber());
3358
- }
3359
-
3360
- if (imageOrPixelsOrOffset.isTypedArray(
3361
- runtime)) {
3362
- auto buf = imageOrPixelsOrOffset.getTypedArray(
3363
- runtime);
3364
- auto size = buf.size(runtime);
3365
- auto array = GetTypedArrayData<const uint8_t>(
3366
- runtime, buf);
3367
-
3368
- srcOffsetValue =
3369
- srcOffsetValue * size;
3370
- if (srcOffsetValue >
3371
- size) {
3372
- return jsi::Value::undefined();
3373
- }
3374
-
3375
- canvas_native_webgl2_tex_image3d_offset(
3376
- target,
3377
- level,
3378
- internalformat,
3379
- width,
3380
- height,
3381
- depth,
3382
- border,
3383
- format,
3384
- type,
3385
- array,
3386
- srcOffsetValue,
3387
- this->GetState()
3388
- );
3389
- return jsi::Value::undefined();
3390
- }
3391
- }
3392
-
3393
- }
3394
-
3395
- return jsi::Value::undefined();
3396
- }
3397
- );
3398
- } else if (methodName == "texStorage2D") {
3399
- return jsi::Function::createFromHostFunction(runtime,
3400
- jsi::PropNameID::forAscii(runtime, methodName),
3401
- 5,
3402
- [this](jsi::Runtime &runtime,
3403
- const jsi::Value &thisValue,
3404
- const jsi::Value *arguments,
3405
- size_t count) -> jsi::Value {
3406
- if (count > 4) {
3407
- auto target = (uint32_t) arguments[0].asNumber();
3408
- auto levels = (int32_t) arguments[1].asNumber();
3409
- auto internalFormat = (uint32_t) arguments[2].asNumber();
3410
- auto width = (int32_t) arguments[3].asNumber();
3411
- auto height = (int32_t) arguments[4].asNumber();
3412
- canvas_native_webgl2_tex_storage2d(
3413
- target,
3414
- levels,
3415
- internalFormat,
3416
- width,
3417
- height,
3418
- this->GetState()
3419
- );
3420
- }
3421
-
3422
- return jsi::Value::undefined();
3423
-
3424
- }
3425
- );
3426
- } else if (methodName == "texStorage3D") {
3427
- return jsi::Function::createFromHostFunction(runtime,
3428
- jsi::PropNameID::forAscii(runtime, methodName),
3429
- 6,
3430
- [this](jsi::Runtime &runtime,
3431
- const jsi::Value &thisValue,
3432
- const jsi::Value *arguments,
3433
- size_t count) -> jsi::Value {
3434
-
3435
- if (count > 5) {
3436
- auto target = (uint32_t) arguments[0].asNumber();
3437
- auto levels = (int32_t) arguments[1].asNumber();
3438
- auto internalFormat = (uint32_t) arguments[2].asNumber();
3439
- auto width = (int32_t) arguments[3].asNumber();
3440
- auto height = (int32_t) arguments[4].asNumber();
3441
- auto depth = (int32_t) arguments[5].asNumber();
3442
- canvas_native_webgl2_tex_storage3d(
3443
- target,
3444
- levels,
3445
- internalFormat,
3446
- width,
3447
- height,
3448
- depth,
3449
- this->GetState()
3450
- );
3451
- }
3452
-
3453
- return jsi::Value::undefined();
3454
-
3455
- }
3456
- );
3457
- } else if (methodName == "texSubImage3D") {
3458
- return jsi::Function::createFromHostFunction(runtime,
3459
- jsi::PropNameID::forAscii(runtime, methodName),
3460
- 12,
3461
- [this](jsi::Runtime &runtime,
3462
- const jsi::Value &thisValue,
3463
- const jsi::Value *arguments,
3464
- size_t count) -> jsi::Value {
3465
- if (count == 11) {
3466
- auto target = (uint32_t) arguments[0].asNumber();
3467
- auto level = (int32_t) arguments[1].asNumber();
3468
- auto xoffset = (int32_t) arguments[2].asNumber();
3469
- auto yoffset = (int32_t) arguments[3].asNumber();
3470
- auto zoffset = (int32_t) arguments[4].asNumber();
3471
- auto width = (int32_t) arguments[5].asNumber();
3472
- auto height = (int32_t) arguments[6].asNumber();
3473
- auto depth = (int32_t) arguments[7].asNumber();
3474
- auto format = (uint32_t) arguments[8].asNumber();
3475
- auto type = (int32_t) arguments[9].asNumber();
3476
-
3477
- if (arguments[10].isNumber()) {
3478
- auto imageOrPixelsOrOffset = arguments[10].asNumber();
3479
- canvas_native_webgl2_tex_sub_image3d_none(
3480
- target,
3481
- level,
3482
- xoffset,
3483
- yoffset,
3484
- zoffset,
3485
- width,
3486
- height,
3487
- depth,
3488
- format,
3489
- type,
3490
- static_cast<ssize_t>(imageOrPixelsOrOffset),
3491
- this->GetState()
3492
- );
3493
- return jsi::Value::undefined();
3494
- }
3495
-
3496
- if (arguments[10].isObject()) {
3497
- auto imageOrPixelsOrOffsetObject = arguments[10].asObject(
3498
- runtime);
3499
- if (imageOrPixelsOrOffsetObject.isTypedArray(
3500
- runtime)) {
3501
- auto array = imageOrPixelsOrOffsetObject.getTypedArray(
3502
- runtime);
3503
- auto slice = GetTypedArrayData<const uint8_t>(
3504
- runtime, array);
3505
-
3506
- canvas_native_webgl2_tex_sub_image3d(
3507
- target,
3508
- level,
3509
- xoffset,
3510
- yoffset,
3511
- zoffset,
3512
- width,
3513
- height,
3514
- depth,
3515
- format,
3516
- type,
3517
- slice,
3518
- this->GetState()
3519
- );
3520
-
3521
- return jsi::Value::undefined();
3522
- }
3523
-
3524
- auto asset = getHostObject<ImageAssetImpl>(
3525
- runtime, arguments[10]);
3526
- if (asset != nullptr) {
3527
-
3528
- canvas_native_webgl2_tex_sub_image3d_asset(
3529
- target,
3530
- level,
3531
- xoffset,
3532
- yoffset,
3533
- zoffset,
3534
- width,
3535
- height,
3536
- depth,
3537
- format,
3538
- type,
3539
- asset->GetImageAsset(),
3540
- this->GetState()
3541
- );
3542
- }
3543
-
3544
- }
3545
-
3546
- } else if (count > 11) {
3547
- auto target = (uint32_t) arguments[0].asNumber();
3548
- auto level = (int32_t) arguments[1].asNumber();
3549
- auto xoffset = (int32_t) arguments[2].asNumber();
3550
- auto yoffset = (int32_t) arguments[3].asNumber();
3551
- auto zoffset = (int32_t) arguments[4].asNumber();
3552
- auto width = (int32_t) arguments[5].asNumber();
3553
- auto height = (int32_t) arguments[6].asNumber();
3554
- auto depth = (int32_t) arguments[7].asNumber();
3555
- auto format = (uint32_t) arguments[8].asNumber();
3556
- auto type = (uint32_t) arguments[9].asNumber();
3557
-
3558
- size_t srcOffsetValue = 0;
3559
- if (arguments[11].isNumber()) {
3560
- srcOffsetValue = static_cast<size_t>(arguments[11].asNumber());
3561
- }
3562
-
3563
- if (arguments[10].isObject()) {
3564
- auto imageOrPixelsOrOffsetObject = arguments[10].asObject(
3565
- runtime);
3566
-
3567
- if (imageOrPixelsOrOffsetObject.isTypedArray(
3568
- runtime)) {
3569
- auto array = imageOrPixelsOrOffsetObject.getTypedArray(
3570
- runtime);
3571
- auto buf = GetTypedArrayData<uint8_t>(
3572
- runtime, array);
3573
- auto size = array.size(
3574
- runtime);
3575
- srcOffsetValue =
3576
- srcOffsetValue * size;
3577
- if (srcOffsetValue > size) {
3578
- return jsi::Value::undefined();
3579
- }
3580
-
3581
- rust::Slice<const uint8_t> slice(
3582
- buf.data(),
3583
- buf.size());
3584
-
3585
- canvas_native_webgl2_tex_sub_image3d_offset(
3586
- target,
3587
- level,
3588
- xoffset,
3589
- yoffset,
3590
- zoffset,
3591
- width,
3592
- height,
3593
- depth,
3594
- format,
3595
- type,
3596
- slice,
3597
- srcOffsetValue,
3598
- this->GetState()
3599
- );
3600
- }
3601
-
3602
- }
3603
- }
3604
-
3605
- return jsi::Value::undefined();
3606
-
3607
- }
3608
- );
3609
- } else if (methodName == "transformFeedbackVaryings") {
3610
- return jsi::Function::createFromHostFunction(runtime,
3611
- jsi::PropNameID::forAscii(runtime, methodName),
3612
- 3,
3613
- [this](jsi::Runtime &runtime,
3614
- const jsi::Value &thisValue,
3615
- const jsi::Value *arguments,
3616
- size_t count) -> jsi::Value {
3617
- if (count > 2 && arguments[1].isObject()) {
3618
- auto program = getHostObject<WebGLProgram>(
3619
- runtime, arguments[0]);
3620
- auto varyingsObject = arguments[1].asObject(
3621
- runtime);
3622
- auto bufferMode = (uint32_t) arguments[2].asNumber();
3623
-
3624
- if (program != nullptr &&
3625
- varyingsObject.isArray(runtime)) {
3626
- auto varyings = varyingsObject.getArray(
3627
- runtime);
3628
- auto len = varyings.size(runtime);
3629
- rust::Vec<rust::Str> buf;
3630
- buf.reserve(len);
3631
- for (int j = 0; j < len; ++j) {
3632
- auto name = varyings.getValueAtIndex(
3633
- runtime, j).asString(
3634
- runtime).utf8(runtime);
3635
- rust::Str val(name.data(),
3636
- name.size());
3637
- buf.emplace_back(val);
3638
- }
3639
-
3640
- rust::Slice<const rust::Str> slice(
3641
- buf.data(), buf.size());
3642
-
3643
- canvas_native_webgl2_transform_feedback_varyings(
3644
- program->GetProgram(),
3645
- slice,
3646
- bufferMode,
3647
- this->GetState()
3648
- );
3649
- }
3650
- }
3651
- return jsi::Value::undefined();
3652
- }
3653
- );
3654
- } else if (methodName == "uniform1ui") {
3655
- return jsi::Function::createFromHostFunction(runtime,
3656
- jsi::PropNameID::forAscii(runtime, methodName),
3657
- 2,
3658
- [this](jsi::Runtime &runtime,
3659
- const jsi::Value &thisValue,
3660
- const jsi::Value *arguments,
3661
- size_t count) -> jsi::Value {
3662
-
3663
- if (count > 1 && arguments[1].isNumber()) {
3664
-
3665
- auto location = getHostObject<WebGLUniformLocation>(
3666
- runtime, arguments[0]);
3667
- auto v0 = (uint32_t) arguments[1].asNumber();
3668
-
3669
- if (location != nullptr) {
3670
- canvas_native_webgl2_uniform1ui(
3671
- location->GetUniformLocation(),
3672
- v0,
3673
- this->GetState()
3674
- );
3675
- }
3676
- }
3677
- return jsi::Value::undefined();
3678
- }
3679
- );
3680
- } else if (methodName == "uniform1uiv") {
3681
- return jsi::Function::createFromHostFunction(runtime,
3682
- jsi::PropNameID::forAscii(runtime, methodName),
3683
- 2,
3684
- [this](jsi::Runtime &runtime,
3685
- const jsi::Value &thisValue,
3686
- const jsi::Value *arguments,
3687
- size_t count) -> jsi::Value {
3688
-
3689
- if (count > 1 && arguments[1].isObject()) {
3690
- auto location = getHostObject<WebGLUniformLocation>(
3691
- runtime, arguments[0]);
3692
- auto data = arguments[1].asObject(
3693
- runtime);
3694
- if (location != nullptr &&
3695
- data.isUint32Array(runtime)) {
3696
- auto array = data.getTypedArray(
3697
- runtime);
3698
- auto slice = GetTypedArrayData<const uint32_t>(
3699
- runtime, array);
3700
- canvas_native_webgl2_uniform1uiv(
3701
- location->GetUniformLocation(),
3702
- slice,
3703
- this->GetState()
3704
- );
3705
- } else {
3706
- rust::Vec<uint32_t> buf;
3707
- auto array = data.getArray(
3708
- runtime);
3709
- auto len = array.size(runtime);
3710
- buf.reserve(len);
3711
- for (int i = 0; i < len; i++) {
3712
- auto item = (uint32_t) array.getValueAtIndex(
3713
- runtime, i).asNumber();
3714
- buf.push_back(item);
3715
- }
3716
- rust::Slice<const uint32_t> slice(
3717
- buf.data(), buf.size());
3718
- canvas_native_webgl2_uniform1uiv(
3719
- location->GetUniformLocation(),
3720
- slice,
3721
- this->GetState()
3722
- );
3723
- }
3724
-
3725
-
3726
- }
3727
- return jsi::Value::undefined();
3728
-
3729
- }
3730
- );
3731
- } else if (methodName == "uniform2ui") {
3732
- return jsi::Function::createFromHostFunction(runtime,
3733
- jsi::PropNameID::forAscii(runtime, methodName),
3734
- 3,
3735
- [this](jsi::Runtime &runtime,
3736
- const jsi::Value &thisValue,
3737
- const jsi::Value *arguments,
3738
- size_t count) -> jsi::Value {
3739
-
3740
- if (count > 2) {
3741
- auto location = getHostObject<WebGLUniformLocation>(
3742
- runtime, arguments[0]);
3743
- auto v0 = (uint32_t) arguments[1].asNumber();
3744
- auto v1 = (uint32_t) arguments[2].asNumber();
3745
-
3746
- if (location != nullptr) {
3747
- canvas_native_webgl2_uniform2ui(
3748
- location->GetUniformLocation(),
3749
- v0,
3750
- v1,
3751
- this->GetState()
3752
- );
3753
- }
3754
-
3755
-
3756
- }
3757
- return jsi::Value::undefined();
3758
- }
3759
- );
3760
- } else if (methodName == "uniform2uiv") {
3761
- return jsi::Function::createFromHostFunction(runtime,
3762
- jsi::PropNameID::forAscii(runtime, methodName),
3763
- 1,
3764
- [this](jsi::Runtime &runtime,
3765
- const jsi::Value &thisValue,
3766
- const jsi::Value *arguments,
3767
- size_t count) -> jsi::Value {
3768
-
3769
- if (count > 1 && arguments[1].isObject()) {
3770
-
3771
- auto location = getHostObject<WebGLUniformLocation>(
3772
- runtime, arguments[0]);
3773
- auto data = arguments[1].asObject(
3774
- runtime);
3775
-
3776
- if (data.isUint32Array(runtime)) {
3777
- auto array = data.getTypedArray(
3778
- runtime);
3779
- auto slice = GetTypedArrayData<const uint32_t>(
3780
- runtime, array);
3781
- canvas_native_webgl2_uniform2uiv(
3782
- location->GetUniformLocation(),
3783
- slice,
3784
- this->GetState()
3785
- );
3786
- } else {
3787
- rust::Vec<uint32_t> buf;
3788
- auto array = data.getArray(
3789
- runtime);
3790
- auto len = array.size(runtime);
3791
- buf.reserve(len);
3792
- for (int i = 0; i < len; i++) {
3793
- auto item = (uint32_t) array.getValueAtIndex(
3794
- runtime, i).asNumber();
3795
- buf.push_back(item);
3796
- }
3797
-
3798
- rust::Slice<const uint32_t> slice(
3799
- buf.data(), buf.size());
3800
- canvas_native_webgl2_uniform2uiv(
3801
- location->GetUniformLocation(),
3802
- slice,
3803
- this->GetState()
3804
- );
3805
- }
3806
- }
3807
- return jsi::Value::undefined();
3808
-
3809
- }
3810
- );
3811
- } else if (methodName == "uniform3ui") {
3812
- return jsi::Function::createFromHostFunction(runtime,
3813
- jsi::PropNameID::forAscii(runtime, methodName),
3814
- 4,
3815
- [this](jsi::Runtime &runtime,
3816
- const jsi::Value &thisValue,
3817
- const jsi::Value *arguments,
3818
- size_t count) -> jsi::Value {
3819
- if (count > 3) {
3820
- auto location = getHostObject<WebGLUniformLocation>(
3821
- runtime, arguments[0]);
3822
- auto v0 = (uint32_t) arguments[1].asNumber();
3823
- auto v1 = (uint32_t) arguments[2].asNumber();
3824
- auto v2 = (uint32_t) arguments[3].asNumber();
3825
- if (location != nullptr) {
3826
- canvas_native_webgl2_uniform3ui(
3827
- location->GetUniformLocation(),
3828
- v0,
3829
- v1,
3830
- v2,
3831
- this->GetState()
3832
- );
3833
- }
3834
- }
3835
-
3836
- return jsi::Value::undefined();
3837
- }
3838
- );
3839
- } else if (methodName == "uniform3uiv") {
3840
- return jsi::Function::createFromHostFunction(runtime,
3841
- jsi::PropNameID::forAscii(runtime, methodName),
3842
- 2,
3843
- [this](jsi::Runtime &runtime,
3844
- const jsi::Value &thisValue,
3845
- const jsi::Value *arguments,
3846
- size_t count) -> jsi::Value {
3847
-
3848
- if (count > 1 && arguments[1].isObject()) {
3849
- auto location = getHostObject<WebGLUniformLocation>(
3850
- runtime, arguments[0]);
3851
- auto data = arguments[1].asObject(
3852
- runtime);
3853
-
3854
- if (data.isUint32Array(runtime)) {
3855
- auto array = data.getTypedArray(
3856
- runtime);
3857
- auto slice = GetTypedArrayData<const uint32_t>(
3858
- runtime, array);
3859
- canvas_native_webgl2_uniform3uiv(
3860
- location->GetUniformLocation(),
3861
- slice,
3862
- this->GetState()
3863
- );
3864
- } else {
3865
- rust::Vec<uint32_t> buf;
3866
- auto array = data.getArray(
3867
- runtime);
3868
- auto len = array.size(runtime);
3869
- buf.reserve(len);
3870
- for (int i = 0; i < len; i++) {
3871
- auto item = array.getValueAtIndex(
3872
- runtime, i).asNumber();
3873
- buf.push_back((uint32_t) item);
3874
- }
3875
-
3876
- rust::Slice<const uint32_t> slice(
3877
- buf.data(), buf.size());
3878
-
3879
- canvas_native_webgl2_uniform3uiv(
3880
- location->GetUniformLocation(),
3881
- slice,
3882
- this->GetState()
3883
- );
3884
- }
3885
- }
3886
- return jsi::Value::undefined();
3887
-
3888
- }
3889
- );
3890
- } else if (methodName == "uniform4ui") {
3891
- return jsi::Function::createFromHostFunction(runtime,
3892
- jsi::PropNameID::forAscii(runtime, methodName),
3893
- 5,
3894
- [this](jsi::Runtime &runtime,
3895
- const jsi::Value &thisValue,
3896
- const jsi::Value *arguments,
3897
- size_t count) -> jsi::Value {
3898
-
3899
- if (count > 4) {
3900
-
3901
- auto location = getHostObject<WebGLUniformLocation>(
3902
- runtime, arguments[0]);
3903
- auto v0 = (uint32_t) arguments[1].asNumber();
3904
- auto v1 = (uint32_t) arguments[2].asNumber();
3905
- auto v2 = (uint32_t) arguments[3].asNumber();
3906
- auto v3 = (uint32_t) arguments[4].asNumber();
3907
- if (location != nullptr) {
3908
- canvas_native_webgl2_uniform4ui(
3909
- location->GetUniformLocation(),
3910
- v0,
3911
- v1,
3912
- v2,
3913
- v3,
3914
- this->GetState()
3915
- );
3916
- }
3917
- }
3918
-
3919
- return jsi::Value::undefined();
3920
- }
3921
- );
3922
- } else if (methodName == "uniform4uiv") {
3923
- return jsi::Function::createFromHostFunction(runtime,
3924
- jsi::PropNameID::forAscii(runtime, methodName),
3925
- 2,
3926
- [this](jsi::Runtime &runtime,
3927
- const jsi::Value &thisValue,
3928
- const jsi::Value *arguments,
3929
- size_t count) -> jsi::Value {
3930
-
3931
-
3932
- if (count > 1 && arguments[1].isObject()) {
3933
-
3934
- auto location = getHostObject<WebGLUniformLocation>(
3935
- runtime, arguments[0]);
3936
- auto data = arguments[1].asObject(
3937
- runtime);
3938
-
3939
- if (data.isUint32Array(runtime)) {
3940
- auto array = data.getTypedArray(
3941
- runtime);
3942
- auto slice = GetTypedArrayData<const uint32_t>(
3943
- runtime, array);
3944
- canvas_native_webgl2_uniform4uiv(
3945
- location->GetUniformLocation(),
3946
- slice,
3947
- this->GetState()
3948
- );
3949
- } else {
3950
- rust::Vec<uint32_t> buf;
3951
- auto array = data.getArray(
3952
- runtime);
3953
- auto len = array.size(runtime);
3954
- buf.reserve(len);
3955
- for (int i = 0; i < len; i++) {
3956
- auto item = array.getValueAtIndex(
3957
- runtime, i).asNumber();
3958
- buf.push_back((uint32_t) item);
3959
- }
3960
-
3961
- rust::Slice<const uint32_t> slice(
3962
- buf.data(), buf.size());
3963
-
3964
- canvas_native_webgl2_uniform4uiv(
3965
- location->GetUniformLocation(),
3966
- slice,
3967
- this->GetState()
3968
- );
3969
- }
3970
- }
3971
-
3972
- return jsi::Value::undefined();
3973
-
3974
- }
3975
- );
3976
- } else if (methodName == "uniformBlockBinding") {
3977
- return jsi::Function::createFromHostFunction(runtime,
3978
- jsi::PropNameID::forAscii(runtime, methodName),
3979
- 3,
3980
- [this](jsi::Runtime &runtime,
3981
- const jsi::Value &thisValue,
3982
- const jsi::Value *arguments,
3983
- size_t count) -> jsi::Value {
3984
- if (count > 2) {
3985
-
3986
- auto program = getHostObject<WebGLProgram>(
3987
- runtime, arguments[0]);
3988
- auto uniformBlockIndex = arguments[1].asNumber();
3989
- auto uniformBlockBinding = arguments[2].asNumber();
3990
-
3991
- if (program != nullptr) {
3992
- canvas_native_webgl2_uniform_block_binding(
3993
- program->GetProgram(),
3994
- (uint32_t) uniformBlockIndex,
3995
- (uint32_t) uniformBlockBinding,
3996
- this->GetState()
3997
- );
3998
- }
3999
-
4000
- }
4001
- return jsi::Value::undefined();
4002
- }
4003
- );
4004
- } else if (methodName == "uniformMatrix2x3fv") {
4005
- return jsi::Function::createFromHostFunction(runtime,
4006
- jsi::PropNameID::forAscii(runtime, methodName),
4007
- 3,
4008
- [this](jsi::Runtime &runtime,
4009
- const jsi::Value &thisValue,
4010
- const jsi::Value *arguments,
4011
- size_t count) -> jsi::Value {
4012
-
4013
- if (count > 2 && arguments[2].isObject()) {
4014
-
4015
- auto location = getHostObject<WebGLUniformLocation>(
4016
- runtime, arguments[0]);
4017
- auto transpose = arguments[1].asBool();
4018
- auto data = arguments[2].asObject(
4019
- runtime);
4020
-
4021
- if (data.isFloat32Array(runtime)) {
4022
- auto array = data.getTypedArray(
4023
- runtime);
4024
- auto slice = GetTypedArrayData<const float>(
4025
- runtime, array);
4026
- canvas_native_webgl2_uniform_matrix2x3fv(
4027
- location->GetUniformLocation(),
4028
- transpose,
4029
- slice,
4030
- this->GetState()
4031
- );
4032
- } else if (data.isArray(runtime)) {
4033
- rust::Vec<float> buf;
4034
- auto array = data.getArray(
4035
- runtime);
4036
- auto len = array.size(runtime);
4037
- for (int i = 0; i < len; i++) {
4038
- auto item = array.getValueAtIndex(
4039
- runtime, i);
4040
- if (item.isNumber()) {
4041
- buf.push_back(
4042
- static_cast<float>(item.asNumber()));
4043
- } else {
4044
- buf.push_back(
4045
- std::nanf(""));
4046
- }
4047
- }
4048
-
4049
- rust::Slice<const float> slice(
4050
- buf.data(), buf.size());
4051
-
4052
- canvas_native_webgl2_uniform_matrix2x3fv(
4053
- location->GetUniformLocation(),
4054
- transpose,
4055
- slice,
4056
- this->GetState()
4057
- );
4058
- }
4059
- }
4060
- return jsi::Value::undefined();
4061
-
4062
- }
4063
- );
4064
- } else if (methodName == "uniformMatrix2x4fv") {
4065
- return jsi::Function::createFromHostFunction(runtime,
4066
- jsi::PropNameID::forAscii(runtime, methodName),
4067
- 3,
4068
- [this](jsi::Runtime &runtime,
4069
- const jsi::Value &thisValue,
4070
- const jsi::Value *arguments,
4071
- size_t count) -> jsi::Value {
4072
-
4073
- if (count > 2 && arguments[2].isObject()) {
4074
-
4075
- auto location = getHostObject<WebGLUniformLocation>(
4076
- runtime, arguments[0]);
4077
- auto transpose = arguments[1].asBool();
4078
- auto data = arguments[2].asObject(
4079
- runtime);
4080
-
4081
- if (data.isFloat32Array(runtime)) {
4082
- auto array = data.getTypedArray(
4083
- runtime);
4084
- auto slice = GetTypedArrayData<const float>(
4085
- runtime, array);
4086
- canvas_native_webgl2_uniform_matrix2x4fv(
4087
- location->GetUniformLocation(),
4088
- transpose,
4089
- slice,
4090
- this->GetState()
4091
- );
4092
- } else if (data.isArray(runtime)) {
4093
- rust::Vec<float> buf;
4094
- auto array = data.getArray(
4095
- runtime);
4096
- auto len = array.size(runtime);
4097
- for (int i = 0; i < len; i++) {
4098
- auto item = array.getValueAtIndex(
4099
- runtime, i);
4100
- if (item.isNumber()) {
4101
- buf.push_back(
4102
- static_cast<float>(item.asNumber()));
4103
- } else {
4104
- buf.push_back(
4105
- std::nanf(""));
4106
- }
4107
- }
4108
- rust::Slice<const float> slice(
4109
- buf.data(), buf.size());
4110
-
4111
- canvas_native_webgl2_uniform_matrix2x4fv(
4112
- location->GetUniformLocation(),
4113
- transpose,
4114
- slice,
4115
- this->GetState()
4116
- );
4117
- }
4118
- }
4119
-
4120
- return jsi::Value::undefined();
4121
- }
4122
- );
4123
- } else if (methodName == "uniformMatrix3x2fv") {
4124
- return jsi::Function::createFromHostFunction(runtime,
4125
- jsi::PropNameID::forAscii(runtime, methodName),
4126
- 3,
4127
- [this](jsi::Runtime &runtime,
4128
- const jsi::Value &thisValue,
4129
- const jsi::Value *arguments,
4130
- size_t count) -> jsi::Value {
4131
-
4132
- if (count > 2 && arguments[2].isObject()) {
4133
-
4134
- auto location = getHostObject<WebGLUniformLocation>(
4135
- runtime, arguments[0]);
4136
- auto transpose = arguments[1].asBool();
4137
- auto data = arguments[2].asObject(
4138
- runtime);
4139
-
4140
- if (data.isFloat32Array(runtime)) {
4141
- auto array = data.getTypedArray(
4142
- runtime);
4143
- auto slice = GetTypedArrayData<const float>(
4144
- runtime, array);
4145
- canvas_native_webgl2_uniform_matrix3x2fv(
4146
- location->GetUniformLocation(),
4147
- transpose,
4148
- slice,
4149
- this->GetState()
4150
- );
4151
- } else if (data.isArray(runtime)) {
4152
- rust::Vec<float> buf;
4153
- auto array = data.getArray(
4154
- runtime);
4155
- auto len = array.size(runtime);
4156
- for (int i = 0; i < len; i++) {
4157
- auto item = array.getValueAtIndex(
4158
- runtime, i);
4159
- if (item.isNumber()) {
4160
- buf.push_back(
4161
- static_cast<float>(item.asNumber()));
4162
- } else {
4163
- buf.push_back(
4164
- std::nanf(""));
4165
- }
4166
- }
4167
-
4168
- rust::Slice<const float> slice(
4169
- buf.data(), buf.size());
4170
-
4171
- canvas_native_webgl2_uniform_matrix3x2fv(
4172
- location->GetUniformLocation(),
4173
- transpose,
4174
- slice,
4175
- this->GetState()
4176
- );
4177
- }
4178
- }
4179
-
4180
- return jsi::Value::undefined();
4181
- }
4182
- );
4183
- } else if (methodName == "uniformMatrix3x4fv") {
4184
- return jsi::Function::createFromHostFunction(runtime,
4185
- jsi::PropNameID::forAscii(runtime, methodName),
4186
- 3,
4187
- [this](jsi::Runtime &runtime,
4188
- const jsi::Value &thisValue,
4189
- const jsi::Value *arguments,
4190
- size_t count) -> jsi::Value {
4191
- if (count > 2 && arguments[2].isObject()) {
4192
-
4193
- auto location = getHostObject<WebGLUniformLocation>(
4194
- runtime, arguments[0]);
4195
- auto transpose = arguments[1].asBool();
4196
- auto data = arguments[2].asObject(
4197
- runtime);
4198
-
4199
- if (data.isFloat32Array(runtime)) {
4200
- auto array = data.getTypedArray(
4201
- runtime);
4202
- auto slice = GetTypedArrayData<const float>(
4203
- runtime, array);
4204
- canvas_native_webgl2_uniform_matrix3x4fv(
4205
- location->GetUniformLocation(),
4206
- transpose,
4207
- slice,
4208
- this->GetState()
4209
- );
4210
- } else if (data.isArray(runtime)) {
4211
- rust::Vec<float> buf;
4212
- auto array = data.getArray(
4213
- runtime);
4214
- auto len = array.size(runtime);
4215
- for (int i = 0; i < len; i++) {
4216
- auto item = array.getValueAtIndex(
4217
- runtime, i);
4218
- if (item.isNumber()) {
4219
- buf.push_back(
4220
- static_cast<float>(item.asNumber()));
4221
- } else {
4222
- buf.push_back(
4223
- std::nanf(""));
4224
- }
4225
- }
4226
-
4227
- rust::Slice<const float> slice(
4228
- buf.data(), buf.size());
4229
-
4230
- canvas_native_webgl2_uniform_matrix3x4fv(
4231
- location->GetUniformLocation(),
4232
- transpose,
4233
- slice,
4234
- this->GetState()
4235
- );
4236
- }
4237
- }
4238
-
4239
- return jsi::Value::undefined();
4240
- }
4241
- );
4242
- } else if (methodName == "uniformMatrix4x2fv") {
4243
- return jsi::Function::createFromHostFunction(runtime,
4244
- jsi::PropNameID::forAscii(runtime, methodName),
4245
- 3,
4246
- [this](jsi::Runtime &runtime,
4247
- const jsi::Value &thisValue,
4248
- const jsi::Value *arguments,
4249
- size_t count) -> jsi::Value {
4250
- if (count > 2 && arguments[2].isObject()) {
4251
-
4252
- auto location = getHostObject<WebGLUniformLocation>(
4253
- runtime, arguments[0]);
4254
- auto transpose = arguments[1].asBool();
4255
- auto data = arguments[2].asObject(
4256
- runtime);
4257
-
4258
- if (data.isFloat32Array(runtime)) {
4259
- auto array = data.getTypedArray(
4260
- runtime);
4261
- auto slice = GetTypedArrayData<const float>(
4262
- runtime, array);
4263
- canvas_native_webgl2_uniform_matrix4x2fv(
4264
- location->GetUniformLocation(),
4265
- transpose,
4266
- slice,
4267
- this->GetState()
4268
- );
4269
- } else if (data.isArray(runtime)) {
4270
- rust::Vec<float> buf;
4271
- auto array = data.getArray(
4272
- runtime);
4273
- auto len = array.size(runtime);
4274
- for (int i = 0; i < len; i++) {
4275
- auto item = array.getValueAtIndex(
4276
- runtime, i);
4277
- if (item.isNumber()) {
4278
- buf.push_back(
4279
- static_cast<float>(item.asNumber()));
4280
- } else {
4281
- buf.push_back(
4282
- std::nanf(""));
4283
- }
4284
- }
4285
-
4286
- rust::Slice<const float> slice(
4287
- buf.data(), buf.size());
4288
-
4289
- canvas_native_webgl2_uniform_matrix4x2fv(
4290
- location->GetUniformLocation(),
4291
- transpose,
4292
- slice,
4293
- this->GetState()
4294
- );
4295
- }
4296
- }
4297
- return jsi::Value::undefined();
4298
-
4299
- }
4300
- );
4301
- } else if (methodName == "uniformMatrix4x3fv") {
4302
- return jsi::Function::createFromHostFunction(runtime,
4303
- jsi::PropNameID::forAscii(runtime, methodName),
4304
- 3,
4305
- [this](jsi::Runtime &runtime,
4306
- const jsi::Value &thisValue,
4307
- const jsi::Value *arguments,
4308
- size_t count) -> jsi::Value {
4309
- if (count > 2 && arguments[2].isObject()) {
4310
-
4311
- auto location = getHostObject<WebGLUniformLocation>(
4312
- runtime, arguments[0]);
4313
- auto transpose = arguments[1].asBool();
4314
- auto data = arguments[2].asObject(
4315
- runtime);
4316
-
4317
- if (data.isFloat32Array(runtime)) {
4318
- auto array = data.getTypedArray(
4319
- runtime);
4320
- auto slice = GetTypedArrayData<const float>(
4321
- runtime, array);
4322
- canvas_native_webgl2_uniform_matrix4x3fv(
4323
- location->GetUniformLocation(),
4324
- transpose,
4325
- slice,
4326
- this->GetState()
4327
- );
4328
- } else if (data.isArray(runtime)) {
4329
- rust::Vec<float> buf;
4330
- auto array = data.getArray(
4331
- runtime);
4332
- auto len = array.size(runtime);
4333
- for (int i = 0; i < len; i++) {
4334
- auto item = array.getValueAtIndex(
4335
- runtime, i);
4336
- if (item.isNumber()) {
4337
- buf.push_back(
4338
- static_cast<float>(item.asNumber()));
4339
- } else {
4340
- buf.push_back(
4341
- std::nanf(""));
4342
- }
4343
- }
4344
-
4345
- rust::Slice<const float> slice(
4346
- buf.data(), buf.size());
4347
-
4348
- canvas_native_webgl2_uniform_matrix4x3fv(
4349
- location->GetUniformLocation(),
4350
- transpose,
4351
- slice,
4352
- this->GetState()
4353
- );
4354
- }
4355
- }
4356
-
4357
- return jsi::Value::undefined();
4358
- }
4359
- );
4360
- } else if (methodName == "vertexAttribDivisor") {
4361
- return jsi::Function::createFromHostFunction(runtime,
4362
- jsi::PropNameID::forAscii(runtime, methodName),
4363
- 2,
4364
- [this](jsi::Runtime &runtime,
4365
- const jsi::Value &thisValue,
4366
- const jsi::Value *arguments,
4367
- size_t count) -> jsi::Value {
4368
- if (count > 1) {
4369
- auto index = arguments[0].asNumber();
4370
- auto divisor = arguments[1].asNumber();
4371
- canvas_native_webgl2_vertex_attrib_divisor(
4372
- (uint32_t) index,
4373
- (uint32_t) divisor,
4374
- this->GetState()
4375
- );
4376
- }
4377
- return jsi::Value::undefined();
4378
- }
4379
- );
4380
- } else if (methodName == "vertexAttribI4i") {
4381
- return jsi::Function::createFromHostFunction(runtime,
4382
- jsi::PropNameID::forAscii(runtime, methodName),
4383
- 5,
4384
- [this](jsi::Runtime &runtime,
4385
- const jsi::Value &thisValue,
4386
- const jsi::Value *arguments,
4387
- size_t count) -> jsi::Value {
4388
-
4389
- if (count > 4) {
4390
- auto index = arguments[0].asNumber();
4391
- auto v0 = arguments[1].asNumber();
4392
- auto v1 = arguments[2].asNumber();
4393
- auto v2 = arguments[3].asNumber();
4394
- auto v3 = arguments[4].asNumber();
4395
- canvas_native_webgl2_vertex_attrib_i4i(
4396
- (uint32_t) index,
4397
- (int32_t) v0,
4398
- (int32_t) v1,
4399
- (int32_t) v2,
4400
- (int32_t) v3,
4401
- this->GetState()
4402
- );
4403
- }
4404
- return jsi::Value::undefined();
4405
- }
4406
- );
4407
- } else if (methodName == "vertexAttribI4iv") {
4408
- return jsi::Function::createFromHostFunction(runtime,
4409
- jsi::PropNameID::forAscii(runtime, methodName),
4410
- 2,
4411
- [this](jsi::Runtime &runtime,
4412
- const jsi::Value &thisValue,
4413
- const jsi::Value *arguments,
4414
- size_t count) -> jsi::Value {
4415
-
4416
- if (count > 1 && arguments[1].isObject()) {
4417
- auto index = (uint32_t) arguments[0].asNumber();
4418
- auto value = arguments[1].asObject(
4419
- runtime);
4420
- if (value.isInt32Array(runtime)) {
4421
- auto array = value.getTypedArray(
4422
- runtime);
4423
- auto slice = GetTypedArrayData<const int32_t>(
4424
- runtime, array);
4425
- canvas_native_webgl2_vertex_attrib_i4iv(
4426
- index,
4427
- slice,
4428
- this->GetState()
4429
- );
4430
- } else if (value.isArray(runtime)) {
4431
- auto array = value.getArray(
4432
- runtime);
4433
- auto len = array.size(runtime);
4434
- rust::Vec<int32_t> buf;
4435
- buf.reserve(len);
4436
- for (int i = 0; i < len; i++) {
4437
- auto item = (int32_t) array.getValueAtIndex(
4438
- runtime, i).asNumber();
4439
- buf.push_back(item);
4440
- }
4441
-
4442
- rust::Slice<const int32_t> slice(
4443
- buf.data(), buf.size());
4444
-
4445
- canvas_native_webgl2_vertex_attrib_i4iv(
4446
- index,
4447
- slice,
4448
- this->GetState()
4449
- );
4450
- }
4451
- }
4452
-
4453
- return jsi::Value::undefined();
4454
- }
4455
- );
4456
- } else if (methodName == "vertexAttribI4ui") {
4457
- return jsi::Function::createFromHostFunction(runtime,
4458
- jsi::PropNameID::forAscii(runtime, methodName),
4459
- 5,
4460
- [this](jsi::Runtime &runtime,
4461
- const jsi::Value &thisValue,
4462
- const jsi::Value *arguments,
4463
- size_t count) -> jsi::Value {
4464
-
4465
- if (count > 4) {
4466
- auto index = (uint32_t) arguments[0].asNumber();
4467
- auto v0 = (uint32_t) arguments[1].asNumber();
4468
- auto v1 = (uint32_t) arguments[2].asNumber();
4469
- auto v2 = (uint32_t) arguments[3].asNumber();
4470
- auto v3 = (uint32_t) arguments[4].asNumber();
4471
-
4472
- canvas_native_webgl2_vertex_attrib_i4ui(
4473
- index,
4474
- v0,
4475
- v1,
4476
- v2,
4477
- v3,
4478
- this->GetState()
4479
- );
4480
- }
4481
- return jsi::Value::undefined();
4482
- }
4483
- );
4484
- } else if (methodName == "vertexAttribI4uiv") {
4485
- return jsi::Function::createFromHostFunction(runtime,
4486
- jsi::PropNameID::forAscii(runtime, methodName),
4487
- 2,
4488
- [this](jsi::Runtime &runtime,
4489
- const jsi::Value &thisValue,
4490
- const jsi::Value *arguments,
4491
- size_t count) -> jsi::Value {
4492
-
4493
-
4494
- if (count > 1 && arguments[1].isObject()) {
4495
- auto index = (uint32_t) arguments[0].asNumber();
4496
- auto value = arguments[1].asObject(
4497
- runtime);
4498
- if (value.isUint32Array(runtime)) {
4499
- auto array = value.getTypedArray(
4500
- runtime);
4501
- auto slice = GetTypedArrayData<const uint32_t>(
4502
- runtime, array);
4503
- canvas_native_webgl2_vertex_attrib_i4uiv(
4504
- index,
4505
- slice,
4506
- this->GetState()
4507
- );
4508
- } else if (value.isArray(runtime)) {
4509
- auto array = value.getArray(
4510
- runtime);
4511
- auto len = array.size(runtime);
4512
- rust::Vec<uint32_t> buf;
4513
- buf.reserve(len);
4514
- for (int i = 0; i < len; i++) {
4515
- auto item = (uint32_t) array.getValueAtIndex(
4516
- runtime, i).asNumber();
4517
- buf.push_back(item);
4518
- }
4519
-
4520
- rust::Slice<const uint32_t> slice(
4521
- buf.data(), buf.size());
4522
-
4523
- canvas_native_webgl2_vertex_attrib_i4uiv(
4524
- index,
4525
- slice,
4526
- this->GetState()
4527
- );
4528
- }
4529
- }
4530
- return jsi::Value::undefined();
4531
- }
4532
- );
4533
- }
4534
-
4535
- if (!prop.isUndefined()) {
4536
- return prop;
4537
- }
4538
- auto gl_return = WebGLRenderingContext::get(runtime, name);
4539
- if (!gl_return.isUndefined()) {
4540
- return gl_return;
4541
- }
4542
- return jsi::Value::undefined();
4543
- }