From 29df3df4f2b5eeb5050653678a287cbc7e143886 Mon Sep 17 00:00:00 2001 From: Alon Zakai Date: Fri, 15 Feb 2013 13:44:53 +0100 Subject: ensure no writes out of the buffer area in glReadPixels --- src/library_gl.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/library_gl.js b/src/library_gl.js index 8f692dbf..1f664717 100644 --- a/src/library_gl.js +++ b/src/library_gl.js @@ -408,7 +408,19 @@ var LibraryGL = { }, glReadPixels: function(x, y, width, height, format, type, pixels) { - Module.ctx.readPixels(x, y, width, height, format, type, HEAPU8.subarray(pixels)); + assert(type == 0x1401 /* GL_UNSIGNED_BYTE */); + var sizePerPixel; + switch (format) { + case 0x1907 /* GL_RGB */: + sizePerPixel = 3; + break; + case 0x1908 /* GL_RGBA */: + sizePerPixel = 4; + break; + default: throw 'unsupported glReadPixels format'; + } + var totalSize = width*height*sizePerPixel; + Module.ctx.readPixels(x, y, width, height, format, type, HEAPU8.subarray(pixels, pixels + totalSize)); }, glBindTexture: function(target, texture) { -- cgit v1.2.3-70-g09d2