@nativescript/canvas 2.0.0-alpha.3 → 2.0.0-alpha.31

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