Chromium Code Reviews| Index: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| diff --git a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| index 459901c6163fb260ba22d8f1a14e834cbf95cb8e..b7c7d40450d650305cb64b97fba20959ce9728ce 100644 |
| --- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| +++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp |
| @@ -1451,76 +1451,11 @@ void WebGL2RenderingContextBase::vertexAttribIuivImpl(const char* functionName, |
| attribValue.value.uintValue[3] = value[3]; |
| } |
| -bool WebGL2RenderingContextBase::validateVertexAttribPointerTypeAndSize(GLenum type, GLint size) |
| -{ |
| - switch (type) { |
| - case GL_BYTE: |
| - case GL_UNSIGNED_BYTE: |
| - case GL_SHORT: |
| - case GL_UNSIGNED_SHORT: |
| - case GL_INT: |
| - case GL_UNSIGNED_INT: |
| - case GL_FLOAT: |
| - case GL_HALF_FLOAT: |
| - if (size < 1 || size > 4) { |
| - synthesizeGLError(GL_INVALID_VALUE, "vertexAttribPointer", "invalid size"); |
| - return false; |
| - } |
| - return true; |
| - case GL_INT_2_10_10_10_REV: |
| - case GL_UNSIGNED_INT_2_10_10_10_REV: |
| - if (size < 1 || size > 4) { |
| - synthesizeGLError(GL_INVALID_VALUE, "vertexAttribPointer", "invalid size"); |
| - return false; |
| - } |
| - if (size != 4) { |
| - synthesizeGLError(GL_INVALID_OPERATION, "vertexAttribPointer", "size != 4"); |
| - return false; |
| - } |
| - return true; |
| - default: |
| - synthesizeGLError(GL_INVALID_ENUM, "vertexAttribPointer", "invalid type"); |
| - return false; |
| - } |
| -} |
| - |
| void WebGL2RenderingContextBase::vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, long long offset) |
| { |
| if (isContextLost()) |
| return; |
| - |
| - switch (type) { |
| - case GL_BYTE: |
| - case GL_UNSIGNED_BYTE: |
| - case GL_SHORT: |
| - case GL_UNSIGNED_SHORT: |
| - case GL_INT: |
| - case GL_UNSIGNED_INT: |
| - break; |
| - default: |
| - synthesizeGLError(GL_INVALID_ENUM, "vertexAttribIPointer", "invalid type"); |
| - return; |
| - } |
| - if (index >= m_maxVertexAttribs) { |
| - synthesizeGLError(GL_INVALID_VALUE, "vertexAttribIPointer", "index out of range"); |
| - return; |
| - } |
| - if (size < 1 || size > 4 || stride < 0 || stride > 255) { |
| - synthesizeGLError(GL_INVALID_VALUE, "vertexAttribIPointer", "bad size or stride"); |
| - return; |
| - } |
| - if (!validateValueFitNonNegInt32("vertexAttribIPointer", "offset", offset)) |
| - return; |
| - if (!m_boundArrayBuffer) { |
| - synthesizeGLError(GL_INVALID_OPERATION, "vertexAttribIPointer", "no bound ARRAY_BUFFER"); |
| - return; |
| - } |
| unsigned typeSize = sizeInBytes(type); |
| - ASSERT((typeSize & (typeSize - 1)) == 0); // Ensure that the value is POT. |
| - if ((stride & (typeSize - 1)) || (static_cast<GLintptr>(offset) & (typeSize - 1))) { |
| - synthesizeGLError(GL_INVALID_OPERATION, "vertexAttribIPointer", "stride or offset not valid for type"); |
| - return; |
| - } |
| GLsizei bytesPerElement = size * typeSize; |
| m_boundVertexArrayObject->setVertexAttribState(index, bytesPerElement, size, type, false, stride, static_cast<GLintptr>(offset), m_boundArrayBuffer); |
|
Zhenyao Mo
2015/12/29 22:04:04
When you remove the above validation, then you end
yunchao
2015/12/30 01:02:11
Yeah, that's true. But Chromium will report error/
|