Index: content/browser/renderer_host/accelerated_surface_container_linux.h |
diff --git a/content/browser/renderer_host/accelerated_surface_container_linux.h b/content/browser/renderer_host/accelerated_surface_container_linux.h |
index 3083fe36ebb1b6dd5acca7cdd8f6e991d3281937..129644a8dd2cb37e43f30841f0b892a43bbf92fa 100644 |
--- a/content/browser/renderer_host/accelerated_surface_container_linux.h |
+++ b/content/browser/renderer_host/accelerated_surface_container_linux.h |
@@ -10,30 +10,32 @@ |
#include "ui/gfx/compositor/compositor.h" |
#include "ui/gfx/surface/transport_dib.h" |
+class ImageTransportClient; |
+ |
// Helper class for storing image data from the GPU process renderered |
// on behalf of the RWHVV. It assumes that GL context that will display |
// the image data is current when an instance of this object is created |
// or destroyed. |
-class AcceleratedSurfaceContainerLinux { |
+class AcceleratedSurfaceContainerLinux : public ui::Texture { |
public: |
- virtual ~AcceleratedSurfaceContainerLinux() { } |
- virtual void AddRef() = 0; |
- virtual void Release() = 0; |
+ explicit AcceleratedSurfaceContainerLinux(const gfx::Size& size); |
+ virtual ~AcceleratedSurfaceContainerLinux(); |
// Initialize the surface container, and returns an ID for it. |
// The |surface_handle| given to this function may be modified, and the |
// modified value should be used to identify the object. |
- virtual bool Initialize(uint64* surface_handle) = 0; |
+ bool Initialize(uint64* surface_handle); |
// Some implementations of this class use shared memory, this is the handle |
// to the shared buffer, which is part of the surface container. |
- virtual TransportDIB::Handle Handle() const = 0; |
- |
- virtual ui::Texture* GetTexture() = 0; |
+ TransportDIB::Handle Handle() const; |
- virtual const gfx::Size& GetSize() = 0; |
+ void Update(); |
- static AcceleratedSurfaceContainerLinux* Create(const gfx::Size& size); |
+ private: |
+ scoped_ptr<ImageTransportClient> image_transport_client_; |
+ bool acquired_; |
+ DISALLOW_COPY_AND_ASSIGN(AcceleratedSurfaceContainerLinux); |
}; |
#endif // CONTENT_BROWSER_RENDERER_HOST_ACCELERATED_SURFACE_CONTAINER_LINUX_H_ |