Index: ui/ozone/platform/dri/gbm_buffer.h |
diff --git a/ui/ozone/platform/dri/gbm_buffer.h b/ui/ozone/platform/dri/gbm_buffer.h |
index a13fa356f8e8380fe37a165fb3d926943cdeff52..2dd5740fbd9c5a5888da5ae914457b079e6a10fd 100644 |
--- a/ui/ozone/platform/dri/gbm_buffer.h |
+++ b/ui/ozone/platform/dri/gbm_buffer.h |
@@ -8,6 +8,7 @@ |
#include "base/macros.h" |
#include "base/memory/scoped_ptr.h" |
#include "ui/gfx/geometry/size.h" |
+#include "ui/ozone/platform/dri/scanout_surface.h" |
#include "ui/ozone/public/native_pixmap.h" |
#include "ui/ozone/public/surface_factory_ozone.h" |
@@ -18,18 +19,22 @@ namespace ui { |
class DriWrapper; |
-class GbmBuffer : public NativePixmap { |
+class GbmBuffer : public ScanoutSurface { |
public: |
GbmBuffer(gbm_device* device, DriWrapper* dri, const gfx::Size& size); |
+ virtual ~GbmBuffer(); |
bool InitializeBuffer(SurfaceFactoryOzone::BufferFormat format, bool scanout); |
- // NativePixmap: |
- virtual void* GetEGLClientBuffer() OVERRIDE; |
- virtual int GetDmaBufFd() OVERRIDE; |
+ // ScanoutSurface: |
+ virtual bool Initialize() OVERRIDE; |
+ virtual uint32_t GetFramebufferId() const OVERRIDE; |
+ virtual uint32_t GetHandle() const OVERRIDE; |
+ virtual gfx::Size Size() const OVERRIDE; |
+ virtual void PreSwapBuffers() OVERRIDE; |
+ virtual void SwapBuffers() OVERRIDE; |
- protected: |
- virtual ~GbmBuffer(); |
+ gbm_bo* bo() { return bo_; } |
private: |
gbm_device* gbm_device_; |
@@ -43,6 +48,21 @@ class GbmBuffer : public NativePixmap { |
gfx::Size size_; |
}; |
+class GbmPixmap : public NativePixmap { |
+ public: |
+ GbmPixmap(gbm_device* device, DriWrapper* dri, const gfx::Size& size); |
+ virtual ~GbmPixmap(); |
+ |
+ // NativePixmap: |
+ virtual void* GetEGLClientBuffer() OVERRIDE; |
+ virtual int GetDmaBufFd() OVERRIDE; |
+ |
+ GbmBuffer* buffer() { return &buffer_; } |
+ |
+ private: |
+ GbmBuffer buffer_; |
+}; |
+ |
} // namespace ui |
#endif // UI_OZONE_PLATFORM_DRI_GBM_BUFFER_H_ |