| 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)
|
|
|