diff --git a/src/library_webgl.js b/src/library_webgl.js index a167584b09b2..d61b8d8138c3 100644 --- a/src/library_webgl.js +++ b/src/library_webgl.js @@ -1641,16 +1641,18 @@ for (/**@suppress{duplicate}*/var i = 0; i < {{{ GL_POOL_TEMP_BUFFERS_SIZE }}}; // those always when possible. if (GLctx.currentPixelUnpackBufferBinding) { GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels); - } else if (pixels) { + return; + } + if (pixels) { var heap = heapObjectForWebGLType(type); - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, toTypedArrayIndex(pixels, heap)); - } else { - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, null); + var index = toTypedArrayIndex(pixels, heap); + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, heap, index); + return; } - return; } #endif - GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null); + var pixelData = pixels ? emscriptenWebGLGetTexPixelData(type, format, width, height, pixels, internalFormat) : null; + GLctx.texImage2D(target, level, internalFormat, width, height, border, format, type, pixelData); }, glTexSubImage2D__deps: ['$emscriptenWebGLGetTexPixelData' diff --git a/test/code_size/hello_webgl2_wasm.json b/test/code_size/hello_webgl2_wasm.json index f7caf6bab786..d2f7b3175cac 100644 --- a/test/code_size/hello_webgl2_wasm.json +++ b/test/code_size/hello_webgl2_wasm.json @@ -1,10 +1,10 @@ { "a.html": 569, "a.html.gz": 379, - "a.js": 4589, - "a.js.gz": 2341, + "a.js": 4539, + "a.js.gz": 2315, "a.wasm": 10451, "a.wasm.gz": 6724, - "total": 15609, - "total_gz": 9444 + "total": 15559, + "total_gz": 9418 } diff --git a/test/code_size/hello_webgl2_wasm2js.json b/test/code_size/hello_webgl2_wasm2js.json index d3bb6d57bf6b..8694262a36fc 100644 --- a/test/code_size/hello_webgl2_wasm2js.json +++ b/test/code_size/hello_webgl2_wasm2js.json @@ -1,8 +1,8 @@ { "a.html": 354, "a.html.gz": 266, - "a.js": 22323, - "a.js.gz": 11632, - "total": 22677, - "total_gz": 11898 + "a.js": 22273, + "a.js.gz": 11608, + "total": 22627, + "total_gz": 11874 } diff --git a/test/code_size/hello_webgl_wasm.json b/test/code_size/hello_webgl_wasm.json index 9b2af9a31d33..3b18c94fd7eb 100644 --- a/test/code_size/hello_webgl_wasm.json +++ b/test/code_size/hello_webgl_wasm.json @@ -1,10 +1,10 @@ { "a.html": 569, "a.html.gz": 379, - "a.js": 4075, - "a.js.gz": 2170, + "a.js": 4056, + "a.js.gz": 2152, "a.wasm": 10451, "a.wasm.gz": 6724, - "total": 15095, - "total_gz": 9273 + "total": 15076, + "total_gz": 9255 } diff --git a/test/code_size/hello_webgl_wasm2js.json b/test/code_size/hello_webgl_wasm2js.json index 16ce634d5034..981446baf20a 100644 --- a/test/code_size/hello_webgl_wasm2js.json +++ b/test/code_size/hello_webgl_wasm2js.json @@ -1,8 +1,8 @@ { "a.html": 354, "a.html.gz": 266, - "a.js": 21794, - "a.js.gz": 11450, - "total": 22148, - "total_gz": 11716 + "a.js": 21775, + "a.js.gz": 11436, + "total": 22129, + "total_gz": 11702 }