| 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 2de9fcdbd74444b36721b8597789923909c6c629..c0689894c14200e3b18c7dc7e558fa8fa59298fa 100644
|
| --- a/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
|
| +++ b/third_party/WebKit/Source/modules/webgl/WebGLRenderingContextBase.h
|
| @@ -133,7 +133,8 @@ class ScopedRGBEmulationColorMask {
|
| const bool m_requiresEmulation;
|
| };
|
|
|
| -class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext {
|
| +class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext,
|
| + public DrawingBuffer::Client {
|
| WTF_MAKE_NONCOPYABLE(WebGLRenderingContextBase);
|
|
|
| public:
|
| @@ -546,11 +547,7 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext {
|
| void restoreScissorEnabled();
|
| void restoreScissorBox();
|
| void restoreClearColor();
|
| - void restoreClearDepthf();
|
| - void restoreClearStencil();
|
| - void restoreStencilMaskSeparate();
|
| void restoreColorMask();
|
| - void restoreDepthMask();
|
|
|
| gpu::gles2::GLES2Interface* contextGL() const {
|
| DrawingBuffer* d = drawingBuffer();
|
| @@ -621,6 +618,7 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext {
|
| friend class WebGLCompressedTextureS3TCsRGB;
|
| friend class WebGLRenderingContextErrorMessageCallback;
|
| friend class WebGLVertexArrayObjectBase;
|
| + friend class ScopedDrawingBufferBinder;
|
| friend class ScopedTexture2DRestorer;
|
| friend class ScopedFramebufferRestorer;
|
| // To allow V8WebGL[2]RenderingContext to call visitChildDOMWrappers.
|
| @@ -647,6 +645,16 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext {
|
| WebLayer* platformLayer() const override;
|
| void stop() override;
|
|
|
| + // DrawingBuffer::Client implementation.
|
| + bool DrawingBufferClientIsBoundForDraw() override;
|
| + void DrawingBufferClientRestoreScissorTest() override;
|
| + void DrawingBufferClientRestoreMaskAndClearValues() override;
|
| + void DrawingBufferClientRestorePixelPackAlignment() override;
|
| + void DrawingBufferClientRestoreTexture2DBinding() override;
|
| + void DrawingBufferClientRestoreRenderbufferBinding() override;
|
| + void DrawingBufferClientRestoreFramebufferBinding() override;
|
| + void DrawingBufferClientRestorePixelUnpackBufferBinding() override;
|
| +
|
| void addSharedObject(WebGLSharedObject*);
|
| void addContextObject(WebGLContextObject*);
|
| void detachAndRemoveAllObjects();
|
| @@ -917,7 +925,7 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext {
|
| m_readFramebufferBinding(framebufferBinding) {
|
| // Commit DrawingBuffer if needed (e.g., for multisampling)
|
| if (!m_readFramebufferBinding && m_drawingBuffer)
|
| - m_drawingBuffer->commit();
|
| + m_drawingBuffer->resolveAndBindForReadAndDraw();
|
| }
|
|
|
| ~ScopedDrawingBufferBinder() {
|
| @@ -977,9 +985,6 @@ class MODULES_EXPORT WebGLRenderingContextBase : public CanvasRenderingContext {
|
| };
|
| HowToClear clearIfComposited(GLbitfield clearMask = 0);
|
|
|
| - // Helper to restore state that clearing the framebuffer may destroy.
|
| - void restoreStateAfterClear();
|
| -
|
| // Convert texture internal format.
|
| GLenum convertTexInternalFormat(GLenum internalformat, GLenum type);
|
|
|
|
|