diff --git "a/demo.js" "b/demo.js" --- "a/demo.js" +++ "b/demo.js" @@ -64,7 +64,7 @@ var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIR // --pre-jses are emitted after the Module integration code, so that they can // refer to Module (if they choose; they can also define Module) -// include: /tmp/tmpbb7wed0s.js +// include: /tmp/tmp1aawh2u6.js if (!Module['expectedDataFileDownloads']) Module['expectedDataFileDownloads'] = 0; Module['expectedDataFileDownloads']++; @@ -192,25 +192,25 @@ var ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIR } } - loadPackage({"files": [{"filename": "/crate1_diffuse.png", "start": 0, "end": 1584288}, {"filename": "/texture.frag", "start": 1584288, "end": 1584463}, {"filename": "/texture.vert", "start": 1584463, "end": 1584692}], "remote_package_size": 1584692}); + loadPackage({"files": [{"filename": "/crate1_diffuse.png", "start": 0, "end": 1584288}, {"filename": "/texture.frag", "start": 1584288, "end": 1584707}, {"filename": "/texture.vert", "start": 1584707, "end": 1585019}], "remote_package_size": 1585019}); })(); -// end include: /tmp/tmpbb7wed0s.js -// include: /tmp/tmpai05u901.js +// end include: /tmp/tmp1aawh2u6.js +// include: /tmp/tmpkvqg33xm.js // All the pre-js content up to here must remain later on, we need to run // it. if ((typeof ENVIRONMENT_IS_WASM_WORKER != 'undefined' && ENVIRONMENT_IS_WASM_WORKER) || (typeof ENVIRONMENT_IS_PTHREAD != 'undefined' && ENVIRONMENT_IS_PTHREAD) || (typeof ENVIRONMENT_IS_AUDIO_WORKLET != 'undefined' && ENVIRONMENT_IS_AUDIO_WORKLET)) Module['preRun'] = []; var necessaryPreJSTasks = Module['preRun'].slice(); - // end include: /tmp/tmpai05u901.js -// include: /tmp/tmpvwtvoipm.js + // end include: /tmp/tmpkvqg33xm.js +// include: /tmp/tmprrbnblgv.js if (!Module['preRun']) throw 'Module.preRun should exist because file support used it; did a pre-js delete it?'; necessaryPreJSTasks.forEach((task) => { if (Module['preRun'].indexOf(task) < 0) throw 'All preRun tasks that exist before user pre-js code should remain after; did you replace Module or modify Module.preRun?'; }); - // end include: /tmp/tmpvwtvoipm.js + // end include: /tmp/tmprrbnblgv.js var arguments_ = []; @@ -4333,7 +4333,7 @@ async function createWasm() { var contextAttributes = { antialias: false, alpha: false, - majorVersion: (typeof WebGL2RenderingContext != 'undefined') ? 2 : 1, + majorVersion: 1, }; if (webGLContextAttributes) { @@ -4789,15 +4789,6 @@ async function createWasm() { } }; - var webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance = (ctx) => - // Closure is expected to be allowed to minify the '.dibvbi' property, so not accessing it quoted. - !!(ctx.dibvbi = ctx.getExtension('WEBGL_draw_instanced_base_vertex_base_instance')); - - var webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance = (ctx) => { - // Closure is expected to be allowed to minify the '.mdibvbi' property, so not accessing it quoted. - return !!(ctx.mdibvbi = ctx.getExtension('WEBGL_multi_draw_instanced_base_vertex_base_instance')); - }; - var webgl_enable_EXT_polygon_offset_clamp = (ctx) => !!(ctx.extPolygonOffsetClamp = ctx.getExtension('EXT_polygon_offset_clamp')); @@ -4832,13 +4823,6 @@ async function createWasm() { 'WEBGL_color_buffer_float', 'WEBGL_depth_texture', 'WEBGL_draw_buffers', - // WebGL 2 extensions - 'EXT_color_buffer_float', - 'EXT_conservative_depth', - 'EXT_disjoint_timer_query_webgl2', - 'EXT_texture_norm16', - 'NV_shader_noperspective_interpolation', - 'WEBGL_clip_cull_distance', // WebGL 1 and WebGL 2 extensions 'EXT_clip_control', 'EXT_color_buffer_half_float', @@ -4880,13 +4864,8 @@ async function createWasm() { offscreenCanvases:{ }, queries:[], - samplers:[], - transformFeedbacks:[], - syncs:[], stringCache:{ }, - stringiCache:{ - }, unpackAlignment:4, unpackRowLength:0, recordError:(errorCode) => { @@ -4945,8 +4924,6 @@ async function createWasm() { } var ctx = - (webGLContextAttributes.majorVersion > 1) - ? canvas.getContext("webgl2", webGLContextAttributes) : canvas.getContext("webgl", webGLContextAttributes); if (!ctx) return 0; @@ -5026,21 +5003,6 @@ async function createWasm() { webgl_enable_ANGLE_instanced_arrays(GLctx); webgl_enable_OES_vertex_array_object(GLctx); webgl_enable_WEBGL_draw_buffers(GLctx); - // Extensions that are available from WebGL >= 2 (no-op if called on a WebGL 1 context active) - webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance(GLctx); - webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance(GLctx); - - // On WebGL 2, EXT_disjoint_timer_query is replaced with an alternative - // that's based on core APIs, and exposes only the queryCounterEXT() - // entrypoint. - if (context.version >= 2) { - GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query_webgl2"); - } - - // However, Firefox exposes the WebGL 1 version on WebGL 2 as well and - // thus we look for the WebGL 1 version again if the WebGL 2 version - // isn't present. https://bugzil.la/1328882 - if (context.version < 2 || !GLctx.disjointTimerQueryExt) { GLctx.disjointTimerQueryExt = GLctx.getExtension("EXT_disjoint_timer_query"); } @@ -5078,7 +5040,7 @@ async function createWasm() { } contextAttribs += 8; } - if (glesContextVersion < 2 || glesContextVersion > 3) { + if (glesContextVersion != 2) { EGL.setErrorCode(0x3005 /* EGL_BAD_CONFIG */); return 0; /* EGL_NO_CONTEXT */ } @@ -6228,16 +6190,10 @@ async function createWasm() { GLctx.attachShader(GL.programs[program], GL.shaders[shader]); }; - var _emscripten_glBeginQuery = (target, id) => { - GLctx.beginQuery(target, GL.queries[id]); - }; - var _emscripten_glBeginQueryEXT = (target, id) => { GLctx.disjointTimerQueryExt['beginQueryEXT'](target, GL.queries[id]); }; - var _emscripten_glBeginTransformFeedback = (x0) => GLctx.beginTransformFeedback(x0); - var _emscripten_glBindAttribLocation = (program, index, name) => { GLctx.bindAttribLocation(GL.programs[program], index, UTF8ToString(name)); @@ -6245,32 +6201,9 @@ async function createWasm() { var _emscripten_glBindBuffer = (target, buffer) => { - if (target == 0x88EB /*GL_PIXEL_PACK_BUFFER*/) { - // In WebGL 2 glReadPixels entry point, we need to use a different WebGL 2 - // API function call when a buffer is bound to - // GL_PIXEL_PACK_BUFFER_BINDING point, so must keep track whether that - // binding point is non-null to know what is the proper API function to - // call. - GLctx.currentPixelPackBufferBinding = buffer; - } else if (target == 0x88EC /*GL_PIXEL_UNPACK_BUFFER*/) { - // In WebGL 2 gl(Compressed)Tex(Sub)Image[23]D entry points, we need to - // use a different WebGL 2 API function call when a buffer is bound to - // GL_PIXEL_UNPACK_BUFFER_BINDING point, so must keep track whether that - // binding point is non-null to know what is the proper API function to - // call. - GLctx.currentPixelUnpackBufferBinding = buffer; - } GLctx.bindBuffer(target, GL.buffers[buffer]); }; - var _emscripten_glBindBufferBase = (target, index, buffer) => { - GLctx.bindBufferBase(target, index, GL.buffers[buffer]); - }; - - var _emscripten_glBindBufferRange = (target, index, buffer, offset, ptrsize) => { - GLctx.bindBufferRange(target, index, GL.buffers[buffer], offset, ptrsize); - }; - var _emscripten_glBindFramebuffer = (target, framebuffer) => { GLctx.bindFramebuffer(target, GL.framebuffers[framebuffer]); @@ -6281,23 +6214,14 @@ async function createWasm() { GLctx.bindRenderbuffer(target, GL.renderbuffers[renderbuffer]); }; - var _emscripten_glBindSampler = (unit, sampler) => { - GLctx.bindSampler(unit, GL.samplers[sampler]); - }; - var _emscripten_glBindTexture = (target, texture) => { GLctx.bindTexture(target, GL.textures[texture]); }; - var _emscripten_glBindTransformFeedback = (target, id) => { - GLctx.bindTransformFeedback(target, GL.transformFeedbacks[id]); - }; - + var _emscripten_glBindVertexArray = (vao) => { GLctx.bindVertexArray(GL.vaos[vao]); }; - - var _emscripten_glBindVertexArrayOES = _emscripten_glBindVertexArray; var _emscripten_glBlendColor = (x0, x1, x2, x3) => GLctx.blendColor(x0, x1, x2, x3); @@ -6310,22 +6234,8 @@ async function createWasm() { var _emscripten_glBlendFuncSeparate = (x0, x1, x2, x3) => GLctx.blendFuncSeparate(x0, x1, x2, x3); - var _emscripten_glBlitFramebuffer = (x0, x1, x2, x3, x4, x5, x6, x7, x8, x9) => GLctx.blitFramebuffer(x0, x1, x2, x3, x4, x5, x6, x7, x8, x9); - var _emscripten_glBufferData = (target, size, data, usage) => { - if (GL.currentContext.version >= 2) { - // If size is zero, WebGL would interpret uploading the whole input - // arraybuffer (starting from given offset), which would not make sense in - // WebAssembly, so avoid uploading if size is zero. However we must still - // call bufferData to establish a backing storage of zero bytes. - if (data && size) { - GLctx.bufferData(target, HEAPU8, usage, data, size); - } else { - GLctx.bufferData(target, size, usage); - } - return; - } // N.b. here first form specifies a heap subarray, second form an integer // size, so the ?: code here is polymorphic. It is advised to avoid // randomly mixing both uses in calling code, to avoid any potential JS @@ -6334,10 +6244,6 @@ async function createWasm() { }; var _emscripten_glBufferSubData = (target, offset, size, data) => { - if (GL.currentContext.version >= 2) { - size && GLctx.bufferSubData(target, offset, HEAPU8, data, size); - return; - } GLctx.bufferSubData(target, offset, HEAPU8.subarray(data, data+size)); }; @@ -6345,38 +6251,12 @@ async function createWasm() { var _emscripten_glClear = (x0) => GLctx.clear(x0); - var _emscripten_glClearBufferfi = (x0, x1, x2, x3) => GLctx.clearBufferfi(x0, x1, x2, x3); - - var _emscripten_glClearBufferfv = (buffer, drawbuffer, value) => { - - GLctx.clearBufferfv(buffer, drawbuffer, HEAPF32, ((value)>>2)); - }; - - var _emscripten_glClearBufferiv = (buffer, drawbuffer, value) => { - - GLctx.clearBufferiv(buffer, drawbuffer, HEAP32, ((value)>>2)); - }; - - var _emscripten_glClearBufferuiv = (buffer, drawbuffer, value) => { - - GLctx.clearBufferuiv(buffer, drawbuffer, HEAPU32, ((value)>>2)); - }; - var _emscripten_glClearColor = (x0, x1, x2, x3) => GLctx.clearColor(x0, x1, x2, x3); var _emscripten_glClearDepthf = (x0) => GLctx.clearDepth(x0); var _emscripten_glClearStencil = (x0) => GLctx.clearStencil(x0); - var _emscripten_glClientWaitSync = (sync, flags, timeout) => { - // WebGL2 vs GLES3 differences: in GLES3, the timeout parameter is a uint64, where 0xFFFFFFFFFFFFFFFFULL means GL_TIMEOUT_IGNORED. - // In JS, there's no 64-bit value types, so instead timeout is taken to be signed, and GL_TIMEOUT_IGNORED is given value -1. - // Inherently the value accepted in the timeout is lossy, and can't take in arbitrary u64 bit pattern (but most likely doesn't matter) - // See https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.15 - timeout = Number(timeout); - return GLctx.clientWaitSync(GL.syncs[sync], flags, timeout); - }; - var _emscripten_glClipControlEXT = (origin, depth) => { GLctx.extClipControl['clipControlEXT'](origin, depth); }; @@ -6395,53 +6275,17 @@ async function createWasm() { // final data parameter, so we simply pass a heap view starting at zero // effectively uploading whatever happens to be near address zero. See // https://github.com/emscripten-core/emscripten/issues/19300. - if (GL.currentContext.version >= 2) { - if (GLctx.currentPixelUnpackBufferBinding || !imageSize) { - GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, imageSize, data); - return; - } - GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, HEAPU8, data, imageSize); - return; - } GLctx.compressedTexImage2D(target, level, internalFormat, width, height, border, HEAPU8.subarray((data), data+imageSize)); }; - var _emscripten_glCompressedTexImage3D = (target, level, internalFormat, width, height, depth, border, imageSize, data) => { - if (GLctx.currentPixelUnpackBufferBinding) { - GLctx.compressedTexImage3D(target, level, internalFormat, width, height, depth, border, imageSize, data); - } else { - GLctx.compressedTexImage3D(target, level, internalFormat, width, height, depth, border, HEAPU8, data, imageSize); - } - }; - var _emscripten_glCompressedTexSubImage2D = (target, level, xoffset, yoffset, width, height, format, imageSize, data) => { - if (GL.currentContext.version >= 2) { - if (GLctx.currentPixelUnpackBufferBinding || !imageSize) { - GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data); - return; - } - GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, HEAPU8, data, imageSize); - return; - } GLctx.compressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, HEAPU8.subarray((data), data+imageSize)); }; - var _emscripten_glCompressedTexSubImage3D = (target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) => { - if (GLctx.currentPixelUnpackBufferBinding) { - GLctx.compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data); - } else { - GLctx.compressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, HEAPU8, data, imageSize); - } - }; - - var _emscripten_glCopyBufferSubData = (x0, x1, x2, x3, x4) => GLctx.copyBufferSubData(x0, x1, x2, x3, x4); - var _emscripten_glCopyTexImage2D = (x0, x1, x2, x3, x4, x5, x6, x7) => GLctx.copyTexImage2D(x0, x1, x2, x3, x4, x5, x6, x7); var _emscripten_glCopyTexSubImage2D = (x0, x1, x2, x3, x4, x5, x6, x7) => GLctx.copyTexSubImage2D(x0, x1, x2, x3, x4, x5, x6, x7); - var _emscripten_glCopyTexSubImage3D = (x0, x1, x2, x3, x4, x5, x6, x7, x8) => GLctx.copyTexSubImage3D(x0, x1, x2, x3, x4, x5, x6, x7, x8); - var _emscripten_glCreateProgram = () => { var id = GL.getNewId(GL.programs); var program = GLctx.createProgram(); @@ -6477,8 +6321,6 @@ async function createWasm() { buffer.name = 0; GL.buffers[id] = null; - if (id == GLctx.currentPixelPackBufferBinding) GLctx.currentPixelPackBufferBinding = 0; - if (id == GLctx.currentPixelUnpackBufferBinding) GLctx.currentPixelUnpackBufferBinding = 0; } }; @@ -6507,16 +6349,6 @@ async function createWasm() { GL.programs[id] = null; }; - var _emscripten_glDeleteQueries = (n, ids) => { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((ids)+(i*4))>>2)]; - var query = GL.queries[id]; - if (!query) continue; // GL spec: "unused names in ids are ignored, as is the name zero." - GLctx.deleteQuery(query); - GL.queries[id] = null; - } - }; - var _emscripten_glDeleteQueriesEXT = (n, ids) => { for (var i = 0; i < n; i++) { var id = HEAP32[(((ids)+(i*4))>>2)]; @@ -6538,17 +6370,6 @@ async function createWasm() { } }; - var _emscripten_glDeleteSamplers = (n, samplers) => { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((samplers)+(i*4))>>2)]; - var sampler = GL.samplers[id]; - if (!sampler) continue; - GLctx.deleteSampler(sampler); - sampler.name = 0; - GL.samplers[id] = null; - } - }; - var _emscripten_glDeleteShader = (id) => { if (!id) return; var shader = GL.shaders[id]; @@ -6562,18 +6383,6 @@ async function createWasm() { GL.shaders[id] = null; }; - var _emscripten_glDeleteSync = (id) => { - if (!id) return; - var sync = GL.syncs[id]; - if (!sync) { // glDeleteSync signals an error when deleting a nonexisting object, unlike some other GL delete functions. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - GLctx.deleteSync(sync); - sync.name = 0; - GL.syncs[id] = null; - }; - var _emscripten_glDeleteTextures = (n, textures) => { for (var i = 0; i < n; i++) { var id = HEAP32[(((textures)+(i*4))>>2)]; @@ -6587,17 +6396,7 @@ async function createWasm() { } }; - var _emscripten_glDeleteTransformFeedbacks = (n, ids) => { - for (var i = 0; i < n; i++) { - var id = HEAP32[(((ids)+(i*4))>>2)]; - var transformFeedback = GL.transformFeedbacks[id]; - if (!transformFeedback) continue; // GL spec: "unused names in ids are ignored, as is the name zero." - GLctx.deleteTransformFeedback(transformFeedback); - transformFeedback.name = 0; - GL.transformFeedbacks[id] = null; - } - }; - + var _emscripten_glDeleteVertexArrays = (n, vaos) => { for (var i = 0; i < n; i++) { var id = HEAP32[(((vaos)+(i*4))>>2)]; @@ -6605,8 +6404,6 @@ async function createWasm() { GL.vaos[id] = null; } }; - - var _emscripten_glDeleteVertexArraysOES = _emscripten_glDeleteVertexArrays; var _emscripten_glDepthFunc = (x0) => GLctx.depthFunc(x0); @@ -6633,22 +6430,13 @@ async function createWasm() { }; + var _emscripten_glDrawArraysInstanced = (mode, first, count, primcount) => { GLctx.drawArraysInstanced(mode, first, count, primcount); }; - - var _emscripten_glDrawArraysInstancedANGLE = _emscripten_glDrawArraysInstanced; - var _emscripten_glDrawArraysInstancedARB = _emscripten_glDrawArraysInstanced; - - - var _emscripten_glDrawArraysInstancedEXT = _emscripten_glDrawArraysInstanced; - - - var _emscripten_glDrawArraysInstancedNV = _emscripten_glDrawArraysInstanced; - var tempFixedLengthArray = []; var _emscripten_glDrawBuffers = (n, bufs) => { @@ -6660,11 +6448,6 @@ async function createWasm() { GLctx.drawBuffers(bufArray); }; - - - var _emscripten_glDrawBuffersEXT = _emscripten_glDrawBuffers; - - var _emscripten_glDrawBuffersWEBGL = _emscripten_glDrawBuffers; var _emscripten_glDrawElements = (mode, count, type, indices) => { @@ -6673,56 +6456,22 @@ async function createWasm() { }; + var _emscripten_glDrawElementsInstanced = (mode, count, type, indices, primcount) => { GLctx.drawElementsInstanced(mode, count, type, indices, primcount); }; - - var _emscripten_glDrawElementsInstancedANGLE = _emscripten_glDrawElementsInstanced; - - var _emscripten_glDrawElementsInstancedARB = _emscripten_glDrawElementsInstanced; - - - var _emscripten_glDrawElementsInstancedEXT = _emscripten_glDrawElementsInstanced; - - - var _emscripten_glDrawElementsInstancedNV = _emscripten_glDrawElementsInstanced; - - var _glDrawElements = _emscripten_glDrawElements; - var _emscripten_glDrawRangeElements = (mode, start, end, count, type, indices) => { - // TODO: This should be a trivial pass-though function registered at the bottom of this page as - // glFuncs[6][1] += ' drawRangeElements'; - // but due to https://bugzil.la/1202427, - // we work around by ignoring the range. - _glDrawElements(mode, count, type, indices); - }; - var _emscripten_glEnable = (x0) => GLctx.enable(x0); var _emscripten_glEnableVertexAttribArray = (index) => { GLctx.enableVertexAttribArray(index); }; - var _emscripten_glEndQuery = (x0) => GLctx.endQuery(x0); - var _emscripten_glEndQueryEXT = (target) => { GLctx.disjointTimerQueryExt['endQueryEXT'](target); }; - var _emscripten_glEndTransformFeedback = () => GLctx.endTransformFeedback(); - - var _emscripten_glFenceSync = (condition, flags) => { - var sync = GLctx.fenceSync(condition, flags); - if (sync) { - var id = GL.getNewId(GL.syncs); - sync.name = id; - GL.syncs[id] = sync; - return id; - } - return 0; // Failed to create a sync object - }; - var _emscripten_glFinish = () => GLctx.finish(); var _emscripten_glFlush = () => GLctx.flush(); @@ -6737,10 +6486,6 @@ async function createWasm() { GL.textures[texture], level); }; - var _emscripten_glFramebufferTextureLayer = (target, attachment, texture, level, layer) => { - GLctx.framebufferTextureLayer(target, attachment, GL.textures[texture], level, layer); - }; - var _emscripten_glFrontFace = (x0) => GLctx.frontFace(x0); var _emscripten_glGenBuffers = (n, buffers) => { @@ -6753,11 +6498,6 @@ async function createWasm() { ); }; - var _emscripten_glGenQueries = (n, ids) => { - GL.genObject(n, ids, 'createQuery', GL.queries - ); - }; - var _emscripten_glGenQueriesEXT = (n, ids) => { for (var i = 0; i < n; i++) { var query = GLctx.disjointTimerQueryExt['createQueryEXT'](); @@ -6778,27 +6518,16 @@ async function createWasm() { ); }; - var _emscripten_glGenSamplers = (n, samplers) => { - GL.genObject(n, samplers, 'createSampler', GL.samplers - ); - }; - var _emscripten_glGenTextures = (n, textures) => { GL.genObject(n, textures, 'createTexture', GL.textures ); }; - var _emscripten_glGenTransformFeedbacks = (n, ids) => { - GL.genObject(n, ids, 'createTransformFeedback', GL.transformFeedbacks - ); - }; - + var _emscripten_glGenVertexArrays = (n, arrays) => { GL.genObject(n, arrays, 'createVertexArray', GL.vaos ); }; - - var _emscripten_glGenVertexArraysOES = _emscripten_glGenVertexArrays; var _emscripten_glGenerateMipmap = (x0) => GLctx.generateMipmap(x0); @@ -6823,71 +6552,6 @@ async function createWasm() { var _emscripten_glGetActiveUniform = (program, index, bufSize, length, size, type, name) => __glGetActiveAttribOrUniform('getActiveUniform', program, index, bufSize, length, size, type, name); - var _emscripten_glGetActiveUniformBlockName = (program, uniformBlockIndex, bufSize, length, uniformBlockName) => { - program = GL.programs[program]; - - var result = GLctx.getActiveUniformBlockName(program, uniformBlockIndex); - if (!result) return; // If an error occurs, nothing will be written to uniformBlockName or length. - if (uniformBlockName && bufSize > 0) { - var numBytesWrittenExclNull = stringToUTF8(result, uniformBlockName, bufSize); - if (length) HEAP32[((length)>>2)] = numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)] = 0; - } - }; - - var _emscripten_glGetActiveUniformBlockiv = (program, uniformBlockIndex, pname, params) => { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - program = GL.programs[program]; - - if (pname == 0x8A41 /* GL_UNIFORM_BLOCK_NAME_LENGTH */) { - var name = GLctx.getActiveUniformBlockName(program, uniformBlockIndex); - HEAP32[((params)>>2)] = name.length+1; - return; - } - - var result = GLctx.getActiveUniformBlockParameter(program, uniformBlockIndex, pname); - if (result === null) return; // If an error occurs, nothing should be written to params. - if (pname == 0x8A43 /*GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES*/) { - for (var i = 0; i < result.length; i++) { - HEAP32[(((params)+(i*4))>>2)] = result[i]; - } - } else { - HEAP32[((params)>>2)] = result; - } - }; - - var _emscripten_glGetActiveUniformsiv = (program, uniformCount, uniformIndices, pname, params) => { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if params == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - if (uniformCount > 0 && uniformIndices == 0) { - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - program = GL.programs[program]; - var ids = []; - for (var i = 0; i < uniformCount; i++) { - ids.push(HEAP32[(((uniformIndices)+(i*4))>>2)]); - } - - var result = GLctx.getActiveUniforms(program, ids, pname); - if (!result) return; // GL spec: If an error is generated, nothing is written out to params. - - var len = result.length; - for (var i = 0; i < len; i++) { - HEAP32[(((params)+(i*4))>>2)] = result[i]; - } - }; - var _emscripten_glGetAttachedShaders = (program, maxCount, count, shaders) => { var result = GLctx.getAttachedShaders(GL.programs[program]); var len = result.length; @@ -6921,13 +6585,6 @@ async function createWasm() { if (deserialized != num) warnOnce(`writeI53ToI64() out of range: serialized JS Number ${num} to Wasm heap as bytes lo=${ptrToString(HEAPU32[offset])}, hi=${ptrToString(HEAPU32[offset+1])}, which deserializes back to ${deserialized} instead!`); }; - - var webglGetExtensions = () => { - var exts = getEmscriptenSupportedExtensions(GLctx); - exts = exts.concat(exts.map((e) => "GL_" + e)); - return exts; - }; - var emscriptenWebGLGet = (name_, p, type) => { // Guard against user passing a null pointer. // Note that GLES2 spec does not say anything about how passing a null @@ -6950,7 +6607,6 @@ async function createWasm() { // Do not write anything to the out pointer, since no binary formats are // supported. return; - case 0x87FE: // GL_NUM_PROGRAM_BINARY_FORMATS case 0x8DF9: // GL_NUM_SHADER_BINARY_FORMATS ret = 0; break; @@ -6963,22 +6619,6 @@ async function createWasm() { ret = formats ? formats.length : 0; break; - case 0x821D: // GL_NUM_EXTENSIONS - if (GL.currentContext.version < 2) { - // Calling GLES3/WebGL2 function with a GLES2/WebGL1 context - GL.recordError(0x502 /* GL_INVALID_OPERATION */); - return; - } - ret = webglGetExtensions().length; - break; - case 0x821B: // GL_MAJOR_VERSION - case 0x821C: // GL_MINOR_VERSION - if (GL.currentContext.version < 2) { - GL.recordError(0x500); // GL_INVALID_ENUM - return; - } - ret = name_ == 0x821B ? 3 : 0; // return version 3.0 - break; } if (ret === undefined) { @@ -7006,17 +6646,6 @@ async function createWasm() { case 0x8CA7: // RENDERBUFFER_BINDING case 0x8069: // TEXTURE_BINDING_2D case 0x85B5: // WebGL 2 GL_VERTEX_ARRAY_BINDING, or WebGL 1 extension OES_vertex_array_object GL_VERTEX_ARRAY_BINDING_OES - case 0x8F36: // COPY_READ_BUFFER_BINDING or COPY_READ_BUFFER - case 0x8F37: // COPY_WRITE_BUFFER_BINDING or COPY_WRITE_BUFFER - case 0x88ED: // PIXEL_PACK_BUFFER_BINDING - case 0x88EF: // PIXEL_UNPACK_BUFFER_BINDING - case 0x8CAA: // READ_FRAMEBUFFER_BINDING - case 0x8919: // SAMPLER_BINDING - case 0x8C1D: // TEXTURE_BINDING_2D_ARRAY - case 0x806A: // TEXTURE_BINDING_3D - case 0x8E25: // TRANSFORM_FEEDBACK_BINDING - case 0x8C8F: // TRANSFORM_FEEDBACK_BUFFER_BINDING - case 0x8A28: // UNIFORM_BUFFER_BINDING case 0x8514: { // TEXTURE_BINDING_CUBE_MAP ret = 0; break; @@ -7065,16 +6694,6 @@ async function createWasm() { var _emscripten_glGetBooleanv = (name_, p) => emscriptenWebGLGet(name_, p, 4); - var _emscripten_glGetBufferParameteri64v = (target, value, data) => { - if (!data) { - // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense - // if data == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - writeI53ToI64(data, GLctx.getBufferParameter(target, value)); - }; - var _emscripten_glGetBufferParameteriv = (target, value, data) => { if (!data) { // GLES2 specification does not specify how to behave if data is a null @@ -7095,10 +6714,6 @@ async function createWasm() { var _emscripten_glGetFloatv = (name_, p) => emscriptenWebGLGet(name_, p, 2); - var _emscripten_glGetFragDataLocation = (program, name) => { - return GLctx.getFragDataLocation(GL.programs[program], UTF8ToString(name)); - }; - var _emscripten_glGetFramebufferAttachmentParameteriv = (target, attachment, pname, params) => { var result = GLctx.getFramebufferAttachmentParameter(target, attachment, pname); if (result instanceof WebGLRenderbuffer || @@ -7108,89 +6723,9 @@ async function createWasm() { HEAP32[((params)>>2)] = result; }; - var emscriptenWebGLGetIndexed = (target, index, data, type) => { - if (!data) { - // GLES2 specification does not specify how to behave if data is a null pointer. Since calling this function does not make sense - // if data == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - var result = GLctx.getIndexedParameter(target, index); - var ret; - switch (typeof result) { - case 'boolean': - ret = result ? 1 : 0; - break; - case 'number': - ret = result; - break; - case 'object': - if (result === null) { - switch (target) { - case 0x8C8F: // TRANSFORM_FEEDBACK_BUFFER_BINDING - case 0x8A28: // UNIFORM_BUFFER_BINDING - ret = 0; - break; - default: { - GL.recordError(0x500); // GL_INVALID_ENUM - return; - } - } - } else if (result instanceof WebGLBuffer) { - ret = result.name | 0; - } else { - GL.recordError(0x500); // GL_INVALID_ENUM - return; - } - break; - default: - GL.recordError(0x500); // GL_INVALID_ENUM - return; - } - - switch (type) { - case 1: writeI53ToI64(data, ret); break; - case 0: HEAP32[((data)>>2)] = ret; break; - case 2: HEAPF32[((data)>>2)] = ret; break; - case 4: HEAP8[data] = ret ? 1 : 0; break; - default: abort('internal emscriptenWebGLGetIndexed() error, bad type: ' + type); - } - }; - var _emscripten_glGetInteger64i_v = (target, index, data) => - emscriptenWebGLGetIndexed(target, index, data, 1); - - var _emscripten_glGetInteger64v = (name_, p) => { - emscriptenWebGLGet(name_, p, 1); - }; - - var _emscripten_glGetIntegeri_v = (target, index, data) => - emscriptenWebGLGetIndexed(target, index, data, 0); - var _emscripten_glGetIntegerv = (name_, p) => emscriptenWebGLGet(name_, p, 0); - var _emscripten_glGetInternalformativ = (target, internalformat, pname, bufSize, params) => { - if (bufSize < 0) { - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - if (!params) { - // GLES3 specification does not specify how to behave if values is a null pointer. Since calling this function does not make sense - // if values == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - var ret = GLctx.getInternalformatParameter(target, internalformat, pname); - if (ret === null) return; - for (var i = 0; i < ret.length && i < bufSize; ++i) { - HEAP32[(((params)+(i*4))>>2)] = ret[i]; - } - }; - - var _emscripten_glGetProgramBinary = (program, bufSize, length, binaryFormat, binary) => { - GL.recordError(0x502/*GL_INVALID_OPERATION*/); - }; - var _emscripten_glGetProgramInfoLog = (program, maxLength, length, infoLog) => { var log = GLctx.getProgramInfoLog(GL.programs[program]); if (log === null) log = '(unknown error)'; @@ -7257,13 +6792,9 @@ async function createWasm() { } var query = GL.queries[id]; var param; - if (GL.currentContext.version < 2) { param = GLctx.disjointTimerQueryExt['getQueryObjectEXT'](query, pname); } - else { - param = GLctx.getQueryParameter(query, pname); - } var ret; if (typeof param == 'boolean') { ret = param ? 1 : 0; @@ -7294,37 +6825,9 @@ async function createWasm() { var _emscripten_glGetQueryObjectui64vEXT = _emscripten_glGetQueryObjecti64vEXT; - var _emscripten_glGetQueryObjectuiv = (id, pname, params) => { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - var query = GL.queries[id]; - var param = GLctx.getQueryParameter(query, pname); - var ret; - if (typeof param == 'boolean') { - ret = param ? 1 : 0; - } else { - ret = param; - } - HEAP32[((params)>>2)] = ret; - }; - var _emscripten_glGetQueryObjectuivEXT = _emscripten_glGetQueryObjectivEXT; - var _emscripten_glGetQueryiv = (target, pname, params) => { - if (!params) { - // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)] = GLctx.getQuery(target, pname); - }; - var _emscripten_glGetQueryivEXT = (target, pname, params) => { if (!params) { // GLES2 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense @@ -7345,26 +6848,6 @@ async function createWasm() { HEAP32[((params)>>2)] = GLctx.getRenderbufferParameter(target, pname); }; - var _emscripten_glGetSamplerParameterfv = (sampler, pname, params) => { - if (!params) { - // GLES3 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - HEAPF32[((params)>>2)] = GLctx.getSamplerParameter(GL.samplers[sampler], pname); - }; - - var _emscripten_glGetSamplerParameteriv = (sampler, pname, params) => { - if (!params) { - // GLES3 specification does not specify how to behave if params is a null pointer. Since calling this function does not make sense - // if p == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((params)>>2)] = GLctx.getSamplerParameter(GL.samplers[sampler], pname); - }; - var _emscripten_glGetShaderInfoLog = (shader, maxLength, length, infoLog) => { var log = GLctx.getShaderInfoLog(GL.shaders[shader]); @@ -7417,6 +6900,12 @@ async function createWasm() { + var webglGetExtensions = () => { + var exts = getEmscriptenSupportedExtensions(GLctx); + exts = exts.concat(exts.map((e) => "GL_" + e)); + return exts; + }; + var _emscripten_glGetString = (name_) => { var ret = GL.stringCache[name_]; if (!ret) { @@ -7439,7 +6928,6 @@ async function createWasm() { var webGLVersion = GLctx.getParameter(0x1F02 /*GL_VERSION*/); // return GLES version string corresponding to the version of the WebGL context var glVersion = `OpenGL ES 2.0 (${webGLVersion})`; - if (GL.currentContext.version >= 2) glVersion = `OpenGL ES 3.0 (${webGLVersion})`; ret = stringToNewUTF8(glVersion); break; case 0x8B8C /* GL_SHADING_LANGUAGE_VERSION */: @@ -7462,55 +6950,6 @@ async function createWasm() { return ret; }; - - var _emscripten_glGetStringi = (name, index) => { - if (GL.currentContext.version < 2) { - GL.recordError(0x502 /* GL_INVALID_OPERATION */); // Calling GLES3/WebGL2 function with a GLES2/WebGL1 context - return 0; - } - var stringiCache = GL.stringiCache[name]; - if (stringiCache) { - if (index < 0 || index >= stringiCache.length) { - GL.recordError(0x501/*GL_INVALID_VALUE*/); - return 0; - } - return stringiCache[index]; - } - switch (name) { - case 0x1F03 /* GL_EXTENSIONS */: - var exts = webglGetExtensions().map(stringToNewUTF8); - stringiCache = GL.stringiCache[name] = exts; - if (index < 0 || index >= stringiCache.length) { - GL.recordError(0x501/*GL_INVALID_VALUE*/); - return 0; - } - return stringiCache[index]; - default: - GL.recordError(0x500/*GL_INVALID_ENUM*/); - return 0; - } - }; - - var _emscripten_glGetSynciv = (sync, pname, bufSize, length, values) => { - if (bufSize < 0) { - // GLES3 specification does not specify how to behave if bufSize < 0, however in the spec wording for glGetInternalformativ, it does say that GL_INVALID_VALUE should be raised, - // so raise GL_INVALID_VALUE here as well. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - if (!values) { - // GLES3 specification does not specify how to behave if values is a null pointer. Since calling this function does not make sense - // if values == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - var ret = GLctx.getSyncParameter(GL.syncs[sync], pname); - if (ret !== null) { - HEAP32[((values)>>2)] = ret; - if (length) HEAP32[((length)>>2)] = 1; // Report a single value outputted. - } - }; - var _emscripten_glGetTexParameterfv = (target, pname, params) => { if (!params) { // GLES2 specification does not specify how to behave if params is a null @@ -7533,51 +6972,6 @@ async function createWasm() { HEAP32[((params)>>2)] = GLctx.getTexParameter(target, pname); }; - var _emscripten_glGetTransformFeedbackVarying = (program, index, bufSize, length, size, type, name) => { - program = GL.programs[program]; - var info = GLctx.getTransformFeedbackVarying(program, index); - if (!info) return; // If an error occurred, the return parameters length, size, type and name will be unmodified. - - if (name && bufSize > 0) { - var numBytesWrittenExclNull = stringToUTF8(info.name, name, bufSize); - if (length) HEAP32[((length)>>2)] = numBytesWrittenExclNull; - } else { - if (length) HEAP32[((length)>>2)] = 0; - } - - if (size) HEAP32[((size)>>2)] = info.size; - if (type) HEAP32[((type)>>2)] = info.type; - }; - - var _emscripten_glGetUniformBlockIndex = (program, uniformBlockName) => { - return GLctx.getUniformBlockIndex(GL.programs[program], UTF8ToString(uniformBlockName)); - }; - - var _emscripten_glGetUniformIndices = (program, uniformCount, uniformNames, uniformIndices) => { - if (!uniformIndices) { - // GLES2 specification does not specify how to behave if uniformIndices is a null pointer. Since calling this function does not make sense - // if uniformIndices == null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - if (uniformCount > 0 && (uniformNames == 0 || uniformIndices == 0)) { - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - program = GL.programs[program]; - var names = []; - for (var i = 0; i < uniformCount; i++) - names.push(UTF8ToString(HEAP32[(((uniformNames)+(i*4))>>2)])); - - var result = GLctx.getUniformIndices(program, names); - if (!result) return; // GL spec: If an error is generated, nothing is written out to uniformIndices. - - var len = result.length; - for (var i = 0; i < len; i++) { - HEAP32[(((uniformIndices)+(i*4))>>2)] = result[i]; - } - }; - /** @suppress {checkTypes} */ var jstoi_q = (str) => parseInt(str); @@ -7732,8 +7126,16 @@ async function createWasm() { emscriptenWebGLGetUniform(program, location, params, 0); }; - var _emscripten_glGetUniformuiv = (program, location, params) => - emscriptenWebGLGetUniform(program, location, params, 0); + var _emscripten_glGetVertexAttribPointerv = (index, pname, pointer) => { + if (!pointer) { + // GLES2 specification does not specify how to behave if pointer is a null + // pointer. Since calling this function does not make sense if pointer == + // null, issue a GL error to notify user about it. + GL.recordError(0x501 /* GL_INVALID_VALUE */); + return; + } + HEAP32[((pointer)>>2)] = GLctx.getVertexAttribOffset(index, pname); + }; /** @suppress{checkTypes} */ var emscriptenWebGLGetVertexAttrib = (index, pname, params, type) => { @@ -7763,26 +7165,6 @@ async function createWasm() { } } }; - var _emscripten_glGetVertexAttribIiv = (index, pname, params) => { - // N.B. This function may only be called if the vertex attribute was specified using the function glVertexAttribI4iv(), - // otherwise the results are undefined. (GLES3 spec 6.1.12) - emscriptenWebGLGetVertexAttrib(index, pname, params, 0); - }; - - - var _emscripten_glGetVertexAttribIuiv = _emscripten_glGetVertexAttribIiv; - - var _emscripten_glGetVertexAttribPointerv = (index, pname, pointer) => { - if (!pointer) { - // GLES2 specification does not specify how to behave if pointer is a null - // pointer. Since calling this function does not make sense if pointer == - // null, issue a GL error to notify user about it. - GL.recordError(0x501 /* GL_INVALID_VALUE */); - return; - } - HEAP32[((pointer)>>2)] = GLctx.getVertexAttribOffset(index, pname); - }; - var _emscripten_glGetVertexAttribfv = (index, pname, params) => { // N.B. This function may only be called if the vertex attribute was @@ -7801,24 +7183,6 @@ async function createWasm() { var _emscripten_glHint = (x0, x1) => GLctx.hint(x0, x1); - var _emscripten_glInvalidateFramebuffer = (target, numAttachments, attachments) => { - var list = tempFixedLengthArray[numAttachments]; - for (var i = 0; i < numAttachments; i++) { - list[i] = HEAP32[(((attachments)+(i*4))>>2)]; - } - - GLctx.invalidateFramebuffer(target, list); - }; - - var _emscripten_glInvalidateSubFramebuffer = (target, numAttachments, attachments, x, y, width, height) => { - var list = tempFixedLengthArray[numAttachments]; - for (var i = 0; i < numAttachments; i++) { - list[i] = HEAP32[(((attachments)+(i*4))>>2)]; - } - - GLctx.invalidateSubFramebuffer(target, list, x, y, width, height); - }; - var _emscripten_glIsBuffer = (buffer) => { var b = GL.buffers[buffer]; if (!b) return 0; @@ -7839,12 +7203,6 @@ async function createWasm() { return GLctx.isProgram(program); }; - var _emscripten_glIsQuery = (id) => { - var query = GL.queries[id]; - if (!query) return 0; - return GLctx.isQuery(query); - }; - var _emscripten_glIsQueryEXT = (id) => { var query = GL.queries[id]; if (!query) return 0; @@ -7857,36 +7215,25 @@ async function createWasm() { return GLctx.isRenderbuffer(rb); }; - var _emscripten_glIsSampler = (id) => { - var sampler = GL.samplers[id]; - if (!sampler) return 0; - return GLctx.isSampler(sampler); - }; - var _emscripten_glIsShader = (shader) => { var s = GL.shaders[shader]; if (!s) return 0; return GLctx.isShader(s); }; - var _emscripten_glIsSync = (sync) => GLctx.isSync(GL.syncs[sync]); - var _emscripten_glIsTexture = (id) => { var texture = GL.textures[id]; if (!texture) return 0; return GLctx.isTexture(texture); }; - var _emscripten_glIsTransformFeedback = (id) => GLctx.isTransformFeedback(GL.transformFeedbacks[id]); - + var _emscripten_glIsVertexArray = (array) => { var vao = GL.vaos[array]; if (!vao) return 0; return GLctx.isVertexArray(vao); }; - - var _emscripten_glIsVertexArrayOES = _emscripten_glIsVertexArray; var _emscripten_glLineWidth = (x0) => GLctx.lineWidth(x0); @@ -7900,8 +7247,6 @@ async function createWasm() { }; - var _emscripten_glPauseTransformFeedback = () => GLctx.pauseTransformFeedback(); - var _emscripten_glPixelStorei = (pname, param) => { if (pname == 3317) { GL.unpackAlignment = param; @@ -7921,20 +7266,10 @@ async function createWasm() { GLctx.extPolygonOffsetClamp['polygonOffsetClampEXT'](factor, units, clamp); }; - var _emscripten_glProgramBinary = (program, binaryFormat, binary, length) => { - GL.recordError(0x500/*GL_INVALID_ENUM*/); - }; - - var _emscripten_glProgramParameteri = (program, pname, value) => { - GL.recordError(0x500/*GL_INVALID_ENUM*/); - }; - var _emscripten_glQueryCounterEXT = (id, target) => { GLctx.disjointTimerQueryExt['queryCounterEXT'](GL.queries[id], target); }; - var _emscripten_glReadBuffer = (x0) => GLctx.readBuffer(x0); - var computeUnpackAlignedImageSize = (width, height, sizePerPixel) => { function roundedToNextMultipleOf(x, y) { return (x + y - 1) & -y; @@ -7958,12 +7293,6 @@ async function createWasm() { 8: 2, 29502: 3, 29504: 4, - // 0x1903 /* GL_RED */ - 0x1902: 1, - 26917: 2, - 26918: 2, - // 0x8D94 /* GL_RED_INTEGER */ - 0x1902: 1, - 29846: 3, - 29847: 4 }; return colorChannels[format - 0x1902]||1; }; @@ -7974,21 +7303,15 @@ async function createWasm() { // Also the type HEAPU16 is not tested for explicitly, but any unrecognized type will return out HEAPU16. // (since most types are HEAPU16) type -= 0x1400; - if (type == 0) return HEAP8; if (type == 1) return HEAPU8; - if (type == 2) return HEAP16; - if (type == 4) return HEAP32; if (type == 6) return HEAPF32; if (type == 5 || type == 28922 - || type == 28520 - || type == 30779 - || type == 30782 ) return HEAPU32; @@ -8005,19 +7328,7 @@ async function createWasm() { return heap.subarray(toTypedArrayIndex(pixels, heap), toTypedArrayIndex(pixels + bytes, heap)); }; - - var _emscripten_glReadPixels = (x, y, width, height, format, type, pixels) => { - if (GL.currentContext.version >= 2) { - if (GLctx.currentPixelPackBufferBinding) { - GLctx.readPixels(x, y, width, height, format, type, pixels); - return; - } - var heap = heapObjectForWebGLType(type); - var target = toTypedArrayIndex(pixels, heap); - GLctx.readPixels(x, y, width, height, format, type, heap, target); - return; - } var pixelData = emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, format); if (!pixelData) { GL.recordError(0x500/*GL_INVALID_ENUM*/); @@ -8032,32 +7343,10 @@ async function createWasm() { var _emscripten_glRenderbufferStorage = (x0, x1, x2, x3) => GLctx.renderbufferStorage(x0, x1, x2, x3); - var _emscripten_glRenderbufferStorageMultisample = (x0, x1, x2, x3, x4) => GLctx.renderbufferStorageMultisample(x0, x1, x2, x3, x4); - - var _emscripten_glResumeTransformFeedback = () => GLctx.resumeTransformFeedback(); - var _emscripten_glSampleCoverage = (value, invert) => { GLctx.sampleCoverage(value, !!invert); }; - var _emscripten_glSamplerParameterf = (sampler, pname, param) => { - GLctx.samplerParameterf(GL.samplers[sampler], pname, param); - }; - - var _emscripten_glSamplerParameterfv = (sampler, pname, params) => { - var param = HEAPF32[((params)>>2)]; - GLctx.samplerParameterf(GL.samplers[sampler], pname, param); - }; - - var _emscripten_glSamplerParameteri = (sampler, pname, param) => { - GLctx.samplerParameteri(GL.samplers[sampler], pname, param); - }; - - var _emscripten_glSamplerParameteriv = (sampler, pname, params) => { - var param = HEAP32[((params)>>2)]; - GLctx.samplerParameteri(GL.samplers[sampler], pname, param); - }; - var _emscripten_glScissor = (x0, x1, x2, x3) => GLctx.scissor(x0, x1, x2, x3); var _emscripten_glShaderBinary = (count, shaders, binaryformat, binary, length) => { @@ -8083,37 +7372,11 @@ async function createWasm() { var _emscripten_glStencilOpSeparate = (x0, x1, x2, x3) => GLctx.stencilOpSeparate(x0, x1, x2, x3); - - var _emscripten_glTexImage2D = (target, level, internalFormat, width, height, border, format, type, pixels) => { - if (GL.currentContext.version >= 2) { - if (GLctx.currentPixelUnpackBufferBinding) { - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels); - return; - } - if (pixels) { - var heap = heapObjectForWebGLType(type); - var index = toTypedArrayIndex(pixels, heap); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, index); - return; - } - } var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null; GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); }; - - var _emscripten_glTexImage3D = (target, level, internalFormat, width, height, depth, border, format, type, pixels) => { - if (GLctx.currentPixelUnpackBufferBinding) { - GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, pixels); - } else if (pixels) { - var heap = heapObjectForWebGLType(type); - GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, heap, toTypedArrayIndex(pixels, heap)); - } else { - GLctx.texImage3D(target, level, internalFormat, width, height, depth, border, format, type, null); - } - }; - var _emscripten_glTexParameterf = (x0, x1, x2) => GLctx.texParameterf(x0, x1, x2); var _emscripten_glTexParameterfv = (target, pname, params) => { @@ -8128,51 +7391,13 @@ async function createWasm() { GLctx.texParameteri(target, pname, param); }; - var _emscripten_glTexStorage2D = (x0, x1, x2, x3, x4) => GLctx.texStorage2D(x0, x1, x2, x3, x4); - - var _emscripten_glTexStorage3D = (x0, x1, x2, x3, x4, x5) => GLctx.texStorage3D(x0, x1, x2, x3, x4, x5); - - - var _emscripten_glTexSubImage2D = (target, level, xoffset, yoffset, width, height, format, type, pixels) => { - if (GL.currentContext.version >= 2) { - if (GLctx.currentPixelUnpackBufferBinding) { - GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels); - return; - } - if (pixels) { - var heap = heapObjectForWebGLType(type); - GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, heap, toTypedArrayIndex(pixels, heap)); - return; - } - } var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, 0) : null; GLctx.texSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixelData); }; - var _emscripten_glTexSubImage3D = (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) => { - if (GLctx.currentPixelUnpackBufferBinding) { - GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels); - } else if (pixels) { - var heap = heapObjectForWebGLType(type); - GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, heap, toTypedArrayIndex(pixels, heap)); - } else { - GLctx.texSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, null); - } - }; - - var _emscripten_glTransformFeedbackVaryings = (program, count, varyings, bufferMode) => { - program = GL.programs[program]; - var vars = []; - for (var i = 0; i < count; i++) - vars.push(UTF8ToString(HEAP32[(((varyings)+(i*4))>>2)])); - - GLctx.transformFeedbackVaryings(program, vars, bufferMode); - }; - - var _emscripten_glUniform1f = (location, v0) => { GLctx.uniform1f(webglGetUniformLocation(location), v0); }; @@ -8182,11 +7407,6 @@ async function createWasm() { var _emscripten_glUniform1fv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform1fv(webglGetUniformLocation(location), HEAPF32, ((value)>>2), count); - return; - } - if (count <= 288) { // avoid allocation when uploading few enough uniforms var view = miniTempWebGLFloatBuffers[count]; @@ -8210,11 +7430,6 @@ async function createWasm() { var _emscripten_glUniform1iv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform1iv(webglGetUniformLocation(location), HEAP32, ((value)>>2), count); - return; - } - if (count <= 288) { // avoid allocation when uploading few enough uniforms var view = miniTempWebGLIntBuffers[count]; @@ -8228,14 +7443,6 @@ async function createWasm() { GLctx.uniform1iv(webglGetUniformLocation(location), view); }; - var _emscripten_glUniform1ui = (location, v0) => { - GLctx.uniform1ui(webglGetUniformLocation(location), v0); - }; - - var _emscripten_glUniform1uiv = (location, count, value) => { - count && GLctx.uniform1uiv(webglGetUniformLocation(location), HEAPU32, ((value)>>2), count); - }; - var _emscripten_glUniform2f = (location, v0, v1) => { GLctx.uniform2f(webglGetUniformLocation(location), v0, v1); @@ -8245,11 +7452,6 @@ async function createWasm() { var _emscripten_glUniform2fv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform2fv(webglGetUniformLocation(location), HEAPF32, ((value)>>2), count*2); - return; - } - if (count <= 144) { // avoid allocation when uploading few enough uniforms count *= 2; @@ -8274,11 +7476,6 @@ async function createWasm() { var _emscripten_glUniform2iv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform2iv(webglGetUniformLocation(location), HEAP32, ((value)>>2), count*2); - return; - } - if (count <= 144) { // avoid allocation when uploading few enough uniforms count *= 2; @@ -8294,14 +7491,6 @@ async function createWasm() { GLctx.uniform2iv(webglGetUniformLocation(location), view); }; - var _emscripten_glUniform2ui = (location, v0, v1) => { - GLctx.uniform2ui(webglGetUniformLocation(location), v0, v1); - }; - - var _emscripten_glUniform2uiv = (location, count, value) => { - count && GLctx.uniform2uiv(webglGetUniformLocation(location), HEAPU32, ((value)>>2), count*2); - }; - var _emscripten_glUniform3f = (location, v0, v1, v2) => { GLctx.uniform3f(webglGetUniformLocation(location), v0, v1, v2); @@ -8311,11 +7500,6 @@ async function createWasm() { var _emscripten_glUniform3fv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform3fv(webglGetUniformLocation(location), HEAPF32, ((value)>>2), count*3); - return; - } - if (count <= 96) { // avoid allocation when uploading few enough uniforms count *= 3; @@ -8341,11 +7525,6 @@ async function createWasm() { var _emscripten_glUniform3iv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform3iv(webglGetUniformLocation(location), HEAP32, ((value)>>2), count*3); - return; - } - if (count <= 96) { // avoid allocation when uploading few enough uniforms count *= 3; @@ -8362,14 +7541,6 @@ async function createWasm() { GLctx.uniform3iv(webglGetUniformLocation(location), view); }; - var _emscripten_glUniform3ui = (location, v0, v1, v2) => { - GLctx.uniform3ui(webglGetUniformLocation(location), v0, v1, v2); - }; - - var _emscripten_glUniform3uiv = (location, count, value) => { - count && GLctx.uniform3uiv(webglGetUniformLocation(location), HEAPU32, ((value)>>2), count*3); - }; - var _emscripten_glUniform4f = (location, v0, v1, v2, v3) => { GLctx.uniform4f(webglGetUniformLocation(location), v0, v1, v2, v3); @@ -8379,11 +7550,6 @@ async function createWasm() { var _emscripten_glUniform4fv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform4fv(webglGetUniformLocation(location), HEAPF32, ((value)>>2), count*4); - return; - } - if (count <= 72) { // avoid allocation when uploading few enough uniforms var view = miniTempWebGLFloatBuffers[4*count]; @@ -8414,11 +7580,6 @@ async function createWasm() { var _emscripten_glUniform4iv = (location, count, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniform4iv(webglGetUniformLocation(location), HEAP32, ((value)>>2), count*4); - return; - } - if (count <= 72) { // avoid allocation when uploading few enough uniforms count *= 4; @@ -8436,29 +7597,10 @@ async function createWasm() { GLctx.uniform4iv(webglGetUniformLocation(location), view); }; - var _emscripten_glUniform4ui = (location, v0, v1, v2, v3) => { - GLctx.uniform4ui(webglGetUniformLocation(location), v0, v1, v2, v3); - }; - - var _emscripten_glUniform4uiv = (location, count, value) => { - count && GLctx.uniform4uiv(webglGetUniformLocation(location), HEAPU32, ((value)>>2), count*4); - }; - - var _emscripten_glUniformBlockBinding = (program, uniformBlockIndex, uniformBlockBinding) => { - program = GL.programs[program]; - - GLctx.uniformBlockBinding(program, uniformBlockIndex, uniformBlockBinding); - }; - var _emscripten_glUniformMatrix2fv = (location, count, transpose, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*4); - return; - } - if (count <= 72) { // avoid allocation when uploading few enough uniforms count *= 4; @@ -8476,23 +7618,10 @@ async function createWasm() { GLctx.uniformMatrix2fv(webglGetUniformLocation(location), !!transpose, view); }; - var _emscripten_glUniformMatrix2x3fv = (location, count, transpose, value) => { - count && GLctx.uniformMatrix2x3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*6); - }; - - var _emscripten_glUniformMatrix2x4fv = (location, count, transpose, value) => { - count && GLctx.uniformMatrix2x4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*8); - }; - var _emscripten_glUniformMatrix3fv = (location, count, transpose, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*9); - return; - } - if (count <= 32) { // avoid allocation when uploading few enough uniforms count *= 9; @@ -8515,23 +7644,10 @@ async function createWasm() { GLctx.uniformMatrix3fv(webglGetUniformLocation(location), !!transpose, view); }; - var _emscripten_glUniformMatrix3x2fv = (location, count, transpose, value) => { - count && GLctx.uniformMatrix3x2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*6); - }; - - var _emscripten_glUniformMatrix3x4fv = (location, count, transpose, value) => { - count && GLctx.uniformMatrix3x4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*12); - }; - var _emscripten_glUniformMatrix4fv = (location, count, transpose, value) => { - if (GL.currentContext.version >= 2) { - count && GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*16); - return; - } - if (count <= 18) { // avoid allocation when uploading few enough uniforms var view = miniTempWebGLFloatBuffers[16*count]; @@ -8565,14 +7681,6 @@ async function createWasm() { GLctx.uniformMatrix4fv(webglGetUniformLocation(location), !!transpose, view); }; - var _emscripten_glUniformMatrix4x2fv = (location, count, transpose, value) => { - count && GLctx.uniformMatrix4x2fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*8); - }; - - var _emscripten_glUniformMatrix4x3fv = (location, count, transpose, value) => { - count && GLctx.uniformMatrix4x3fv(webglGetUniformLocation(location), !!transpose, HEAPF32, ((value)>>2), count*12); - }; - var _emscripten_glUseProgram = (program) => { program = GL.programs[program]; GLctx.useProgram(program); @@ -8613,50 +7721,18 @@ async function createWasm() { GLctx.vertexAttrib4f(index, HEAPF32[v>>2], HEAPF32[v+4>>2], HEAPF32[v+8>>2], HEAPF32[v+12>>2]); }; + var _emscripten_glVertexAttribDivisor = (index, divisor) => { GLctx.vertexAttribDivisor(index, divisor); }; - - var _emscripten_glVertexAttribDivisorANGLE = _emscripten_glVertexAttribDivisor; - - var _emscripten_glVertexAttribDivisorARB = _emscripten_glVertexAttribDivisor; - - - var _emscripten_glVertexAttribDivisorEXT = _emscripten_glVertexAttribDivisor; - - - var _emscripten_glVertexAttribDivisorNV = _emscripten_glVertexAttribDivisor; - - var _emscripten_glVertexAttribI4i = (x0, x1, x2, x3, x4) => GLctx.vertexAttribI4i(x0, x1, x2, x3, x4); - - var _emscripten_glVertexAttribI4iv = (index, v) => { - GLctx.vertexAttribI4i(index, HEAP32[v>>2], HEAP32[v+4>>2], HEAP32[v+8>>2], HEAP32[v+12>>2]); - }; - - var _emscripten_glVertexAttribI4ui = (x0, x1, x2, x3, x4) => GLctx.vertexAttribI4ui(x0, x1, x2, x3, x4); - - var _emscripten_glVertexAttribI4uiv = (index, v) => { - GLctx.vertexAttribI4ui(index, HEAPU32[v>>2], HEAPU32[v+4>>2], HEAPU32[v+8>>2], HEAPU32[v+12>>2]); - }; - - var _emscripten_glVertexAttribIPointer = (index, size, type, stride, ptr) => { - GLctx.vertexAttribIPointer(index, size, type, stride, ptr); - }; - var _emscripten_glVertexAttribPointer = (index, size, type, normalized, stride, ptr) => { GLctx.vertexAttribPointer(index, size, type, !!normalized, stride, ptr); }; var _emscripten_glViewport = (x0, x1, x2, x3) => GLctx.viewport(x0, x1, x2, x3); - var _emscripten_glWaitSync = (sync, flags, timeout) => { - // See WebGL2 vs GLES3 difference on GL_TIMEOUT_IGNORED above (https://www.khronos.org/registry/webgl/specs/latest/2.0/#5.15) - timeout = Number(timeout); - GLctx.waitSync(GL.syncs[sync], flags, timeout); - }; - var _emscripten_has_asyncify = () => 0; @@ -10030,9 +9106,6 @@ missingLibrarySymbols.forEach(missingLibrarySymbol) 'EGL', 'GLEW', 'IDBStore', - 'emscriptenWebGLGetIndexed', - 'webgl_enable_WEBGL_draw_instanced_base_vertex_base_instance', - 'webgl_enable_WEBGL_multi_draw_instanced_base_vertex_base_instance', 'print', 'printErr', 'jstoi_s', @@ -10049,23 +9122,23 @@ function checkIncomingModuleAPI() { ignoredModuleProp('fetchSettings'); } var ASM_CONSTS = { - 156844: ($0) => { var str = UTF8ToString($0) + '\n\n' + 'Abort/Retry/Ignore/AlwaysIgnore? [ariA] :'; var reply = window.prompt(str, "i"); if (reply === null) { reply = "i"; } return reply.length === 1 ? reply.charCodeAt(0) : -1; }, - 157059: () => { if (typeof(AudioContext) !== 'undefined') { return true; } else if (typeof(webkitAudioContext) !== 'undefined') { return true; } return false; }, - 157206: () => { if ((typeof(navigator.mediaDevices) !== 'undefined') && (typeof(navigator.mediaDevices.getUserMedia) !== 'undefined')) { return true; } else if (typeof(navigator.webkitGetUserMedia) !== 'undefined') { return true; } return false; }, - 157440: ($0) => { if(typeof(Module['SDL2']) === 'undefined') { Module['SDL2'] = {}; } var SDL2 = Module['SDL2']; if (!$0) { SDL2.audio = {}; } else { SDL2.capture = {}; } if (!SDL2.audioContext) { if (typeof(AudioContext) !== 'undefined') { SDL2.audioContext = new AudioContext(); } else if (typeof(webkitAudioContext) !== 'undefined') { SDL2.audioContext = new webkitAudioContext(); } if (SDL2.audioContext) { if ((typeof navigator.userActivation) === 'undefined') { autoResumeAudioContext(SDL2.audioContext); } } } return SDL2.audioContext === undefined ? -1 : 0; }, - 157992: () => { var SDL2 = Module['SDL2']; return SDL2.audioContext.sampleRate; }, - 158060: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; var have_microphone = function(stream) { if (SDL2.capture.silenceTimer !== undefined) { clearInterval(SDL2.capture.silenceTimer); SDL2.capture.silenceTimer = undefined; SDL2.capture.silenceBuffer = undefined } SDL2.capture.mediaStreamNode = SDL2.audioContext.createMediaStreamSource(stream); SDL2.capture.scriptProcessorNode = SDL2.audioContext.createScriptProcessor($1, $0, 1); SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) { if ((SDL2 === undefined) || (SDL2.capture === undefined)) { return; } audioProcessingEvent.outputBuffer.getChannelData(0).fill(0.0); SDL2.capture.currentCaptureBuffer = audioProcessingEvent.inputBuffer; dynCall('vp', $2, [$3]); }; SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode); SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination); SDL2.capture.stream = stream; }; var no_microphone = function(error) { }; SDL2.capture.silenceBuffer = SDL2.audioContext.createBuffer($0, $1, SDL2.audioContext.sampleRate); SDL2.capture.silenceBuffer.getChannelData(0).fill(0.0); var silence_callback = function() { SDL2.capture.currentCaptureBuffer = SDL2.capture.silenceBuffer; dynCall('vp', $2, [$3]); }; SDL2.capture.silenceTimer = setInterval(silence_callback, ($1 / SDL2.audioContext.sampleRate) * 1000); if ((navigator.mediaDevices !== undefined) && (navigator.mediaDevices.getUserMedia !== undefined)) { navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(have_microphone).catch(no_microphone); } else if (navigator.webkitGetUserMedia !== undefined) { navigator.webkitGetUserMedia({ audio: true, video: false }, have_microphone, no_microphone); } }, - 159753: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; SDL2.audio.scriptProcessorNode = SDL2.audioContext['createScriptProcessor']($1, 0, $0); SDL2.audio.scriptProcessorNode['onaudioprocess'] = function (e) { if ((SDL2 === undefined) || (SDL2.audio === undefined)) { return; } if (SDL2.audio.silenceTimer !== undefined) { clearInterval(SDL2.audio.silenceTimer); SDL2.audio.silenceTimer = undefined; SDL2.audio.silenceBuffer = undefined; } SDL2.audio.currentOutputBuffer = e['outputBuffer']; dynCall('vp', $2, [$3]); }; SDL2.audio.scriptProcessorNode['connect'](SDL2.audioContext['destination']); if (SDL2.audioContext.state === 'suspended') { SDL2.audio.silenceBuffer = SDL2.audioContext.createBuffer($0, $1, SDL2.audioContext.sampleRate); SDL2.audio.silenceBuffer.getChannelData(0).fill(0.0); var silence_callback = function() { if ((typeof navigator.userActivation) !== 'undefined') { if (navigator.userActivation.hasBeenActive) { SDL2.audioContext.resume(); } } SDL2.audio.currentOutputBuffer = SDL2.audio.silenceBuffer; dynCall('vp', $2, [$3]); SDL2.audio.currentOutputBuffer = undefined; }; SDL2.audio.silenceTimer = setInterval(silence_callback, ($1 / SDL2.audioContext.sampleRate) * 1000); } }, - 160928: ($0, $1) => { var SDL2 = Module['SDL2']; var numChannels = SDL2.capture.currentCaptureBuffer.numberOfChannels; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.capture.currentCaptureBuffer.getChannelData(c); if (channelData.length != $1) { throw 'Web Audio capture buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } if (numChannels == 1) { for (var j = 0; j < $1; ++j) { setValue($0 + (j * 4), channelData[j], 'float'); } } else { for (var j = 0; j < $1; ++j) { setValue($0 + (((j * numChannels) + c) * 4), channelData[j], 'float'); } } } }, - 161533: ($0, $1) => { var SDL2 = Module['SDL2']; var buf = $0 >>> 2; var numChannels = SDL2.audio.currentOutputBuffer['numberOfChannels']; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.audio.currentOutputBuffer['getChannelData'](c); if (channelData.length != $1) { throw 'Web Audio output buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } for (var j = 0; j < $1; ++j) { channelData[j] = HEAPF32[buf + (j*numChannels + c)]; } } }, - 162022: ($0) => { var SDL2 = Module['SDL2']; if ($0) { if (SDL2.capture.silenceTimer !== undefined) { clearInterval(SDL2.capture.silenceTimer); } if (SDL2.capture.stream !== undefined) { var tracks = SDL2.capture.stream.getAudioTracks(); for (var i = 0; i < tracks.length; i++) { SDL2.capture.stream.removeTrack(tracks[i]); } } if (SDL2.capture.scriptProcessorNode !== undefined) { SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) {}; SDL2.capture.scriptProcessorNode.disconnect(); } if (SDL2.capture.mediaStreamNode !== undefined) { SDL2.capture.mediaStreamNode.disconnect(); } SDL2.capture = undefined; } else { if (SDL2.audio.scriptProcessorNode != undefined) { SDL2.audio.scriptProcessorNode.disconnect(); } if (SDL2.audio.silenceTimer !== undefined) { clearInterval(SDL2.audio.silenceTimer); } SDL2.audio = undefined; } if ((SDL2.audioContext !== undefined) && (SDL2.audio === undefined) && (SDL2.capture === undefined)) { SDL2.audioContext.close(); SDL2.audioContext = undefined; } }, - 163028: ($0, $1, $2) => { var w = $0; var h = $1; var pixels = $2; if (!Module['SDL2']) Module['SDL2'] = {}; var SDL2 = Module['SDL2']; if (SDL2.ctxCanvas !== Module['canvas']) { SDL2.ctx = Browser.createContext(Module['canvas'], false, true); SDL2.ctxCanvas = Module['canvas']; } if (SDL2.w !== w || SDL2.h !== h || SDL2.imageCtx !== SDL2.ctx) { SDL2.image = SDL2.ctx.createImageData(w, h); SDL2.w = w; SDL2.h = h; SDL2.imageCtx = SDL2.ctx; } var data = SDL2.image.data; var src = pixels / 4; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = 0xff; src++; dst += 4; } } else { if (SDL2.data32Data !== data) { SDL2.data32 = new Int32Array(data.buffer); SDL2.data8 = new Uint8Array(data.buffer); SDL2.data32Data = data; } var data32 = SDL2.data32; num = data32.length; data32.set(HEAP32.subarray(src, src + num)); var data8 = SDL2.data8; var i = 3; var j = i + 4*num; if (num % 8 == 0) { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; } } else { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; } } } SDL2.ctx.putImageData(SDL2.image, 0, 0); }, - 164494: ($0, $1, $2, $3, $4) => { var w = $0; var h = $1; var hot_x = $2; var hot_y = $3; var pixels = $4; var canvas = document.createElement("canvas"); canvas.width = w; canvas.height = h; var ctx = canvas.getContext("2d"); var image = ctx.createImageData(w, h); var data = image.data; var src = pixels / 4; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = (val >> 24) & 0xff; src++; dst += 4; } } else { var data32 = new Int32Array(data.buffer); num = data32.length; data32.set(HEAP32.subarray(src, src + num)); } ctx.putImageData(image, 0, 0); var url = hot_x === 0 && hot_y === 0 ? "url(" + canvas.toDataURL() + "), auto" : "url(" + canvas.toDataURL() + ") " + hot_x + " " + hot_y + ", auto"; var urlBuf = _malloc(url.length + 1); stringToUTF8(url, urlBuf, url.length + 1); return urlBuf; }, - 165482: ($0) => { if (Module['canvas']) { Module['canvas'].style['cursor'] = UTF8ToString($0); } }, - 165565: () => { if (Module['canvas']) { Module['canvas'].style['cursor'] = 'none'; } }, - 165634: () => { return window.innerWidth; }, - 165664: () => { return window.innerHeight; }, - 165695: ($0, $1) => { alert(UTF8ToString($0) + "\n\n" + UTF8ToString($1)); } + 154972: ($0) => { var str = UTF8ToString($0) + '\n\n' + 'Abort/Retry/Ignore/AlwaysIgnore? [ariA] :'; var reply = window.prompt(str, "i"); if (reply === null) { reply = "i"; } return reply.length === 1 ? reply.charCodeAt(0) : -1; }, + 155187: () => { if (typeof(AudioContext) !== 'undefined') { return true; } else if (typeof(webkitAudioContext) !== 'undefined') { return true; } return false; }, + 155334: () => { if ((typeof(navigator.mediaDevices) !== 'undefined') && (typeof(navigator.mediaDevices.getUserMedia) !== 'undefined')) { return true; } else if (typeof(navigator.webkitGetUserMedia) !== 'undefined') { return true; } return false; }, + 155568: ($0) => { if(typeof(Module['SDL2']) === 'undefined') { Module['SDL2'] = {}; } var SDL2 = Module['SDL2']; if (!$0) { SDL2.audio = {}; } else { SDL2.capture = {}; } if (!SDL2.audioContext) { if (typeof(AudioContext) !== 'undefined') { SDL2.audioContext = new AudioContext(); } else if (typeof(webkitAudioContext) !== 'undefined') { SDL2.audioContext = new webkitAudioContext(); } if (SDL2.audioContext) { if ((typeof navigator.userActivation) === 'undefined') { autoResumeAudioContext(SDL2.audioContext); } } } return SDL2.audioContext === undefined ? -1 : 0; }, + 156120: () => { var SDL2 = Module['SDL2']; return SDL2.audioContext.sampleRate; }, + 156188: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; var have_microphone = function(stream) { if (SDL2.capture.silenceTimer !== undefined) { clearInterval(SDL2.capture.silenceTimer); SDL2.capture.silenceTimer = undefined; SDL2.capture.silenceBuffer = undefined } SDL2.capture.mediaStreamNode = SDL2.audioContext.createMediaStreamSource(stream); SDL2.capture.scriptProcessorNode = SDL2.audioContext.createScriptProcessor($1, $0, 1); SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) { if ((SDL2 === undefined) || (SDL2.capture === undefined)) { return; } audioProcessingEvent.outputBuffer.getChannelData(0).fill(0.0); SDL2.capture.currentCaptureBuffer = audioProcessingEvent.inputBuffer; dynCall('vp', $2, [$3]); }; SDL2.capture.mediaStreamNode.connect(SDL2.capture.scriptProcessorNode); SDL2.capture.scriptProcessorNode.connect(SDL2.audioContext.destination); SDL2.capture.stream = stream; }; var no_microphone = function(error) { }; SDL2.capture.silenceBuffer = SDL2.audioContext.createBuffer($0, $1, SDL2.audioContext.sampleRate); SDL2.capture.silenceBuffer.getChannelData(0).fill(0.0); var silence_callback = function() { SDL2.capture.currentCaptureBuffer = SDL2.capture.silenceBuffer; dynCall('vp', $2, [$3]); }; SDL2.capture.silenceTimer = setInterval(silence_callback, ($1 / SDL2.audioContext.sampleRate) * 1000); if ((navigator.mediaDevices !== undefined) && (navigator.mediaDevices.getUserMedia !== undefined)) { navigator.mediaDevices.getUserMedia({ audio: true, video: false }).then(have_microphone).catch(no_microphone); } else if (navigator.webkitGetUserMedia !== undefined) { navigator.webkitGetUserMedia({ audio: true, video: false }, have_microphone, no_microphone); } }, + 157881: ($0, $1, $2, $3) => { var SDL2 = Module['SDL2']; SDL2.audio.scriptProcessorNode = SDL2.audioContext['createScriptProcessor']($1, 0, $0); SDL2.audio.scriptProcessorNode['onaudioprocess'] = function (e) { if ((SDL2 === undefined) || (SDL2.audio === undefined)) { return; } if (SDL2.audio.silenceTimer !== undefined) { clearInterval(SDL2.audio.silenceTimer); SDL2.audio.silenceTimer = undefined; SDL2.audio.silenceBuffer = undefined; } SDL2.audio.currentOutputBuffer = e['outputBuffer']; dynCall('vp', $2, [$3]); }; SDL2.audio.scriptProcessorNode['connect'](SDL2.audioContext['destination']); if (SDL2.audioContext.state === 'suspended') { SDL2.audio.silenceBuffer = SDL2.audioContext.createBuffer($0, $1, SDL2.audioContext.sampleRate); SDL2.audio.silenceBuffer.getChannelData(0).fill(0.0); var silence_callback = function() { if ((typeof navigator.userActivation) !== 'undefined') { if (navigator.userActivation.hasBeenActive) { SDL2.audioContext.resume(); } } SDL2.audio.currentOutputBuffer = SDL2.audio.silenceBuffer; dynCall('vp', $2, [$3]); SDL2.audio.currentOutputBuffer = undefined; }; SDL2.audio.silenceTimer = setInterval(silence_callback, ($1 / SDL2.audioContext.sampleRate) * 1000); } }, + 159056: ($0, $1) => { var SDL2 = Module['SDL2']; var numChannels = SDL2.capture.currentCaptureBuffer.numberOfChannels; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.capture.currentCaptureBuffer.getChannelData(c); if (channelData.length != $1) { throw 'Web Audio capture buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } if (numChannels == 1) { for (var j = 0; j < $1; ++j) { setValue($0 + (j * 4), channelData[j], 'float'); } } else { for (var j = 0; j < $1; ++j) { setValue($0 + (((j * numChannels) + c) * 4), channelData[j], 'float'); } } } }, + 159661: ($0, $1) => { var SDL2 = Module['SDL2']; var buf = $0 >>> 2; var numChannels = SDL2.audio.currentOutputBuffer['numberOfChannels']; for (var c = 0; c < numChannels; ++c) { var channelData = SDL2.audio.currentOutputBuffer['getChannelData'](c); if (channelData.length != $1) { throw 'Web Audio output buffer length mismatch! Destination size: ' + channelData.length + ' samples vs expected ' + $1 + ' samples!'; } for (var j = 0; j < $1; ++j) { channelData[j] = HEAPF32[buf + (j*numChannels + c)]; } } }, + 160150: ($0) => { var SDL2 = Module['SDL2']; if ($0) { if (SDL2.capture.silenceTimer !== undefined) { clearInterval(SDL2.capture.silenceTimer); } if (SDL2.capture.stream !== undefined) { var tracks = SDL2.capture.stream.getAudioTracks(); for (var i = 0; i < tracks.length; i++) { SDL2.capture.stream.removeTrack(tracks[i]); } } if (SDL2.capture.scriptProcessorNode !== undefined) { SDL2.capture.scriptProcessorNode.onaudioprocess = function(audioProcessingEvent) {}; SDL2.capture.scriptProcessorNode.disconnect(); } if (SDL2.capture.mediaStreamNode !== undefined) { SDL2.capture.mediaStreamNode.disconnect(); } SDL2.capture = undefined; } else { if (SDL2.audio.scriptProcessorNode != undefined) { SDL2.audio.scriptProcessorNode.disconnect(); } if (SDL2.audio.silenceTimer !== undefined) { clearInterval(SDL2.audio.silenceTimer); } SDL2.audio = undefined; } if ((SDL2.audioContext !== undefined) && (SDL2.audio === undefined) && (SDL2.capture === undefined)) { SDL2.audioContext.close(); SDL2.audioContext = undefined; } }, + 161156: ($0, $1, $2) => { var w = $0; var h = $1; var pixels = $2; if (!Module['SDL2']) Module['SDL2'] = {}; var SDL2 = Module['SDL2']; if (SDL2.ctxCanvas !== Module['canvas']) { SDL2.ctx = Browser.createContext(Module['canvas'], false, true); SDL2.ctxCanvas = Module['canvas']; } if (SDL2.w !== w || SDL2.h !== h || SDL2.imageCtx !== SDL2.ctx) { SDL2.image = SDL2.ctx.createImageData(w, h); SDL2.w = w; SDL2.h = h; SDL2.imageCtx = SDL2.ctx; } var data = SDL2.image.data; var src = pixels / 4; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = 0xff; src++; dst += 4; } } else { if (SDL2.data32Data !== data) { SDL2.data32 = new Int32Array(data.buffer); SDL2.data8 = new Uint8Array(data.buffer); SDL2.data32Data = data; } var data32 = SDL2.data32; num = data32.length; data32.set(HEAP32.subarray(src, src + num)); var data8 = SDL2.data8; var i = 3; var j = i + 4*num; if (num % 8 == 0) { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; data8[i] = 0xff; i = i + 4 | 0; } } else { while (i < j) { data8[i] = 0xff; i = i + 4 | 0; } } } SDL2.ctx.putImageData(SDL2.image, 0, 0); }, + 162622: ($0, $1, $2, $3, $4) => { var w = $0; var h = $1; var hot_x = $2; var hot_y = $3; var pixels = $4; var canvas = document.createElement("canvas"); canvas.width = w; canvas.height = h; var ctx = canvas.getContext("2d"); var image = ctx.createImageData(w, h); var data = image.data; var src = pixels / 4; var dst = 0; var num; if (typeof CanvasPixelArray !== 'undefined' && data instanceof CanvasPixelArray) { num = data.length; while (dst < num) { var val = HEAP32[src]; data[dst ] = val & 0xff; data[dst+1] = (val >> 8) & 0xff; data[dst+2] = (val >> 16) & 0xff; data[dst+3] = (val >> 24) & 0xff; src++; dst += 4; } } else { var data32 = new Int32Array(data.buffer); num = data32.length; data32.set(HEAP32.subarray(src, src + num)); } ctx.putImageData(image, 0, 0); var url = hot_x === 0 && hot_y === 0 ? "url(" + canvas.toDataURL() + "), auto" : "url(" + canvas.toDataURL() + ") " + hot_x + " " + hot_y + ", auto"; var urlBuf = _malloc(url.length + 1); stringToUTF8(url, urlBuf, url.length + 1); return urlBuf; }, + 163610: ($0) => { if (Module['canvas']) { Module['canvas'].style['cursor'] = UTF8ToString($0); } }, + 163693: () => { if (Module['canvas']) { Module['canvas'].style['cursor'] = 'none'; } }, + 163762: () => { return window.innerWidth; }, + 163792: () => { return window.innerHeight; }, + 163823: ($0, $1) => { alert(UTF8ToString($0) + "\n\n" + UTF8ToString($1)); } }; // Imports from the Wasm binary. @@ -10210,32 +9283,18 @@ var wasmImports = { /** @export */ emscripten_glAttachShader: _emscripten_glAttachShader, /** @export */ - emscripten_glBeginQuery: _emscripten_glBeginQuery, - /** @export */ emscripten_glBeginQueryEXT: _emscripten_glBeginQueryEXT, /** @export */ - emscripten_glBeginTransformFeedback: _emscripten_glBeginTransformFeedback, - /** @export */ emscripten_glBindAttribLocation: _emscripten_glBindAttribLocation, /** @export */ emscripten_glBindBuffer: _emscripten_glBindBuffer, /** @export */ - emscripten_glBindBufferBase: _emscripten_glBindBufferBase, - /** @export */ - emscripten_glBindBufferRange: _emscripten_glBindBufferRange, - /** @export */ emscripten_glBindFramebuffer: _emscripten_glBindFramebuffer, /** @export */ emscripten_glBindRenderbuffer: _emscripten_glBindRenderbuffer, /** @export */ - emscripten_glBindSampler: _emscripten_glBindSampler, - /** @export */ emscripten_glBindTexture: _emscripten_glBindTexture, /** @export */ - emscripten_glBindTransformFeedback: _emscripten_glBindTransformFeedback, - /** @export */ - emscripten_glBindVertexArray: _emscripten_glBindVertexArray, - /** @export */ emscripten_glBindVertexArrayOES: _emscripten_glBindVertexArrayOES, /** @export */ emscripten_glBlendColor: _emscripten_glBlendColor, @@ -10248,8 +9307,6 @@ var wasmImports = { /** @export */ emscripten_glBlendFuncSeparate: _emscripten_glBlendFuncSeparate, /** @export */ - emscripten_glBlitFramebuffer: _emscripten_glBlitFramebuffer, - /** @export */ emscripten_glBufferData: _emscripten_glBufferData, /** @export */ emscripten_glBufferSubData: _emscripten_glBufferSubData, @@ -10258,22 +9315,12 @@ var wasmImports = { /** @export */ emscripten_glClear: _emscripten_glClear, /** @export */ - emscripten_glClearBufferfi: _emscripten_glClearBufferfi, - /** @export */ - emscripten_glClearBufferfv: _emscripten_glClearBufferfv, - /** @export */ - emscripten_glClearBufferiv: _emscripten_glClearBufferiv, - /** @export */ - emscripten_glClearBufferuiv: _emscripten_glClearBufferuiv, - /** @export */ emscripten_glClearColor: _emscripten_glClearColor, /** @export */ emscripten_glClearDepthf: _emscripten_glClearDepthf, /** @export */ emscripten_glClearStencil: _emscripten_glClearStencil, /** @export */ - emscripten_glClientWaitSync: _emscripten_glClientWaitSync, - /** @export */ emscripten_glClipControlEXT: _emscripten_glClipControlEXT, /** @export */ emscripten_glColorMask: _emscripten_glColorMask, @@ -10282,20 +9329,12 @@ var wasmImports = { /** @export */ emscripten_glCompressedTexImage2D: _emscripten_glCompressedTexImage2D, /** @export */ - emscripten_glCompressedTexImage3D: _emscripten_glCompressedTexImage3D, - /** @export */ emscripten_glCompressedTexSubImage2D: _emscripten_glCompressedTexSubImage2D, /** @export */ - emscripten_glCompressedTexSubImage3D: _emscripten_glCompressedTexSubImage3D, - /** @export */ - emscripten_glCopyBufferSubData: _emscripten_glCopyBufferSubData, - /** @export */ emscripten_glCopyTexImage2D: _emscripten_glCopyTexImage2D, /** @export */ emscripten_glCopyTexSubImage2D: _emscripten_glCopyTexSubImage2D, /** @export */ - emscripten_glCopyTexSubImage3D: _emscripten_glCopyTexSubImage3D, - /** @export */ emscripten_glCreateProgram: _emscripten_glCreateProgram, /** @export */ emscripten_glCreateShader: _emscripten_glCreateShader, @@ -10308,24 +9347,14 @@ var wasmImports = { /** @export */ emscripten_glDeleteProgram: _emscripten_glDeleteProgram, /** @export */ - emscripten_glDeleteQueries: _emscripten_glDeleteQueries, - /** @export */ emscripten_glDeleteQueriesEXT: _emscripten_glDeleteQueriesEXT, /** @export */ emscripten_glDeleteRenderbuffers: _emscripten_glDeleteRenderbuffers, /** @export */ - emscripten_glDeleteSamplers: _emscripten_glDeleteSamplers, - /** @export */ emscripten_glDeleteShader: _emscripten_glDeleteShader, /** @export */ - emscripten_glDeleteSync: _emscripten_glDeleteSync, - /** @export */ emscripten_glDeleteTextures: _emscripten_glDeleteTextures, /** @export */ - emscripten_glDeleteTransformFeedbacks: _emscripten_glDeleteTransformFeedbacks, - /** @export */ - emscripten_glDeleteVertexArrays: _emscripten_glDeleteVertexArrays, - /** @export */ emscripten_glDeleteVertexArraysOES: _emscripten_glDeleteVertexArraysOES, /** @export */ emscripten_glDepthFunc: _emscripten_glDepthFunc, @@ -10342,48 +9371,20 @@ var wasmImports = { /** @export */ emscripten_glDrawArrays: _emscripten_glDrawArrays, /** @export */ - emscripten_glDrawArraysInstanced: _emscripten_glDrawArraysInstanced, - /** @export */ emscripten_glDrawArraysInstancedANGLE: _emscripten_glDrawArraysInstancedANGLE, /** @export */ - emscripten_glDrawArraysInstancedARB: _emscripten_glDrawArraysInstancedARB, - /** @export */ - emscripten_glDrawArraysInstancedEXT: _emscripten_glDrawArraysInstancedEXT, - /** @export */ - emscripten_glDrawArraysInstancedNV: _emscripten_glDrawArraysInstancedNV, - /** @export */ - emscripten_glDrawBuffers: _emscripten_glDrawBuffers, - /** @export */ - emscripten_glDrawBuffersEXT: _emscripten_glDrawBuffersEXT, - /** @export */ emscripten_glDrawBuffersWEBGL: _emscripten_glDrawBuffersWEBGL, /** @export */ emscripten_glDrawElements: _emscripten_glDrawElements, /** @export */ - emscripten_glDrawElementsInstanced: _emscripten_glDrawElementsInstanced, - /** @export */ emscripten_glDrawElementsInstancedANGLE: _emscripten_glDrawElementsInstancedANGLE, /** @export */ - emscripten_glDrawElementsInstancedARB: _emscripten_glDrawElementsInstancedARB, - /** @export */ - emscripten_glDrawElementsInstancedEXT: _emscripten_glDrawElementsInstancedEXT, - /** @export */ - emscripten_glDrawElementsInstancedNV: _emscripten_glDrawElementsInstancedNV, - /** @export */ - emscripten_glDrawRangeElements: _emscripten_glDrawRangeElements, - /** @export */ emscripten_glEnable: _emscripten_glEnable, /** @export */ emscripten_glEnableVertexAttribArray: _emscripten_glEnableVertexAttribArray, /** @export */ - emscripten_glEndQuery: _emscripten_glEndQuery, - /** @export */ emscripten_glEndQueryEXT: _emscripten_glEndQueryEXT, /** @export */ - emscripten_glEndTransformFeedback: _emscripten_glEndTransformFeedback, - /** @export */ - emscripten_glFenceSync: _emscripten_glFenceSync, - /** @export */ emscripten_glFinish: _emscripten_glFinish, /** @export */ emscripten_glFlush: _emscripten_glFlush, @@ -10392,28 +9393,18 @@ var wasmImports = { /** @export */ emscripten_glFramebufferTexture2D: _emscripten_glFramebufferTexture2D, /** @export */ - emscripten_glFramebufferTextureLayer: _emscripten_glFramebufferTextureLayer, - /** @export */ emscripten_glFrontFace: _emscripten_glFrontFace, /** @export */ emscripten_glGenBuffers: _emscripten_glGenBuffers, /** @export */ emscripten_glGenFramebuffers: _emscripten_glGenFramebuffers, /** @export */ - emscripten_glGenQueries: _emscripten_glGenQueries, - /** @export */ emscripten_glGenQueriesEXT: _emscripten_glGenQueriesEXT, /** @export */ emscripten_glGenRenderbuffers: _emscripten_glGenRenderbuffers, /** @export */ - emscripten_glGenSamplers: _emscripten_glGenSamplers, - /** @export */ emscripten_glGenTextures: _emscripten_glGenTextures, /** @export */ - emscripten_glGenTransformFeedbacks: _emscripten_glGenTransformFeedbacks, - /** @export */ - emscripten_glGenVertexArrays: _emscripten_glGenVertexArrays, - /** @export */ emscripten_glGenVertexArraysOES: _emscripten_glGenVertexArraysOES, /** @export */ emscripten_glGenerateMipmap: _emscripten_glGenerateMipmap, @@ -10422,42 +9413,22 @@ var wasmImports = { /** @export */ emscripten_glGetActiveUniform: _emscripten_glGetActiveUniform, /** @export */ - emscripten_glGetActiveUniformBlockName: _emscripten_glGetActiveUniformBlockName, - /** @export */ - emscripten_glGetActiveUniformBlockiv: _emscripten_glGetActiveUniformBlockiv, - /** @export */ - emscripten_glGetActiveUniformsiv: _emscripten_glGetActiveUniformsiv, - /** @export */ emscripten_glGetAttachedShaders: _emscripten_glGetAttachedShaders, /** @export */ emscripten_glGetAttribLocation: _emscripten_glGetAttribLocation, /** @export */ emscripten_glGetBooleanv: _emscripten_glGetBooleanv, /** @export */ - emscripten_glGetBufferParameteri64v: _emscripten_glGetBufferParameteri64v, - /** @export */ emscripten_glGetBufferParameteriv: _emscripten_glGetBufferParameteriv, /** @export */ emscripten_glGetError: _emscripten_glGetError, /** @export */ emscripten_glGetFloatv: _emscripten_glGetFloatv, /** @export */ - emscripten_glGetFragDataLocation: _emscripten_glGetFragDataLocation, - /** @export */ emscripten_glGetFramebufferAttachmentParameteriv: _emscripten_glGetFramebufferAttachmentParameteriv, /** @export */ - emscripten_glGetInteger64i_v: _emscripten_glGetInteger64i_v, - /** @export */ - emscripten_glGetInteger64v: _emscripten_glGetInteger64v, - /** @export */ - emscripten_glGetIntegeri_v: _emscripten_glGetIntegeri_v, - /** @export */ emscripten_glGetIntegerv: _emscripten_glGetIntegerv, /** @export */ - emscripten_glGetInternalformativ: _emscripten_glGetInternalformativ, - /** @export */ - emscripten_glGetProgramBinary: _emscripten_glGetProgramBinary, - /** @export */ emscripten_glGetProgramInfoLog: _emscripten_glGetProgramInfoLog, /** @export */ emscripten_glGetProgramiv: _emscripten_glGetProgramiv, @@ -10468,20 +9439,12 @@ var wasmImports = { /** @export */ emscripten_glGetQueryObjectui64vEXT: _emscripten_glGetQueryObjectui64vEXT, /** @export */ - emscripten_glGetQueryObjectuiv: _emscripten_glGetQueryObjectuiv, - /** @export */ emscripten_glGetQueryObjectuivEXT: _emscripten_glGetQueryObjectuivEXT, /** @export */ - emscripten_glGetQueryiv: _emscripten_glGetQueryiv, - /** @export */ emscripten_glGetQueryivEXT: _emscripten_glGetQueryivEXT, /** @export */ emscripten_glGetRenderbufferParameteriv: _emscripten_glGetRenderbufferParameteriv, /** @export */ - emscripten_glGetSamplerParameterfv: _emscripten_glGetSamplerParameterfv, - /** @export */ - emscripten_glGetSamplerParameteriv: _emscripten_glGetSamplerParameteriv, - /** @export */ emscripten_glGetShaderInfoLog: _emscripten_glGetShaderInfoLog, /** @export */ emscripten_glGetShaderPrecisionFormat: _emscripten_glGetShaderPrecisionFormat, @@ -10492,32 +9455,16 @@ var wasmImports = { /** @export */ emscripten_glGetString: _emscripten_glGetString, /** @export */ - emscripten_glGetStringi: _emscripten_glGetStringi, - /** @export */ - emscripten_glGetSynciv: _emscripten_glGetSynciv, - /** @export */ emscripten_glGetTexParameterfv: _emscripten_glGetTexParameterfv, /** @export */ emscripten_glGetTexParameteriv: _emscripten_glGetTexParameteriv, /** @export */ - emscripten_glGetTransformFeedbackVarying: _emscripten_glGetTransformFeedbackVarying, - /** @export */ - emscripten_glGetUniformBlockIndex: _emscripten_glGetUniformBlockIndex, - /** @export */ - emscripten_glGetUniformIndices: _emscripten_glGetUniformIndices, - /** @export */ emscripten_glGetUniformLocation: _emscripten_glGetUniformLocation, /** @export */ emscripten_glGetUniformfv: _emscripten_glGetUniformfv, /** @export */ emscripten_glGetUniformiv: _emscripten_glGetUniformiv, /** @export */ - emscripten_glGetUniformuiv: _emscripten_glGetUniformuiv, - /** @export */ - emscripten_glGetVertexAttribIiv: _emscripten_glGetVertexAttribIiv, - /** @export */ - emscripten_glGetVertexAttribIuiv: _emscripten_glGetVertexAttribIuiv, - /** @export */ emscripten_glGetVertexAttribPointerv: _emscripten_glGetVertexAttribPointerv, /** @export */ emscripten_glGetVertexAttribfv: _emscripten_glGetVertexAttribfv, @@ -10526,10 +9473,6 @@ var wasmImports = { /** @export */ emscripten_glHint: _emscripten_glHint, /** @export */ - emscripten_glInvalidateFramebuffer: _emscripten_glInvalidateFramebuffer, - /** @export */ - emscripten_glInvalidateSubFramebuffer: _emscripten_glInvalidateSubFramebuffer, - /** @export */ emscripten_glIsBuffer: _emscripten_glIsBuffer, /** @export */ emscripten_glIsEnabled: _emscripten_glIsEnabled, @@ -10538,32 +9481,20 @@ var wasmImports = { /** @export */ emscripten_glIsProgram: _emscripten_glIsProgram, /** @export */ - emscripten_glIsQuery: _emscripten_glIsQuery, - /** @export */ emscripten_glIsQueryEXT: _emscripten_glIsQueryEXT, /** @export */ emscripten_glIsRenderbuffer: _emscripten_glIsRenderbuffer, /** @export */ - emscripten_glIsSampler: _emscripten_glIsSampler, - /** @export */ emscripten_glIsShader: _emscripten_glIsShader, /** @export */ - emscripten_glIsSync: _emscripten_glIsSync, - /** @export */ emscripten_glIsTexture: _emscripten_glIsTexture, /** @export */ - emscripten_glIsTransformFeedback: _emscripten_glIsTransformFeedback, - /** @export */ - emscripten_glIsVertexArray: _emscripten_glIsVertexArray, - /** @export */ emscripten_glIsVertexArrayOES: _emscripten_glIsVertexArrayOES, /** @export */ emscripten_glLineWidth: _emscripten_glLineWidth, /** @export */ emscripten_glLinkProgram: _emscripten_glLinkProgram, /** @export */ - emscripten_glPauseTransformFeedback: _emscripten_glPauseTransformFeedback, - /** @export */ emscripten_glPixelStorei: _emscripten_glPixelStorei, /** @export */ emscripten_glPolygonModeWEBGL: _emscripten_glPolygonModeWEBGL, @@ -10572,34 +9503,16 @@ var wasmImports = { /** @export */ emscripten_glPolygonOffsetClampEXT: _emscripten_glPolygonOffsetClampEXT, /** @export */ - emscripten_glProgramBinary: _emscripten_glProgramBinary, - /** @export */ - emscripten_glProgramParameteri: _emscripten_glProgramParameteri, - /** @export */ emscripten_glQueryCounterEXT: _emscripten_glQueryCounterEXT, /** @export */ - emscripten_glReadBuffer: _emscripten_glReadBuffer, - /** @export */ emscripten_glReadPixels: _emscripten_glReadPixels, /** @export */ emscripten_glReleaseShaderCompiler: _emscripten_glReleaseShaderCompiler, /** @export */ emscripten_glRenderbufferStorage: _emscripten_glRenderbufferStorage, /** @export */ - emscripten_glRenderbufferStorageMultisample: _emscripten_glRenderbufferStorageMultisample, - /** @export */ - emscripten_glResumeTransformFeedback: _emscripten_glResumeTransformFeedback, - /** @export */ emscripten_glSampleCoverage: _emscripten_glSampleCoverage, /** @export */ - emscripten_glSamplerParameterf: _emscripten_glSamplerParameterf, - /** @export */ - emscripten_glSamplerParameterfv: _emscripten_glSamplerParameterfv, - /** @export */ - emscripten_glSamplerParameteri: _emscripten_glSamplerParameteri, - /** @export */ - emscripten_glSamplerParameteriv: _emscripten_glSamplerParameteriv, - /** @export */ emscripten_glScissor: _emscripten_glScissor, /** @export */ emscripten_glShaderBinary: _emscripten_glShaderBinary, @@ -10620,8 +9533,6 @@ var wasmImports = { /** @export */ emscripten_glTexImage2D: _emscripten_glTexImage2D, /** @export */ - emscripten_glTexImage3D: _emscripten_glTexImage3D, - /** @export */ emscripten_glTexParameterf: _emscripten_glTexParameterf, /** @export */ emscripten_glTexParameterfv: _emscripten_glTexParameterfv, @@ -10630,16 +9541,8 @@ var wasmImports = { /** @export */ emscripten_glTexParameteriv: _emscripten_glTexParameteriv, /** @export */ - emscripten_glTexStorage2D: _emscripten_glTexStorage2D, - /** @export */ - emscripten_glTexStorage3D: _emscripten_glTexStorage3D, - /** @export */ emscripten_glTexSubImage2D: _emscripten_glTexSubImage2D, /** @export */ - emscripten_glTexSubImage3D: _emscripten_glTexSubImage3D, - /** @export */ - emscripten_glTransformFeedbackVaryings: _emscripten_glTransformFeedbackVaryings, - /** @export */ emscripten_glUniform1f: _emscripten_glUniform1f, /** @export */ emscripten_glUniform1fv: _emscripten_glUniform1fv, @@ -10648,10 +9551,6 @@ var wasmImports = { /** @export */ emscripten_glUniform1iv: _emscripten_glUniform1iv, /** @export */ - emscripten_glUniform1ui: _emscripten_glUniform1ui, - /** @export */ - emscripten_glUniform1uiv: _emscripten_glUniform1uiv, - /** @export */ emscripten_glUniform2f: _emscripten_glUniform2f, /** @export */ emscripten_glUniform2fv: _emscripten_glUniform2fv, @@ -10660,10 +9559,6 @@ var wasmImports = { /** @export */ emscripten_glUniform2iv: _emscripten_glUniform2iv, /** @export */ - emscripten_glUniform2ui: _emscripten_glUniform2ui, - /** @export */ - emscripten_glUniform2uiv: _emscripten_glUniform2uiv, - /** @export */ emscripten_glUniform3f: _emscripten_glUniform3f, /** @export */ emscripten_glUniform3fv: _emscripten_glUniform3fv, @@ -10672,10 +9567,6 @@ var wasmImports = { /** @export */ emscripten_glUniform3iv: _emscripten_glUniform3iv, /** @export */ - emscripten_glUniform3ui: _emscripten_glUniform3ui, - /** @export */ - emscripten_glUniform3uiv: _emscripten_glUniform3uiv, - /** @export */ emscripten_glUniform4f: _emscripten_glUniform4f, /** @export */ emscripten_glUniform4fv: _emscripten_glUniform4fv, @@ -10684,30 +9575,12 @@ var wasmImports = { /** @export */ emscripten_glUniform4iv: _emscripten_glUniform4iv, /** @export */ - emscripten_glUniform4ui: _emscripten_glUniform4ui, - /** @export */ - emscripten_glUniform4uiv: _emscripten_glUniform4uiv, - /** @export */ - emscripten_glUniformBlockBinding: _emscripten_glUniformBlockBinding, - /** @export */ emscripten_glUniformMatrix2fv: _emscripten_glUniformMatrix2fv, /** @export */ - emscripten_glUniformMatrix2x3fv: _emscripten_glUniformMatrix2x3fv, - /** @export */ - emscripten_glUniformMatrix2x4fv: _emscripten_glUniformMatrix2x4fv, - /** @export */ emscripten_glUniformMatrix3fv: _emscripten_glUniformMatrix3fv, /** @export */ - emscripten_glUniformMatrix3x2fv: _emscripten_glUniformMatrix3x2fv, - /** @export */ - emscripten_glUniformMatrix3x4fv: _emscripten_glUniformMatrix3x4fv, - /** @export */ emscripten_glUniformMatrix4fv: _emscripten_glUniformMatrix4fv, /** @export */ - emscripten_glUniformMatrix4x2fv: _emscripten_glUniformMatrix4x2fv, - /** @export */ - emscripten_glUniformMatrix4x3fv: _emscripten_glUniformMatrix4x3fv, - /** @export */ emscripten_glUseProgram: _emscripten_glUseProgram, /** @export */ emscripten_glValidateProgram: _emscripten_glValidateProgram, @@ -10728,32 +9601,12 @@ var wasmImports = { /** @export */ emscripten_glVertexAttrib4fv: _emscripten_glVertexAttrib4fv, /** @export */ - emscripten_glVertexAttribDivisor: _emscripten_glVertexAttribDivisor, - /** @export */ emscripten_glVertexAttribDivisorANGLE: _emscripten_glVertexAttribDivisorANGLE, /** @export */ - emscripten_glVertexAttribDivisorARB: _emscripten_glVertexAttribDivisorARB, - /** @export */ - emscripten_glVertexAttribDivisorEXT: _emscripten_glVertexAttribDivisorEXT, - /** @export */ - emscripten_glVertexAttribDivisorNV: _emscripten_glVertexAttribDivisorNV, - /** @export */ - emscripten_glVertexAttribI4i: _emscripten_glVertexAttribI4i, - /** @export */ - emscripten_glVertexAttribI4iv: _emscripten_glVertexAttribI4iv, - /** @export */ - emscripten_glVertexAttribI4ui: _emscripten_glVertexAttribI4ui, - /** @export */ - emscripten_glVertexAttribI4uiv: _emscripten_glVertexAttribI4uiv, - /** @export */ - emscripten_glVertexAttribIPointer: _emscripten_glVertexAttribIPointer, - /** @export */ emscripten_glVertexAttribPointer: _emscripten_glVertexAttribPointer, /** @export */ emscripten_glViewport: _emscripten_glViewport, /** @export */ - emscripten_glWaitSync: _emscripten_glWaitSync, - /** @export */ emscripten_has_asyncify: _emscripten_has_asyncify, /** @export */ emscripten_request_fullscreen_strategy: _emscripten_request_fullscreen_strategy,