| 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 07b8bac0620c6af41a5cf825fabaf28226e11a3e..b455db33c38106d3e77e51fd996212e8c2359b16 100644
 | 
| --- a/ui/ozone/platform/dri/gbm_buffer.h
 | 
| +++ b/ui/ozone/platform/dri/gbm_buffer.h
 | 
| @@ -8,7 +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/platform/dri/gbm_buffer_base.h"
 | 
|  #include "ui/ozone/public/native_pixmap.h"
 | 
|  #include "ui/ozone/public/surface_factory_ozone.h"
 | 
|  
 | 
| @@ -19,49 +19,38 @@ namespace ui {
 | 
|  
 | 
|  class DriWrapper;
 | 
|  
 | 
| -class GbmBuffer : public ScanoutSurface {
 | 
| +class GbmBuffer : public GbmBufferBase {
 | 
|   public:
 | 
| -  GbmBuffer(gbm_device* device, DriWrapper* dri, const gfx::Size& size);
 | 
| -  virtual ~GbmBuffer();
 | 
| -
 | 
| -  bool InitializeBuffer(SurfaceFactoryOzone::BufferFormat format, bool scanout);
 | 
| -
 | 
| -  // 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;
 | 
| -
 | 
| -  gbm_bo* bo() { return bo_; }
 | 
| +  static scoped_refptr<GbmBuffer> CreateBuffer(
 | 
| +      DriWrapper* dri,
 | 
| +      gbm_device* device,
 | 
| +      SurfaceFactoryOzone::BufferFormat format,
 | 
| +      const gfx::Size& size,
 | 
| +      bool scanout);
 | 
|  
 | 
|   private:
 | 
| -  gbm_device* gbm_device_;
 | 
| -  gbm_bo* bo_;
 | 
| -
 | 
| -  uint32_t handle_;
 | 
| -  uint32_t framebuffer_;
 | 
| -
 | 
| -  DriWrapper* dri_;
 | 
| +  GbmBuffer(DriWrapper* dri, gbm_bo* bo, bool scanout);
 | 
| +  virtual ~GbmBuffer();
 | 
|  
 | 
| -  gfx::Size size_;
 | 
| +  DISALLOW_COPY_AND_ASSIGN(GbmBuffer);
 | 
|  };
 | 
|  
 | 
|  class GbmPixmap : public NativePixmap {
 | 
|   public:
 | 
| -  GbmPixmap(gbm_device* device, DriWrapper* dri, const gfx::Size& size);
 | 
| +  GbmPixmap(scoped_refptr<GbmBuffer> buffer);
 | 
|  
 | 
|    // NativePixmap:
 | 
|    virtual void* GetEGLClientBuffer() OVERRIDE;
 | 
|    virtual int GetDmaBufFd() OVERRIDE;
 | 
|  
 | 
| -  GbmBuffer* buffer() { return &buffer_; }
 | 
| +  scoped_refptr<GbmBuffer> buffer() { return buffer_; }
 | 
|  
 | 
|   private:
 | 
|    virtual ~GbmPixmap();
 | 
|  
 | 
| -  GbmBuffer buffer_;
 | 
| +  scoped_refptr<GbmBuffer> buffer_;
 | 
| +
 | 
| +  DISALLOW_COPY_AND_ASSIGN(GbmPixmap);
 | 
|  };
 | 
|  
 | 
|  }  // namespace ui
 | 
| 
 |