UNPKG

45.8 kBSource Map (JSON)View Raw
1{"version":3,"file":"GLView.js","sourceRoot":"","sources":["../src/GLView.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { NativeModulesProxy, requireNativeViewManager } from '@unimodules/core';\nimport { Platform, View, ViewPropTypes, findNodeHandle } from 'react-native';\n\nconst packageJSON = require('../package.json');\n\nimport { SurfaceCreateEvent, GLSnapshot, ExpoWebGLRenderingContext, SnapshotOptions, BaseGLViewProps } from './GLView.types';\nimport { UnavailabilityError } from '@unimodules/core';\n\ndeclare let global: any;\n\nconst { ExponentGLObjectManager, ExponentGLViewManager } = NativeModulesProxy;\n\n\ntype GLViewProps = {\n\n /**\n * Called when the OpenGL context is created, with the context object as a parameter. The context\n * object has an API mirroring WebGL's WebGLRenderingContext.\n */\n onContextCreate(gl: ExpoWebGLRenderingContext): void;\n\n /**\n * [iOS only] Number of samples for Apple's built-in multisampling.\n */\n msaaSamples: number;\n\n /**\n * A ref callback for the native GLView\n */\n nativeRef_EXPERIMENTAL?(callback: ComponentOrHandle | null);\n} & BaseGLViewProps;\n\ntype ComponentOrHandle = null | number | React.Component<any, any> | React.ComponentClass<any>;\nconst NativeView = requireNativeViewManager('ExponentGLView');\n\n/**\n * A component that acts as an OpenGL render target\n */\nexport class GLView extends React.Component<GLViewProps> {\n static NativeView: any;\n static propTypes = {\n onContextCreate: PropTypes.func,\n msaaSamples: PropTypes.number,\n nativeRef_EXPERIMENTAL: PropTypes.func,\n ...ViewPropTypes,\n };\n\n static defaultProps = {\n msaaSamples: 4,\n };\n\n static async createContextAsync(): Promise<ExpoWebGLRenderingContext> {\n const { exglCtxId } = await ExponentGLObjectManager.createContextAsync();\n return getGl(exglCtxId);\n }\n\n static async destroyContextAsync(exgl?: ExpoWebGLRenderingContext | number): Promise<boolean> {\n const exglCtxId = getContextId(exgl);\n return ExponentGLObjectManager.destroyContextAsync(exglCtxId);\n }\n\n static async takeSnapshotAsync(\n exgl?: ExpoWebGLRenderingContext | number,\n options: SnapshotOptions = {}\n ): Promise<GLSnapshot> {\n const exglCtxId = getContextId(exgl);\n return ExponentGLObjectManager.takeSnapshotAsync(exglCtxId, options);\n }\n\n nativeRef: ComponentOrHandle = null;\n exglCtxId?: number;\n\n render() {\n const {\n onContextCreate, // eslint-disable-line no-unused-vars\n msaaSamples,\n ...viewProps\n } = this.props;\n\n return (\n <View {...viewProps}>\n <NativeView\n ref={this._setNativeRef}\n style={{\n flex: 1,\n ...(Platform.OS === 'ios'\n ? {\n backgroundColor: 'transparent',\n }\n : {}),\n }}\n onSurfaceCreate={this._onSurfaceCreate}\n msaaSamples={Platform.OS === 'ios' ? msaaSamples : undefined}\n />\n </View>\n );\n }\n\n _setNativeRef = (nativeRef: ComponentOrHandle): void => {\n if (this.props.nativeRef_EXPERIMENTAL) {\n this.props.nativeRef_EXPERIMENTAL(nativeRef);\n }\n this.nativeRef = nativeRef;\n };\n\n _onSurfaceCreate = ({ nativeEvent: { exglCtxId } }: SurfaceCreateEvent): void => {\n const gl = getGl(exglCtxId);\n\n this.exglCtxId = exglCtxId;\n\n if (this.props.onContextCreate) {\n this.props.onContextCreate(gl);\n }\n };\n\n async startARSessionAsync(): Promise<any> {\n if (!ExponentGLViewManager.startARSessionAsync) {\n throw new UnavailabilityError('expo-gl', 'startARSessionAsync')\n }\n return await ExponentGLViewManager.startARSessionAsync(findNodeHandle(this.nativeRef));\n }\n\n async createCameraTextureAsync(cameraRefOrHandle: ComponentOrHandle): Promise<WebGLTexture> {\n if (!ExponentGLObjectManager.createCameraTextureAsync) {\n throw new UnavailabilityError('expo-gl', 'createCameraTextureAsync')\n }\n\n const { exglCtxId } = this;\n\n if (!exglCtxId) {\n throw new Error(\"GLView's surface is not created yet!\");\n }\n\n const cameraTag = findNodeHandle(cameraRefOrHandle);\n const { exglObjId } = await ExponentGLObjectManager.createCameraTextureAsync(\n exglCtxId,\n cameraTag\n );\n return new WebGLTexture(exglObjId);\n }\n\n async destroyObjectAsync(glObject: WebGLObject): Promise<boolean> {\n if (!ExponentGLObjectManager.destroyObjectAsync) {\n throw new UnavailabilityError('expo-gl', 'destroyObjectAsync')\n }\n return await ExponentGLObjectManager.destroyObjectAsync(glObject.id);\n }\n\n async takeSnapshotAsync(options: SnapshotOptions = {}): Promise<GLSnapshot> {\n if (!GLView.takeSnapshotAsync) {\n throw new UnavailabilityError('expo-gl', 'takeSnapshotAsync')\n }\n const { exglCtxId } = this;\n return await GLView.takeSnapshotAsync(exglCtxId, options);\n }\n}\n\nGLView.NativeView = NativeView;\n\n// JavaScript WebGL types to wrap around native objects\n\nclass WebGLRenderingContext {\n __exglCtxId?: number;\n}\n\nclass WebGL2RenderingContext extends WebGLRenderingContext {}\n\ntype WebGLObjectId = any;\n\nconst idToObject = {};\n\nclass WebGLObject {\n id: WebGLObjectId;\n\n constructor(id: WebGLObjectId) {\n if (idToObject[id]) {\n throw new Error(`WebGL object with underlying EXGLObjectId '${id}' already exists!`);\n }\n this.id = id; // Native GL object id\n }\n toString() {\n return `[WebGLObject ${this.id}]`;\n }\n}\n\nconst wrapObject = (type, id: WebGLObjectId) => {\n const found = idToObject[id];\n if (found) {\n return found;\n }\n return (idToObject[id] = new type(id));\n};\n\nconst objectId = (obj: WebGLObject) => obj && obj.id;\n\nclass WebGLBuffer extends WebGLObject {}\n\nclass WebGLFramebuffer extends WebGLObject {}\n\nclass WebGLProgram extends WebGLObject {}\n\nclass WebGLRenderbuffer extends WebGLObject {}\n\nclass WebGLShader extends WebGLObject {}\n\nclass WebGLTexture extends WebGLObject {}\n\nclass WebGLUniformLocation {\n id: WebGLObjectId;\n\n constructor(id: WebGLObjectId) {\n this.id = id; // Native GL object id\n }\n}\n\nclass WebGLActiveInfo {\n constructor(obj) {\n Object.assign(this, obj);\n }\n}\n\nclass WebGLShaderPrecisionFormat {\n constructor(obj) {\n Object.assign(this, obj);\n }\n}\n\n// WebGL2 classes\nclass WebGLQuery extends WebGLObject {}\n\nclass WebGLSampler extends WebGLObject {}\n\nclass WebGLSync extends WebGLObject {}\n\nclass WebGLTransformFeedback extends WebGLObject {}\n\nclass WebGLVertexArrayObject extends WebGLObject {}\n\n// Many functions need wrapping/unwrapping of arguments and return value. We handle each case\n// specifically so we can write the tightest code for better performance.\nconst wrapMethods = gl => {\n const wrap = (methodNames, wrapper) =>\n (Array.isArray(methodNames) ? methodNames : [methodNames]).forEach(\n methodName => (gl[methodName] = wrapper(gl[methodName]))\n );\n\n // We can be slow in `gl.getParameter(...)` since it's a blocking call anyways\n const getParameterTypes = {\n [gl.ARRAY_BUFFER_BINDING]: WebGLBuffer,\n [gl.COPY_READ_BUFFER_BINDING]: WebGLBuffer,\n [gl.COPY_WRITE_BUFFER_BINDING]: WebGLBuffer,\n [gl.CURRENT_PROGRAM]: WebGLProgram,\n [gl.DRAW_FRAMEBUFFER_BINDING]: WebGLFramebuffer,\n [gl.ELEMENT_ARRAY_BUFFER_BINDING]: WebGLBuffer,\n [gl.READ_FRAMEBUFFER_BINDING]: WebGLFramebuffer,\n [gl.RENDERBUFFER_BINDING]: WebGLRenderbuffer,\n [gl.SAMPLER_BINDING]: WebGLSampler,\n [gl.TEXTURE_BINDING_2D_ARRAY]: WebGLTexture,\n [gl.TEXTURE_BINDING_2D]: WebGLTexture,\n [gl.TEXTURE_BINDING_3D]: WebGLTexture,\n [gl.TEXTURE_BINDING_CUBE_MAP]: WebGLTexture,\n [gl.TRANSFORM_FEEDBACK_BINDING]: WebGLTransformFeedback,\n [gl.TRANSFORM_FEEDBACK_BUFFER_BINDING]: WebGLBuffer,\n [gl.UNIFORM_BUFFER_BINDING]: WebGLBuffer,\n [gl.VERTEX_ARRAY_BINDING]: WebGLVertexArrayObject,\n };\n wrap('getParameter', orig => pname => {\n let ret = orig.call(gl, pname);\n if (pname === gl.VERSION) {\n // Wrap native version name\n ret = `WebGL 2.0 (Expo-${Platform.OS}-${packageJSON.version}) (${ret})`;\n }\n const type = getParameterTypes[pname];\n return type ? wrapObject(type, ret) : ret;\n });\n\n // Buffers\n wrap('bindBuffer', orig => (target, buffer) => orig.call(gl, target, buffer && buffer.id));\n wrap('createBuffer', orig => () => wrapObject(WebGLBuffer, orig.call(gl)));\n wrap('deleteBuffer', orig => buffer => orig.call(gl, buffer && buffer.id));\n wrap('isBuffer', orig => buffer => buffer instanceof WebGLBuffer && orig.call(gl, buffer.id));\n\n // Framebuffers\n wrap('bindFramebuffer', orig => (target, framebuffer) =>\n orig.call(gl, target, framebuffer && framebuffer.id)\n );\n wrap('createFramebuffer', orig => () => wrapObject(WebGLFramebuffer, orig.call(gl)));\n wrap('deleteFramebuffer', orig => framebuffer => orig.call(gl, framebuffer && framebuffer.id));\n wrap('framebufferRenderbuffer', orig => (target, attachment, rbtarget, rb) =>\n orig.call(gl, target, attachment, rbtarget, rb && rb.id)\n );\n wrap('framebufferTexture2D', orig => (target, attachment, textarget, tex, level) =>\n orig.call(gl, target, attachment, textarget, tex && tex.id, level)\n );\n wrap('isFramebuffer', orig => framebuffer =>\n framebuffer instanceof WebGLFramebuffer && orig.call(gl, framebuffer.id)\n );\n wrap('framebufferTextureLayer', orig => (target, attachment, texture, level, layer) => {\n return orig.call(gl, target, attachment, objectId(texture), level, layer);\n });\n\n // Renderbuffers\n wrap('bindRenderbuffer', orig => (target, renderbuffer) =>\n orig.call(gl, target, renderbuffer && renderbuffer.id)\n );\n wrap('createRenderbuffer', orig => () => wrapObject(WebGLRenderbuffer, orig.call(gl)));\n wrap('deleteRenderbuffer', orig => renderbuffer =>\n orig.call(gl, renderbuffer && renderbuffer.id)\n );\n wrap('isRenderbuffer', orig => renderbuffer =>\n renderbuffer instanceof WebGLRenderbuffer && orig.call(gl, renderbuffer.id)\n );\n\n // Textures\n wrap('bindTexture', orig => (target, texture) => orig.call(gl, target, texture && texture.id));\n wrap('createTexture', orig => () => wrapObject(WebGLTexture, orig.call(gl)));\n wrap('deleteTexture', orig => texture => orig.call(gl, texture && texture.id));\n wrap('isTexture', orig => texture =>\n texture instanceof WebGLTexture && orig.call(gl, texture.id)\n );\n\n // Programs and shaders\n wrap('attachShader', orig => (program, shader) =>\n orig.call(gl, program && program.id, shader && shader.id)\n );\n wrap('bindAttribLocation', orig => (program, index, name) =>\n orig.call(gl, program && program.id, index, name)\n );\n wrap('compileShader', orig => shader => orig.call(gl, shader && shader.id));\n wrap('createProgram', orig => () => wrapObject(WebGLProgram, orig.call(gl)));\n wrap('createShader', orig => type => wrapObject(WebGLShader, orig.call(gl, type)));\n wrap('deleteProgram', orig => program => orig.call(gl, program && program.id));\n wrap('deleteShader', orig => shader => orig.call(gl, shader && shader.id));\n wrap('detachShader', orig => (program, shader) =>\n orig.call(gl, program && program.id, shader && shader.id)\n );\n wrap('getAttachedShaders', orig => program =>\n orig.call(gl, program && program.id).map(id => wrapObject(WebGLShader, id))\n );\n wrap('getProgramParameter', orig => (program, pname) =>\n orig.call(gl, program && program.id, pname)\n );\n wrap('getProgramInfoLog', orig => program => orig.call(gl, program && program.id));\n wrap('getShaderParameter', orig => (shader, pname) => orig.call(gl, shader && shader.id, pname));\n wrap('getShaderPrecisionFormat', orig => (shadertype, precisiontype) =>\n new WebGLShaderPrecisionFormat(orig.call(gl, shadertype, precisiontype))\n );\n wrap('getShaderInfoLog', orig => shader => orig.call(gl, shader && shader.id));\n wrap('getShaderSource', orig => shader => orig.call(gl, shader && shader.id));\n wrap('linkProgram', orig => program => orig.call(gl, program && program.id));\n wrap('shaderSource', orig => (shader, source) => orig.call(gl, shader && shader.id, source));\n wrap('useProgram', orig => program => orig.call(gl, program && program.id));\n wrap('validateProgram', orig => program => orig.call(gl, program && program.id));\n wrap('isShader', orig => shader => shader instanceof WebGLShader && orig.call(gl, shader.id));\n wrap('isProgram', orig => program =>\n program instanceof WebGLProgram && orig.call(gl, program.id)\n );\n wrap('getFragDataLocation', orig => program => orig.call(gl, objectId(program)));\n\n // Uniforms and attributes\n wrap('getActiveAttrib', orig => (program, index) =>\n new WebGLActiveInfo(orig.call(gl, program && program.id, index))\n );\n wrap('getActiveUniform', orig => (program, index) =>\n new WebGLActiveInfo(orig.call(gl, program && program.id, index))\n );\n wrap('getAttribLocation', orig => (program, name) => orig.call(gl, program && program.id, name));\n wrap('getUniform', orig => (program, location) =>\n orig.call(gl, program && program.id, location && location.id)\n );\n wrap('getUniformLocation', orig => (program, name) =>\n new WebGLUniformLocation(orig.call(gl, program && program.id, name))\n );\n wrap(['uniform1f', 'uniform1i', 'uniform1ui'], orig => (loc, x) =>\n orig.call(gl, objectId(loc), x)\n );\n wrap(['uniform2f', 'uniform2i', 'uniform2ui'], orig => (loc, x, y) =>\n orig.call(gl, objectId(loc), x, y)\n );\n wrap(['uniform3f', 'uniform3i', 'uniform3ui'], orig => (loc, x, y, z) =>\n orig.call(gl, objectId(loc), x, y, z)\n );\n wrap(['uniform4f', 'uniform4i', 'uniform4ui'], orig => (loc, x, y, z, w) =>\n orig.call(gl, objectId(loc), x, y, z, w)\n );\n wrap(['uniform1fv', 'uniform2fv', 'uniform3fv', 'uniform4fv'], orig => (loc, val) =>\n orig.call(gl, objectId(loc), new Float32Array(val))\n );\n wrap(['uniform1iv', 'uniform2iv', 'uniform3iv', 'uniform4iv'], orig => (loc, val) =>\n orig.call(gl, objectId(loc), new Int32Array(val))\n );\n wrap(['uniform1uiv', 'uniform2uiv', 'uniform3uiv', 'uniform4uiv'], orig => (loc, val) =>\n orig.call(gl, objectId(loc), new Uint32Array(val))\n );\n wrap(\n [\n 'uniformMatrix2fv',\n 'uniformMatrix3fv',\n 'uniformMatrix4fv',\n 'uniformMatrix3x2fv',\n 'uniformMatrix4x2fv',\n 'uniformMatrix2x3fv',\n 'uniformMatrix4x3fv',\n 'uniformMatrix2x4fv',\n 'uniformMatrix3x4fv',\n ],\n orig => (loc, transpose, val) => orig.call(gl, loc && loc.id, transpose, new Float32Array(val))\n );\n wrap(\n ['vertexAttrib1fv', 'vertexAttrib2fv', 'vertexAttrib3fv', 'vertexAttrib4fv'],\n orig => (index, val) => orig.call(gl, index, new Float32Array(val))\n );\n wrap('vertexAttribI4iv', orig => (index, val) => orig.call(gl, index, new Int32Array(val)));\n wrap('vertexAttribI4uiv', orig => (index, val) => orig.call(gl, index, new Uint32Array(val)));\n\n // Query objects\n wrap('createQuery', orig => () => wrapObject(WebGLQuery, orig.call(gl)));\n wrap('deleteQuery', orig => query => orig.call(gl, objectId(query)));\n wrap('beginQuery', orig => (target, query) => orig.call(gl, target, objectId(query)));\n wrap('getQuery', orig => (target, pname) => {\n const id = orig.call(gl, target, pname);\n return id ? wrapObject(WebGLQuery, id) : id;\n });\n wrap('getQueryParameter', orig => (query, pname) => orig.call(gl, objectId(query), pname));\n\n // Samplers\n wrap('bindSampler', orig => (unit, sampler) => orig.call(gl, unit, objectId(sampler)));\n wrap('createSampler', orig => () => wrapObject(WebGLSampler, orig.call(gl)));\n wrap('deleteSampler', orig => sampler => orig.call(gl, objectId(sampler)));\n wrap('isSampler', orig => sampler =>\n sampler instanceof WebGLSampler && orig.call(gl, sampler.id)\n );\n wrap(['samplerParameteri', 'samplerParameterf'], orig => (sampler, pname, param) => {\n return orig.call(gl, objectId(sampler), pname, param);\n });\n wrap('getSamplerParameter', orig => (sampler, pname) => {\n return orig.call(gl, objectId(sampler), pname);\n });\n\n // Transform feedback\n wrap('bindTransformFeedback', orig => (target, transformFeedback) => {\n return orig.call(gl, target, objectId(transformFeedback));\n });\n wrap('createTransformFeedback', orig => () => wrapObject(WebGLTransformFeedback, orig.call(gl)));\n wrap('deleteTransformFeedback', orig => transformFeedback => {\n return orig.call(gl, objectId(transformFeedback));\n });\n wrap('transformFeedbackVaryings', orig => (program, varyings, bufferMode) => {\n return orig.call(gl, objectId(program), varyings, bufferMode);\n });\n wrap('getTransformFeedbackVarying', orig => (program, index) => {\n return new WebGLActiveInfo(orig.call(gl, objectId(program), index));\n });\n\n // Uniforms and attributes\n wrap(['bindBufferBase', 'bindBufferRange'], orig => (target, index, buffer, ...rest) => {\n return orig.call(gl, target, index, objectId(buffer), ...rest);\n });\n wrap('getUniformIndices', orig => (program, uniformNames) => {\n // according to WebGL2 specs, it returns Array instead of Uint32Array\n const uintArray = orig.call(gl, objectId(program), uniformNames);\n return Array.from(uintArray);\n });\n wrap('getActiveUniforms', orig => (program, uniformIndices, pname) => {\n // according to WebGL2 specs, it returns Array instead of Int32Array\n const intArray = orig.call(gl, objectId(program), new Uint32Array(uniformIndices), pname);\n const boolResult = pname === gl.UNIFORM_IS_ROW_MAJOR;\n const arr = Array.from(intArray);\n return boolResult ? arr.map(val => !!val) : arr;\n });\n wrap('getUniformBlockIndex', orig => (program, uniformBlockName) =>\n orig.call(gl, objectId(program), uniformBlockName)\n );\n wrap('getActiveUniformBlockName', orig => (program, uniformBlockIndex) =>\n orig.call(gl, objectId(program), uniformBlockIndex)\n );\n wrap('uniformBlockBinding', orig => (program, uniformBlockIndex, uniformBlockBinding) => {\n return orig.call(gl, objectId(program), uniformBlockIndex, uniformBlockBinding);\n });\n\n // Vertex array objects\n wrap('bindVertexArray', orig => vertexArray => orig.call(gl, vertexArray && vertexArray.id));\n wrap('createVertexArray', orig => () => wrapObject(WebGLVertexArrayObject, orig.call(gl)));\n wrap('deleteVertexArray', orig => vertexArray => orig.call(gl, vertexArray && vertexArray.id));\n wrap('isVertexArray', orig => vertexArray =>\n vertexArray instanceof WebGLVertexArrayObject && orig.call(gl, vertexArray.id)\n );\n};\n\n// Get the GL interface from an EXGLContextID and do JS-side setup\nconst getGl = (exglCtxId: number): ExpoWebGLRenderingContext => {\n const gl = global.__EXGLContexts[exglCtxId];\n gl.__exglCtxId = exglCtxId;\n delete global.__EXGLContexts[exglCtxId];\n\n // determine the prototype to use, depending on OpenGL ES version\n const glesVersion = gl.getParameter(gl.VERSION);\n const supportsWebGL2 = parseFloat(glesVersion.split(/[^\\d.]+/g).join(' ')) >= 3.0;\n const prototype = supportsWebGL2\n ? global.WebGL2RenderingContext.prototype\n : global.WebGLRenderingContext.prototype;\n\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(gl, prototype);\n } else {\n // Delete this path when we are competely sure we're using modern JSC on Android. iOS 9+\n // supports Object.setPrototypeOf.\n gl.__proto__ = prototype; // eslint-disable-line no-proto\n }\n\n wrapMethods(gl);\n\n // No canvas yet...\n gl.canvas = null;\n\n // Drawing buffer width/height\n // TODO(nikki): Make this dynamic\n const viewport = gl.getParameter(gl.VIEWPORT);\n gl.drawingBufferWidth = viewport[2];\n gl.drawingBufferHeight = viewport[3];\n\n // Enable/disable logging of all GL function calls\n let enableLogging = false;\n\n // $FlowIssue: Flow wants a \"value\" field\n Object.defineProperty(gl, 'enableLogging', {\n configurable: true,\n get(): boolean {\n return enableLogging;\n },\n set(enable: boolean): void {\n if (enable === enableLogging) {\n return;\n }\n if (enable) {\n Object.keys(gl).forEach(key => {\n if (typeof gl[key] === 'function') {\n const original = gl[key];\n gl[key] = (...args) => {\n console.log(`EXGL: ${key}(${args.join(', ')})`);\n const r = original.apply(gl, args);\n console.log(`EXGL: = ${r}`);\n return r;\n };\n gl[key].original = original;\n }\n });\n } else {\n Object.keys(gl).forEach(key => {\n if (typeof gl[key] === 'function' && gl[key].original) {\n gl[key] = gl[key].original;\n }\n });\n }\n enableLogging = enable;\n },\n });\n\n return gl;\n};\n\nconst getContextId = (exgl?: ExpoWebGLRenderingContext | number): number => {\n const exglCtxId = exgl && typeof exgl === 'object' ? exgl.__exglCtxId : exgl;\n\n if (!exglCtxId || typeof exglCtxId !== 'number') {\n throw new Error(`Invalid EXGLContext id: ${String(exglCtxId)}`);\n }\n return exglCtxId;\n};\n\nglobal.WebGLRenderingContext = WebGLRenderingContext;\nglobal.WebGL2RenderingContext = WebGL2RenderingContext;\nglobal.WebGLObject = WebGLObject;\nglobal.WebGLBuffer = WebGLBuffer;\nglobal.WebGLFramebuffer = WebGLFramebuffer;\nglobal.WebGLProgram = WebGLProgram;\nglobal.WebGLRenderbuffer = WebGLRenderbuffer;\nglobal.WebGLShader = WebGLShader;\nglobal.WebGLTexture = WebGLTexture;\nglobal.WebGLUniformLocation = WebGLUniformLocation;\nglobal.WebGLActiveInfo = WebGLActiveInfo;\nglobal.WebGLShaderPrecisionFormat = WebGLShaderPrecisionFormat;\nglobal.WebGLQuery = WebGLQuery;\nglobal.WebGLSampler = WebGLSampler;\nglobal.WebGLSync = WebGLSync;\nglobal.WebGLTransformFeedback = WebGLTransformFeedback;\nglobal.WebGLVertexArrayObject = WebGLVertexArrayObject;\n"]}
\No newline at end of file