summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/framebuffer_manager.h
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service/framebuffer_manager.h')
-rw-r--r--gpu/command_buffer/service/framebuffer_manager.h12
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);
};