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

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

Issue 2402273002: DrawingBuffer: Clean up GL state restoration (Closed)
Patch Set: Created 4 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 3d352b67a928bbbc0d3d3414aab1d80bae729430..dbaa865a2acd30e301742d9964e1c456f2f7b4df 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
+++ b/third_party/WebKit/Source/modules/webgl/WebGL2RenderingContextBase.cpp
@@ -3538,7 +3538,6 @@ void WebGL2RenderingContextBase::deleteFramebuffer(
m_readFramebufferBinding = nullptr;
}
if (target) {
- drawingBuffer()->setFramebufferBinding(target, 0);
// Have to call drawingBuffer()->bind() here to bind back to internal fbo.
drawingBuffer()->bind(target);
}
@@ -4511,4 +4510,23 @@ WebGL2RenderingContextBase::getUnpackPixelStoreParams(
return params;
}
+void WebGL2RenderingContextBase::
+ DrawingBufferClientRestoreFramebufferBinding() {
+ GLuint drawFramebufferBinding = objectOrZero(m_framebufferBinding.get());
+ GLuint readFramebufferBinding = objectOrZero(m_readFramebufferBinding.get());
+
+ if (drawFramebufferBinding == readFramebufferBinding) {
+ contextGL()->BindFramebuffer(GL_FRAMEBUFFER, drawFramebufferBinding);
+ } else {
+ contextGL()->BindFramebuffer(GL_READ_FRAMEBUFFER, readFramebufferBinding);
+ contextGL()->BindFramebuffer(GL_DRAW_FRAMEBUFFER, drawFramebufferBinding);
+ }
+}
+
+void WebGL2RenderingContextBase::
+ DrawingBufferClientRestorePixelUnpackBufferBinding() {
+ contextGL()->BindBuffer(GL_PIXEL_UNPACK_BUFFER,
+ objectOrZero(m_boundPixelUnpackBuffer.get()));
+}
+
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698