Index: gpu/command_buffer/service/mailbox_manager.h |
diff --git a/gpu/command_buffer/service/mailbox_manager.h b/gpu/command_buffer/service/mailbox_manager.h |
index a2319791249316e369ae1ed53b4ac684a022e32b..e1b36cb934e61b72af29a66c5e47fc5b53461343 100644 |
--- a/gpu/command_buffer/service/mailbox_manager.h |
+++ b/gpu/command_buffer/service/mailbox_manager.h |
@@ -19,6 +19,7 @@ typedef signed char GLbyte; |
namespace gpu { |
namespace gles2 { |
+class MailboxSynchronizer; |
class Texture; |
class TextureManager; |
@@ -35,11 +36,20 @@ class GPU_EXPORT MailboxManager : public base::RefCounted<MailboxManager> { |
const Mailbox& mailbox, |
Texture* texture); |
+ // Returns whether this manager synchronizes with other instances. |
+ bool UsesSync() { return sync_ != NULL; } |
+ |
+ // Used with the MailboxSynchronizer to push/pull texture state to/from |
+ // other manager instances. |
+ void PushTextureUpdates(); |
+ void PullTextureUpdates(); |
+ |
// Destroy any mailbox that reference the given texture. |
void TextureDeleted(Texture* texture); |
private: |
friend class base::RefCounted<MailboxManager>; |
+ friend class MailboxSynchronizer; |
~MailboxManager(); |
@@ -48,6 +58,7 @@ class GPU_EXPORT MailboxManager : public base::RefCounted<MailboxManager> { |
unsigned target; |
Mailbox mailbox; |
}; |
+ void InsertTexture(TargetName target_name, Texture* texture); |
static bool TargetNameLess(const TargetName& lhs, const TargetName& rhs); |
@@ -65,6 +76,8 @@ class GPU_EXPORT MailboxManager : public base::RefCounted<MailboxManager> { |
MailboxToTextureMap mailbox_to_textures_; |
TextureToMailboxMap textures_to_mailboxes_; |
+ MailboxSynchronizer* sync_; |
+ |
DISALLOW_COPY_AND_ASSIGN(MailboxManager); |
}; |
} // namespage gles2 |