| 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);
|
| };
|
|
|