Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(618)

Unified Diff: third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp

Issue 1412613004: Set attachment for bound framebuffer in FramebufferTextureLayer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 33c94ce4305b2b71abc3ffa947e9bfeff9a3c3aa..e16458c4a414d754dfa47140af925ae7d9e66be4 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -243,17 +243,28 @@ void WebGL2RenderingContextBase::blitFramebuffer(GLint srcX0, GLint srcY0, GLint
webContext()->blitFramebufferCHROMIUM(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
}
-void WebGL2RenderingContextBase::framebufferTextureLayer(GLenum target, GLenum attachment, const WebGLTexture* texture, GLint level, GLint layer)
+void WebGL2RenderingContextBase::framebufferTextureLayer(ScriptState* scriptState, GLenum target, GLenum attachment, WebGLTexture* texture, GLint level, GLint layer)
{
if (isContextLost())
return;
-
if (texture && !texture->validate(contextGroup(), this)) {
synthesizeGLError(GL_INVALID_VALUE, "framebufferTextureLayer", "no texture or texture not from this context");
return;
}
+ GLenum textarget = texture->getTarget();
+ if (!validateTexFuncLevel("framebufferTextureLayer", textarget, level))
+ return;
+
+ WebGLFramebuffer* framebufferBinding = getFramebufferBinding(target);
+ if (!framebufferBinding || !framebufferBinding->object()) {
+ synthesizeGLError(GL_INVALID_OPERATION, "framebufferTextureLayer", "no framebuffer bound");
+ return;
+ }
webContext()->framebufferTextureLayer(target, attachment, objectOrZero(texture), level, layer);
+ framebufferBinding->setAttachmentForBoundFramebuffer(target, attachment, textarget, texture, level);
Zhenyao Mo 2015/10/26 21:50:33 You miss validation of target, attachment, texture
qiankun 2015/10/27 14:26:31 More validations were added. Incorporated layer pa
+ applyStencilTest();
+ preserveObjectWrapper(scriptState, framebufferBinding, "texture3d", attachment, texture);
Ken Russell (switch to Gerrit) 2015/10/26 21:23:09 I made a mistake in the original patch adding thes
qiankun 2015/10/27 14:26:31 Done.
}
ScriptValue WebGL2RenderingContextBase::getInternalformatParameter(ScriptState* scriptState, GLenum target, GLenum internalformat, GLenum pname)

Powered by Google App Engine
This is Rietveld 408576698