| OLD | NEW | 
|---|
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #ifndef CONTENT_BROWSER_COMPOSITOR_OWNED_MAILBOX_H_ | 5 #ifndef CONTENT_BROWSER_COMPOSITOR_OWNED_MAILBOX_H_ | 
| 6 #define CONTENT_BROWSER_COMPOSITOR_OWNED_MAILBOX_H_ | 6 #define CONTENT_BROWSER_COMPOSITOR_OWNED_MAILBOX_H_ | 
| 7 | 7 | 
| 8 #include <stdint.h> | 8 #include <stdint.h> | 
| 9 | 9 | 
| 10 #include "base/memory/ref_counted.h" | 10 #include "base/memory/ref_counted.h" | 
| 11 #include "content/browser/compositor/image_transport_factory.h" | 11 #include "content/browser/compositor/image_transport_factory.h" | 
| 12 #include "content/common/content_export.h" | 12 #include "content/common/content_export.h" | 
| 13 #include "gpu/command_buffer/common/mailbox_holder.h" | 13 #include "gpu/command_buffer/common/mailbox_holder.h" | 
| 14 | 14 | 
| 15 namespace display_compositor { |  | 
| 16 class GLHelper; |  | 
| 17 } |  | 
| 18 |  | 
| 19 namespace content { | 15 namespace content { | 
| 20 | 16 | 
|  | 17 class GLHelper; | 
| 21 | 18 | 
| 22 // This class holds a texture id and gpu::Mailbox, and deletes the texture | 19 // This class holds a texture id and gpu::Mailbox, and deletes the texture | 
| 23 // id when the object itself is destroyed. Should only be created if a GLHelper | 20 // id when the object itself is destroyed. Should only be created if a GLHelper | 
| 24 // exists on the ImageTransportFactory. | 21 // exists on the ImageTransportFactory. | 
| 25 class CONTENT_EXPORT OwnedMailbox : public base::RefCounted<OwnedMailbox>, | 22 class CONTENT_EXPORT OwnedMailbox : public base::RefCounted<OwnedMailbox>, | 
| 26                                     public ImageTransportFactoryObserver { | 23                                     public ImageTransportFactoryObserver { | 
| 27  public: | 24  public: | 
| 28   explicit OwnedMailbox(display_compositor::GLHelper* gl_helper); | 25   explicit OwnedMailbox(GLHelper* gl_helper); | 
| 29 | 26 | 
| 30   const gpu::MailboxHolder& holder() const { return mailbox_holder_; } | 27   const gpu::MailboxHolder& holder() const { return mailbox_holder_; } | 
| 31   const gpu::Mailbox& mailbox() const { return mailbox_holder_.mailbox; } | 28   const gpu::Mailbox& mailbox() const { return mailbox_holder_.mailbox; } | 
| 32   const gpu::SyncToken& sync_token() const { | 29   const gpu::SyncToken& sync_token() const { | 
| 33     return mailbox_holder_.sync_token; | 30     return mailbox_holder_.sync_token; | 
| 34   } | 31   } | 
| 35   uint32_t texture_id() const { return texture_id_; } | 32   uint32_t texture_id() const { return texture_id_; } | 
| 36   uint32_t target() const { return mailbox_holder_.texture_target; } | 33   uint32_t target() const { return mailbox_holder_.texture_target; } | 
| 37   void UpdateSyncToken(const gpu::SyncToken& sync_token); | 34   void UpdateSyncToken(const gpu::SyncToken& sync_token); | 
| 38   void Destroy(); | 35   void Destroy(); | 
| 39 | 36 | 
| 40  protected: | 37  protected: | 
| 41   ~OwnedMailbox() override; | 38   ~OwnedMailbox() override; | 
| 42 | 39 | 
| 43   // ImageTransportFactoryObserver implementation. | 40   // ImageTransportFactoryObserver implementation. | 
| 44   void OnLostResources() override; | 41   void OnLostResources() override; | 
| 45 | 42 | 
| 46  private: | 43  private: | 
| 47   friend class base::RefCounted<OwnedMailbox>; | 44   friend class base::RefCounted<OwnedMailbox>; | 
| 48 | 45 | 
| 49   uint32_t texture_id_; | 46   uint32_t texture_id_; | 
| 50   gpu::MailboxHolder mailbox_holder_; | 47   gpu::MailboxHolder mailbox_holder_; | 
| 51   display_compositor::GLHelper* gl_helper_; | 48   GLHelper* gl_helper_; | 
| 52 }; | 49 }; | 
| 53 | 50 | 
| 54 }  // namespace content | 51 }  // namespace content | 
| 55 | 52 | 
| 56 #endif  // CONTENT_BROWSER_COMPOSITOR_OWNED_MAILBOX_H_ | 53 #endif  // CONTENT_BROWSER_COMPOSITOR_OWNED_MAILBOX_H_ | 
| OLD | NEW | 
|---|