Chromium Code Reviews| Index: Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| diff --git a/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| index ac4d668041be05faea042a43cee8b63a71352934..d51c2186c904e2db4261c7bae02d7dc17a14b74a 100644 |
| --- a/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| +++ b/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| @@ -2115,9 +2115,11 @@ bool WebGL2RenderingContextBase::validateReadPixelsFormatAndType(GLenum format, |
| case GL_BYTE: |
| case GL_HALF_FLOAT: |
| case GL_FLOAT: |
| + case GL_UNSIGNED_SHORT: |
| case GL_UNSIGNED_SHORT_5_6_5: |
| case GL_UNSIGNED_SHORT_4_4_4_4: |
| case GL_UNSIGNED_SHORT_5_5_5_1: |
| + case GL_SHORT: |
| case GL_UNSIGNED_INT: |
| case GL_UNSIGNED_INT_2_10_10_10_REV: |
| case GL_UNSIGNED_INT_10F_11F_11F_REV: |
| @@ -2132,6 +2134,37 @@ bool WebGL2RenderingContextBase::validateReadPixelsFormatAndType(GLenum format, |
| return true; |
| } |
| +DOMArrayBufferView::ViewType WebGL2RenderingContextBase::readPixelsExpectedArrayBufferViewType(GLenum type) |
| +{ |
| + DOMArrayBufferView::ViewType expectedViewType; |
|
Zhenyao Mo
2015/08/14 16:07:42
nit: you don't need this expectedViewType. You ca
|
| + switch (type) { |
| + case GL_BYTE: |
| + expectedViewType = DOMArrayBufferView::TypeInt8; |
| + break; |
| + case GL_UNSIGNED_SHORT: |
| + expectedViewType = DOMArrayBufferView::TypeUint16; |
| + break; |
| + case GL_SHORT: |
| + expectedViewType = DOMArrayBufferView::TypeInt16; |
| + break; |
| + case GL_HALF_FLOAT: |
| + expectedViewType = DOMArrayBufferView::TypeUint16; |
| + break; |
| + case GL_UNSIGNED_INT: |
| + case GL_UNSIGNED_INT_2_10_10_10_REV: |
| + case GL_UNSIGNED_INT_10F_11F_11F_REV: |
| + case GL_UNSIGNED_INT_5_9_9_9_REV: |
| + expectedViewType = DOMArrayBufferView::TypeUint32; |
| + break; |
| + case GL_INT: |
| + expectedViewType = DOMArrayBufferView::TypeInt32; |
| + break; |
| + default: |
| + return WebGLRenderingContextBase::readPixelsExpectedArrayBufferViewType(type); |
| + } |
| + return expectedViewType; |
| +} |
| + |
| WebGLFramebuffer* WebGL2RenderingContextBase::getFramebufferBinding(GLenum target) |
| { |
| if (target == GL_READ_FRAMEBUFFER) |