Index: ui/ozone/platform/dri/dri_surface.h |
diff --git a/ui/ozone/platform/dri/dri_surface.h b/ui/ozone/platform/dri/dri_surface.h |
index 49f87b481c1345ce7fe21b1fe7753ab74c4a53c7..e46a531b793177a3583d1bd94663386dfdf3be90 100644 |
--- a/ui/ozone/platform/dri/dri_surface.h |
+++ b/ui/ozone/platform/dri/dri_surface.h |
@@ -5,53 +5,50 @@ |
#ifndef UI_OZONE_PLATFORM_DRI_DRI_SURFACE_H_ |
#define UI_OZONE_PLATFORM_DRI_DRI_SURFACE_H_ |
-#include "base/compiler_specific.h" |
-#include "base/memory/ref_counted.h" |
+#include "base/memory/scoped_ptr.h" |
+#include "base/memory/weak_ptr.h" |
+#include "ui/gfx/geometry/rect.h" |
#include "ui/gfx/geometry/size.h" |
#include "ui/gfx/skia_util.h" |
-#include "ui/ozone/platform/dri/scanout_surface.h" |
+#include "ui/ozone/public/surface_ozone_canvas.h" |
class SkCanvas; |
+class SkSurface; |
namespace ui { |
class DriBuffer; |
class DriWrapper; |
+class HardwareDisplayController; |
-// An implementation of ScanoutSurface which uses dumb buffers (used for |
-// software rendering). |
-class DriSurface : public ScanoutSurface { |
+class DriSurface : public SurfaceOzoneCanvas { |
public: |
- DriSurface(DriWrapper* dri, const gfx::Size& size); |
+ DriSurface(DriWrapper* dri, |
+ const base::WeakPtr<HardwareDisplayController>& controller); |
virtual ~DriSurface(); |
- // Get a Skia canvas for a backbuffer. |
- SkCanvas* GetDrawableForWidget(); |
- scoped_refptr<DriBuffer> backbuffer() const { |
- return bitmaps_[front_buffer_ ^ 1]; |
- } |
- |
- // ScanoutSurface: |
- virtual bool Initialize() OVERRIDE; |
- virtual uint32_t GetFramebufferId() const OVERRIDE; |
- virtual uint32_t GetHandle() const OVERRIDE; |
- virtual void PreSwapBuffers() OVERRIDE; |
- virtual void SwapBuffers() OVERRIDE; |
- virtual gfx::Size Size() const OVERRIDE; |
+ // SurfaceOzoneCanvas: |
+ virtual skia::RefPtr<SkCanvas> GetCanvas() OVERRIDE; |
+ virtual void ResizeCanvas(const gfx::Size& viewport_size) OVERRIDE; |
+ virtual void PresentCanvas(const gfx::Rect& damage) OVERRIDE; |
+ virtual scoped_ptr<gfx::VSyncProvider> CreateVSyncProvider() OVERRIDE; |
private: |
+ void UpdateNativeSurface(const gfx::Rect& damage); |
+ |
// Stores the connection to the graphics card. Pointer not owned by this |
// class. |
DriWrapper* dri_; |
// The actual buffers used for painting. |
- scoped_refptr<DriBuffer> bitmaps_[2]; |
+ scoped_refptr<DriBuffer> buffers_[2]; |
// Keeps track of which bitmap is |buffers_| is the frontbuffer. |
int front_buffer_; |
- // Surface size. |
- gfx::Size size_; |
+ skia::RefPtr<SkSurface> surface_; |
+ gfx::Rect last_damage_; |
+ base::WeakPtr<HardwareDisplayController> controller_; |
DISALLOW_COPY_AND_ASSIGN(DriSurface); |
}; |