Chromium Code Reviews| Index: gpu/command_buffer/service/framebuffer_manager.h |
| diff --git a/gpu/command_buffer/service/framebuffer_manager.h b/gpu/command_buffer/service/framebuffer_manager.h |
| index 129d5f348ef65de63410a7cdf0635c0b872f4203..54133fc4823349bd6f2c7955cd406c250f3ca1d8 100644 |
| --- a/gpu/command_buffer/service/framebuffer_manager.h |
| +++ b/gpu/command_buffer/service/framebuffer_manager.h |
| @@ -64,6 +64,7 @@ class GPU_EXPORT Framebuffer : public base::RefCounted<Framebuffer> { |
| } |
| bool HasUnclearedAttachment(GLenum attachment) const; |
| + bool HasUnclearedColorAttachments() const; |
| void MarkAttachmentAsCleared( |
| RenderbufferManager* renderbuffer_manager, |
| @@ -129,6 +130,14 @@ class GPU_EXPORT Framebuffer : public base::RefCounted<Framebuffer> { |
| void SetDrawBuffers(GLsizei n, const GLenum* bufs); |
| + // If a color buffer is attached to GL_COLOR_ATTACHMENTi, enable that |
| + // draw buffer for glClear(). |
| + void PrepareDrawBuffersForClear() const; |
| + |
| + // Recover draw buffers states that have been changed in |
| + // PrepareDrawBuffersForClear(). |
| + void RecoverDrawBuffersAfterClear() const; |
|
Ken Russell (switch to Gerrit)
2014/06/05 20:00:40
For consistency I suggest "Restore" instead of "Re
Zhenyao Mo
2014/06/05 21:27:49
Done.
|
| + |
| // Return true if any draw buffers has an alpha channel. |
| bool HasAlphaMRT() const; |
| @@ -163,6 +172,10 @@ class GPU_EXPORT Framebuffer : public base::RefCounted<Framebuffer> { |
| return framebuffer_complete_state_count_id_; |
| } |
| + // Helper function for PrepareDrawBuffersForClear() and |
| + // RecoverDrawBuffersAfterClear(). |
| + void ChangeDrawBuffersHelper(bool recover) const; |
| + |
| // The managers that owns this. |
| FramebufferManager* manager_; |