summaryrefslogtreecommitdiff
path: root/chromium/gpu/command_buffer/service/framebuffer_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/gpu/command_buffer/service/framebuffer_manager.h')
-rw-r--r--chromium/gpu/command_buffer/service/framebuffer_manager.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/chromium/gpu/command_buffer/service/framebuffer_manager.h b/chromium/gpu/command_buffer/service/framebuffer_manager.h
index eab5809d631..e4433cc045d 100644
--- a/chromium/gpu/command_buffer/service/framebuffer_manager.h
+++ b/chromium/gpu/command_buffer/service/framebuffer_manager.h
@@ -27,7 +27,6 @@ class FramebufferCompletenessCache;
class FramebufferManager;
class Renderbuffer;
class RenderbufferManager;
-class Texture;
class TextureRef;
class TextureManager;
@@ -195,6 +194,11 @@ class GPU_EXPORT Framebuffer : public base::RefCounted<Framebuffer> {
bool ValidateAndAdjustDrawBuffers(uint32_t fragment_output_type_mask,
uint32_t fragment_output_written_mask);
+ // Filter out the draw buffers that have no images attached but are not NONE
+ // through DrawBuffers, to be on the safe side.
+ // This is applied before a clear call.
+ void AdjustDrawBuffers();
+
bool ContainsActiveIntegerAttachments() const;
// Return true if any draw buffers has an alpha channel.
@@ -248,6 +252,9 @@ class GPU_EXPORT Framebuffer : public base::RefCounted<Framebuffer> {
// This call is only valid on a complete fbo.
void UpdateDrawBufferMasks();
+ // Helper for ValidateAndAdjustDrawBuffers() and AdjustDrawBuffers().
+ void AdjustDrawBuffersImpl(uint32_t desired_mask);
+
// The managers that owns this.
FramebufferManager* manager_;