diff options
Diffstat (limited to 'gpu/command_buffer/service/framebuffer_manager.h')
-rw-r--r-- | gpu/command_buffer/service/framebuffer_manager.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gpu/command_buffer/service/framebuffer_manager.h b/gpu/command_buffer/service/framebuffer_manager.h index cc2cefb..80cf428 100644 --- a/gpu/command_buffer/service/framebuffer_manager.h +++ b/gpu/command_buffer/service/framebuffer_manager.h @@ -44,6 +44,8 @@ class GPU_EXPORT FramebufferManager { virtual bool CanRenderTo() const = 0; virtual void DetachFromFramebuffer() = 0; virtual bool ValidForAttachmentType(GLenum attachment_type) = 0; + virtual void AddToSignature( + TextureManager* texture_manager, std::string* signature) const = 0; protected: friend class base::RefCounted<Attachment>; @@ -103,9 +105,14 @@ class GPU_EXPORT FramebufferManager { // means it passed our tests. GLenum IsPossiblyComplete() const; + // Implements optimized glGetFramebufferStatus. + GLenum GetStatus(TextureManager* texture_manager, GLenum target) const; + // Check all attachments are cleared bool IsCleared() const; + static void ClearFramebufferCompleteComboMap(); + private: friend class FramebufferManager; friend class base::RefCounted<FramebufferInfo>; @@ -144,6 +151,11 @@ class GPU_EXPORT FramebufferManager { typedef base::hash_map<GLenum, Attachment::Ref> AttachmentMap; AttachmentMap attachments_; + // A map of successful frame buffer combos. If it's in the map + // it should be FRAMEBUFFER_COMPLETE. + typedef base::hash_map<std::string, bool> FramebufferComboCompleteMap; + static FramebufferComboCompleteMap* framebuffer_combo_complete_map_; + DISALLOW_COPY_AND_ASSIGN(FramebufferInfo); }; |