Index: Source/modules/webgl/WebGLRenderingContextBase.cpp |
diff --git a/Source/modules/webgl/WebGLRenderingContextBase.cpp b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
index 4e53c20f450f360fc3c6306714410d5e20994055..22cfe6a599191491d06b66479de3dc641ee58cd0 100644 |
--- a/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -1569,15 +1569,8 @@ void WebGLRenderingContextBase::bufferDataImpl(GLenum target, long long size, co |
if (!buffer) |
return; |
- switch (usage) { |
- case GL_STREAM_DRAW: |
- case GL_STATIC_DRAW: |
- case GL_DYNAMIC_DRAW: |
- break; |
- default: |
- synthesizeGLError(GL_INVALID_ENUM, "bufferData", "invalid usage"); |
+ if (!validateBufferDataUsage("bufferData", usage)) |
return; |
- } |
if (!validateValueFitNonNegInt32("bufferData", "size", size)) |
return; |
@@ -6130,6 +6123,19 @@ WebGLBuffer* WebGLRenderingContextBase::validateBufferDataTarget(const char* fun |
return buffer; |
} |
+bool WebGLRenderingContextBase::validateBufferDataUsage(const char* functionName, GLenum usage) |
+{ |
+ switch (usage) { |
+ case GL_STREAM_DRAW: |
+ case GL_STATIC_DRAW: |
+ case GL_DYNAMIC_DRAW: |
+ return true; |
+ default: |
+ synthesizeGLError(GL_INVALID_ENUM, functionName, "invalid usage"); |
+ return false; |
+ } |
+} |
+ |
void WebGLRenderingContextBase::removeBoundBuffer(WebGLBuffer* buffer) |
{ |
if (m_boundArrayBuffer == buffer) |