Chromium Code Reviews| Index: ui/ozone/public/surface_factory_ozone.h |
| diff --git a/ui/ozone/public/surface_factory_ozone.h b/ui/ozone/public/surface_factory_ozone.h |
| index 4702d69a59d4e0d0e886b03de92cea7dea007ca6..ccca8cf281af7c5cb861f36c9332426ef797dfda 100644 |
| --- a/ui/ozone/public/surface_factory_ozone.h |
| +++ b/ui/ozone/public/surface_factory_ozone.h |
| @@ -6,6 +6,7 @@ |
| #define UI_OZONE_PUBLIC_SURFACE_FACTORY_OZONE_H_ |
| #include "base/callback.h" |
| +#include "base/memory/ref_counted.h" |
| #include "base/memory/scoped_ptr.h" |
| #include "base/native_library.h" |
| #include "ui/gfx/geometry/point.h" |
| @@ -20,11 +21,26 @@ class SkCanvas; |
| namespace ui { |
| -typedef intptr_t NativeBufferOzone; |
| class OverlayCandidatesOzone; |
| class SurfaceOzoneCanvas; |
| class SurfaceOzoneEGL; |
| +// TODO: find a better spot for this to live. |
| +class NativePixmap : public base::RefCounted<NativePixmap> { |
|
dnicoara
2014/07/03 18:30:17
Just move it in it's own file.
And add some comme
|
| + public: |
| + NativePixmap() {} |
| + |
| + virtual void* /* EGLClientBuffer */ native_handle() = 0; |
|
spang
2014/07/03 18:29:09
If this is "get me the handle to pass to EGL" then
dnicoara
2014/07/03 18:30:17
I believe these should follow the normal naming co
achaulk
2014/07/03 19:49:43
Done.
|
| + virtual int dma_buf_fd() = 0; |
| + |
| + protected: |
| + virtual ~NativePixmap() {} |
| + |
| + friend class base::RefCounted<NativePixmap>; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(NativePixmap); |
| +}; |
| + |
| // The Ozone interface allows external implementations to hook into Chromium to |
| // provide a system specific implementation. The Ozone interface supports two |
| // drawing modes: 1) accelerated drawing through EGL and 2) software drawing |
| @@ -134,25 +150,14 @@ class OZONE_BASE_EXPORT SurfaceFactoryOzone { |
| virtual OverlayCandidatesOzone* GetOverlayCandidates( |
| gfx::AcceleratedWidget w); |
| - // Sets the overlay plane to switch to at the next page flip. |
| - // |plane_z_order| specifies the stacking order of the plane relative to the |
| - // main framebuffer located at index 0. |
| - // |plane_transform| specifies how the buffer is to be transformed during. |
| - // composition. |
| - // |buffer| to be presented by the overlay. |
| - // |display_bounds| specify where it is supposed to be on the screen. |
| - // |crop_rect| specifies the region within the buffer to be placed inside |
| - // |display_bounds|. |
| - virtual void ScheduleOverlayPlane(gfx::AcceleratedWidget w, |
| - int plane_z_order, |
| - gfx::OverlayTransform plane_transform, |
| - ui::NativeBufferOzone buffer, |
| - const gfx::Rect& display_bounds, |
| - gfx::RectF crop_rect); |
| - |
| // Cleate a single native buffer to be used for overlay planes. |
| - virtual ui::NativeBufferOzone CreateNativeBuffer(gfx::Size size, |
| - BufferFormat format); |
| + virtual scoped_refptr<ui::NativePixmap> CreateNativeBuffer( |
| + gfx::Size size, BufferFormat format); |
|
spang
2014/07/03 18:29:09
seems rather inconsistent. CreateNativePixmap
achaulk
2014/07/03 19:49:44
Done.
|
| + |
| + // Returns true if overlays can be shown at z-index 0, replacing the main |
| + // surface. Combined with surfaceless extensions, it allows for an |
| + // overlay-only mode. |
| + virtual bool CanShowPrimaryPlaneAsOverlay(); |
|
spang
2014/07/03 18:29:09
thanks
|
| private: |
| static SurfaceFactoryOzone* impl_; // not owned |