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

Unified Diff: third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h

Issue 1461193003: Revert of [Oilpan] Prepare full definition of classes before using Member (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make patch applicable Created 5 years, 1 month 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/WebGLRenderingContextBase.h
diff --git a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
index b8abf71ae402a22599c2d621a94b2dae630a441d..748c4ed3246a36ece76d65f92d6a1faf32db7875 100644
--- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
+++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
@@ -129,8 +129,21 @@ struct FormatTypeCompare {
class ScopedDrawingBufferBinder {
STACK_ALLOCATED();
public:
- ScopedDrawingBufferBinder(DrawingBuffer*, WebGLFramebuffer*);
- ~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();
+ }
+
+ ~ScopedDrawingBufferBinder()
+ {
+ // Restore DrawingBuffer if needed
+ if (!m_readFramebufferBinding && m_drawingBuffer)
+ m_drawingBuffer->restoreFramebufferBindings();
+ }
private:
DrawingBuffer* m_drawingBuffer;
@@ -745,8 +758,21 @@ protected:
class ScopedDrawingBufferBinder {
STACK_ALLOCATED();
public:
- ScopedDrawingBufferBinder(DrawingBuffer*, WebGLFramebuffer*);
- ~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();
+ }
+
+ ~ScopedDrawingBufferBinder()
+ {
+ // Restore DrawingBuffer if needed
+ if (!m_readFramebufferBinding && m_drawingBuffer)
+ m_drawingBuffer->restoreFramebufferBindings();
+ }
private:
DrawingBuffer* m_drawingBuffer;

Powered by Google App Engine
This is Rietveld 408576698