Index: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
index 15ef8b59221f6a124757d4a8dcc3a649ea1041d8..90e88c166d8005efedabc22a97c9597ec8e8cc93 100644 |
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -4206,7 +4206,7 @@ void WebGLRenderingContextBase::texImage2DImpl(GLenum target, GLint level, GLenu |
restoreUnpackParameters(); |
} |
-bool WebGLRenderingContextBase::validateTexFunc(const char* functionName, TexImageFunctionType functionType, TexFuncValidationSourceType sourceType, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, GLint xoffset, GLint yoffset) |
+bool WebGLRenderingContextBase::validateTexFunc(const char* functionName, TexImageFunctionType functionType, TexFuncValidationSourceType sourceType, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, GLint xoffset, GLint yoffset) |
Zhenyao Mo
2015/12/28 19:30:27
It is weird that you upgrade to depth but didn't d
qiankun
2015/12/29 16:16:58
Added depth now. It will be used when validating t
|
{ |
if (!validateTexFuncLevel(functionName, target, level)) |
return false; |
@@ -4223,7 +4223,7 @@ bool WebGLRenderingContextBase::validateTexFunc(const char* functionName, TexIma |
if (internalformat == 0) |
internalformat = texture->getInternalFormat(target, level); |
- if (!validateTexFuncParameters(functionName, functionType, target, level, internalformat, width, height, 1, border, format, type)) |
+ if (!validateTexFuncParameters(functionName, functionType, target, level, internalformat, width, height, depth, border, format, type)) |
return false; |
if (functionType == NotTexSubImage2D) { |
@@ -4309,7 +4309,7 @@ void WebGLRenderingContextBase::texImage2D(GLenum target, GLint level, GLenum in |
GLsizei width, GLsizei height, GLint border, |
GLenum format, GLenum type, DOMArrayBufferView* pixels) |
{ |
- if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceArrayBufferView, target, level, internalformat, width, height, border, format, type, 0, 0) |
+ if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceArrayBufferView, target, level, internalformat, width, height, 1, border, format, type, 0, 0) |
|| !validateTexFuncData("texImage2D", level, width, height, 1, format, type, pixels, NullAllowed)) |
return; |
void* data = pixels ? pixels->baseAddress() : 0; |
@@ -4339,7 +4339,7 @@ void WebGLRenderingContextBase::texImage2D(GLenum target, GLint level, GLenum in |
synthesizeGLError(GL_INVALID_VALUE, "texImage2D", "The source data has been neutered."); |
return; |
} |
- if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceImageData, target, level, internalformat, pixels->width(), pixels->height(), 0, format, type, 0, 0)) |
+ if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceImageData, target, level, internalformat, pixels->width(), pixels->height(), 1, 0, format, type, 0, 0)) |
return; |
if (type == GL_UNSIGNED_INT_10F_11F_11F_REV) { |
// The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented. |
@@ -4376,7 +4376,7 @@ void WebGLRenderingContextBase::texImage2D(GLenum target, GLint level, GLenum in |
if (imageForRender && imageForRender->isSVGImage()) |
imageForRender = drawImageIntoBuffer(imageForRender.release(), image->width(), image->height(), "texImage2D"); |
- if (!imageForRender || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLImageElement, target, level, internalformat, imageForRender->width(), imageForRender->height(), 0, format, type, 0, 0)) |
+ if (!imageForRender || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLImageElement, target, level, internalformat, imageForRender->width(), imageForRender->height(), 1, 0, format, type, 0, 0)) |
return; |
texImage2DImpl(target, level, internalformat, format, type, imageForRender.get(), WebGLImageConversion::HtmlDomImage, m_unpackFlipY, m_unpackPremultiplyAlpha); |
@@ -4455,7 +4455,7 @@ void WebGLRenderingContextBase::texImageCanvasByGPU(TexImageByGPUType functionTy |
void WebGLRenderingContextBase::texImage2D(GLenum target, GLint level, GLenum internalformat, |
GLenum format, GLenum type, HTMLCanvasElement* canvas, ExceptionState& exceptionState) |
{ |
- if (isContextLost() || !validateHTMLCanvasElement("texImage2D", canvas, exceptionState) || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLCanvasElement, target, level, internalformat, canvas->width(), canvas->height(), 0, format, type, 0, 0)) |
+ if (isContextLost() || !validateHTMLCanvasElement("texImage2D", canvas, exceptionState) || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLCanvasElement, target, level, internalformat, canvas->width(), canvas->height(), 1, 0, format, type, 0, 0)) |
return; |
WebGLTexture* texture = validateTextureBinding("texImage2D", target, true); |
@@ -4491,7 +4491,7 @@ void WebGLRenderingContextBase::texImage2D(GLenum target, GLint level, GLenum in |
GLenum format, GLenum type, HTMLVideoElement* video, ExceptionState& exceptionState) |
{ |
if (isContextLost() || !validateHTMLVideoElement("texImage2D", video, exceptionState) |
- || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLVideoElement, target, level, internalformat, video->videoWidth(), video->videoHeight(), 0, format, type, 0, 0)) |
+ || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceHTMLVideoElement, target, level, internalformat, video->videoWidth(), video->videoHeight(), 1, 0, format, type, 0, 0)) |
return; |
// Go through the fast path doing a GPU-GPU textures copy without a readback to system memory if possible. |
@@ -4540,7 +4540,7 @@ void WebGLRenderingContextBase::texImage2D(GLenum target, GLint level, GLenum in |
synthesizeGLError(GL_INVALID_VALUE, "texImage2D", "The source data has been neutered."); |
return; |
} |
- if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceImageBitmap, target, level, 0, bitmap->width(), bitmap->height(), 0, format, type, 0, 0)) |
+ if (isContextLost() || !validateTexFunc("texImage2D", NotTexSubImage2D, SourceImageBitmap, target, level, 0, bitmap->width(), bitmap->height(), 1, 0, format, type, 0, 0)) |
return; |
StaticBitmapImage* imageForRender = bitmap->bitmapImage(); |
texImage2DImpl(target, level, internalformat, format, type, imageForRender, WebGLImageConversion::HtmlDomImage, m_unpackFlipY, m_unpackPremultiplyAlpha); |
@@ -4647,7 +4647,7 @@ void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint |
GLsizei width, GLsizei height, |
GLenum format, GLenum type, DOMArrayBufferView* pixels) |
{ |
- if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceArrayBufferView, target, level, 0, width, height, 0, format, type, xoffset, yoffset) |
+ if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceArrayBufferView, target, level, 0, width, height, 1, 0, format, type, xoffset, yoffset) |
|| !validateTexFuncData("texSubImage2D", level, width, height, 1, format, type, pixels, NullNotAllowed)) |
return; |
void* data = pixels->baseAddress(); |
@@ -4678,7 +4678,7 @@ void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint |
synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "The source data has been neutered."); |
return; |
} |
- if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceImageData, target, level, 0, pixels->width(), pixels->height(), 0, format, type, xoffset, yoffset)) |
+ if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceImageData, target, level, 0, pixels->width(), pixels->height(), 1, 0, format, type, xoffset, yoffset)) |
return; |
if (type == GL_UNSIGNED_INT_10F_11F_11F_REV) { |
// The UNSIGNED_INT_10F_11F_11F_REV type pack/unpack isn't implemented. |
@@ -4716,7 +4716,7 @@ void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint |
if (imageForRender && imageForRender->isSVGImage()) |
imageForRender = drawImageIntoBuffer(imageForRender.release(), image->width(), image->height(), "texSubImage2D"); |
- if (!imageForRender || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLImageElement, target, level, 0, imageForRender->width(), imageForRender->height(), 0, format, type, xoffset, yoffset)) |
+ if (!imageForRender || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLImageElement, target, level, 0, imageForRender->width(), imageForRender->height(), 1, 0, format, type, xoffset, yoffset)) |
return; |
texSubImage2DImpl(target, level, xoffset, yoffset, format, type, imageForRender.get(), WebGLImageConversion::HtmlDomImage, m_unpackFlipY, m_unpackPremultiplyAlpha); |
@@ -4726,7 +4726,7 @@ void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint |
GLenum format, GLenum type, HTMLCanvasElement* canvas, ExceptionState& exceptionState) |
{ |
if (isContextLost() || !validateHTMLCanvasElement("texSubImage2D", canvas, exceptionState) |
- || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLCanvasElement, target, level, 0, canvas->width(), canvas->height(), 0, format, type, xoffset, yoffset)) |
+ || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLCanvasElement, target, level, 0, canvas->width(), canvas->height(), 1, 0, format, type, xoffset, yoffset)) |
return; |
WebGLTexture* texture = validateTextureBinding("texSubImage2D", target, true); |
@@ -4749,7 +4749,7 @@ void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint |
GLenum format, GLenum type, HTMLVideoElement* video, ExceptionState& exceptionState) |
{ |
if (isContextLost() || !validateHTMLVideoElement("texSubImage2D", video, exceptionState) |
- || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLVideoElement, target, level, 0, video->videoWidth(), video->videoHeight(), 0, format, type, xoffset, yoffset)) |
+ || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceHTMLVideoElement, target, level, 0, video->videoWidth(), video->videoHeight(), 1, 0, format, type, xoffset, yoffset)) |
return; |
RefPtr<Image> image = videoFrameToImage(video); |
@@ -4766,7 +4766,7 @@ void WebGLRenderingContextBase::texSubImage2D(GLenum target, GLint level, GLint |
synthesizeGLError(GL_INVALID_VALUE, "texSubImage2D", "The source data has been neutered."); |
return; |
} |
- if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceImageBitmap, target, level, 0, bitmap->width(), bitmap->height(), 0, format, type, 0, 0)) |
+ if (isContextLost() || !validateTexFunc("texSubImage2D", TexSubImage2D, SourceImageBitmap, target, level, 0, bitmap->width(), bitmap->height(), 1, 0, format, type, 0, 0)) |
return; |
StaticBitmapImage* imageForRender = bitmap->bitmapImage(); |
texSubImage2DImpl(target, level, xoffset, yoffset, format, type, imageForRender, WebGLImageConversion::HtmlDomImage, m_unpackFlipY, m_unpackPremultiplyAlpha); |