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 248855913c90503a327d2f8bdb1326f34b01938e..113a067ce91ff603fc4fceee61fc14aa4d4058f0 100644 |
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.cpp |
@@ -121,6 +121,22 @@ WebGLRenderingContextBaseMap& forciblyEvictedContexts() |
} // namespace |
+WebGLRenderingContextBase::ScopedDrawingBufferBinder::ScopedDrawingBufferBinder(DrawingBuffer* drawingBuffer, WebGLFramebuffer* framebufferBinding) |
+ : m_drawingBuffer(drawingBuffer) |
+ , m_readFramebufferBinding(framebufferBinding) |
+{ |
+ // Commit DrawingBuffer if needed (e.g., for multisampling) |
+ if (!m_readFramebufferBinding && m_drawingBuffer) |
+ m_drawingBuffer->commit(); |
+} |
+ |
+WebGLRenderingContextBase::ScopedDrawingBufferBinder::~ScopedDrawingBufferBinder() |
+{ |
+ // Restore DrawingBuffer if needed |
+ if (!m_readFramebufferBinding && m_drawingBuffer) |
+ m_drawingBuffer->restoreFramebufferBindings(); |
+} |
+ |
void WebGLRenderingContextBase::forciblyLoseOldestContext(const String& reason) |
{ |
WebGLRenderingContextBase* candidate = oldestContext(); |