Index: gpu/command_buffer/service/framebuffer_manager.cc |
diff --git a/gpu/command_buffer/service/framebuffer_manager.cc b/gpu/command_buffer/service/framebuffer_manager.cc |
index 48e503cb45b3d1e64986d369edfe70d7f3557c16..7dfba400d24704d31a79cba36c62655b1c81bba8 100644 |
--- a/gpu/command_buffer/service/framebuffer_manager.cc |
+++ b/gpu/command_buffer/service/framebuffer_manager.cc |
@@ -119,6 +119,9 @@ class RenderbufferAttachment |
renderbuffer_->AddToSignature(signature); |
} |
+ virtual void OnWillRenderTo() const OVERRIDE {} |
+ virtual void OnDidRenderTo() const OVERRIDE {} |
+ |
protected: |
virtual ~RenderbufferAttachment() { } |
@@ -243,6 +246,14 @@ class TextureAttachment |
texture_ref_.get(), target_, level_, signature); |
} |
+ virtual void OnWillRenderTo() const OVERRIDE { |
+ texture_ref_->texture()->OnWillModifyPixels(); |
+ } |
+ |
+ virtual void OnDidRenderTo() const OVERRIDE { |
+ texture_ref_->texture()->OnDidModifyPixels(); |
+ } |
+ |
protected: |
virtual ~TextureAttachment() {} |
@@ -615,6 +626,20 @@ void Framebuffer::OnTextureRefDetached(TextureRef* texture) { |
manager_->OnTextureRefDetached(texture); |
} |
+void Framebuffer::OnWillRenderTo() const { |
+ for (AttachmentMap::const_iterator it = attachments_.begin(); |
+ it != attachments_.end(); ++it) { |
+ it->second->OnWillRenderTo(); |
+ } |
+} |
+ |
+void Framebuffer::OnDidRenderTo() const { |
+ for (AttachmentMap::const_iterator it = attachments_.begin(); |
+ it != attachments_.end(); ++it) { |
+ it->second->OnDidRenderTo(); |
+ } |
+} |
+ |
bool FramebufferManager::GetClientId( |
GLuint service_id, GLuint* client_id) const { |
// This doesn't need to be fast. It's only used during slow queries. |