Index: ui/ozone/platform/cast/surface_factory_cast.cc |
diff --git a/ui/ozone/platform/cast/surface_factory_cast.cc b/ui/ozone/platform/cast/surface_factory_cast.cc |
index 9cd1fbb53a8aaf359fb20357b073565c5a938c22..e6c06c1419a05a69941dd0c2fdb594e17499b72a 100644 |
--- a/ui/ozone/platform/cast/surface_factory_cast.cc |
+++ b/ui/ozone/platform/cast/surface_factory_cast.cc |
@@ -20,7 +20,7 @@ |
#include "third_party/skia/include/core/SkSurface.h" |
#include "ui/gfx/geometry/quad_f.h" |
#include "ui/gfx/vsync_provider.h" |
-#include "ui/ozone/platform/cast/surface_ozone_egl_cast.h" |
+#include "ui/ozone/platform/cast/gl_surface_cast.h" |
#include "ui/ozone/public/native_pixmap.h" |
#include "ui/ozone/public/surface_ozone_canvas.h" |
@@ -167,6 +167,36 @@ void SurfaceFactoryCast::OnOverlayScheduled(const gfx::Rect& display_bounds) { |
overlay_bounds_ = display_bounds; |
} |
+bool SurfaceFactoryCast::UseNewSurfaceAPI() { |
+ return true; |
+} |
+ |
+scoped_refptr<gl::GLSurface> SurfaceFactoryCast::CreateViewGLSurface( |
+ gl::GLImplementation implementation, |
+ gfx::AcceleratedWidget widget) { |
+ if (implementation != gl::kGLImplementationEGLGLES2) { |
+ NOTREACHED(); |
+ return nullptr; |
+ } |
+ |
+ // Verify requested widget dimensions match our current display size. |
+ DCHECK_EQ(widget >> 16, display_size_.width()); |
+ DCHECK_EQ(widget & 0xffff, display_size_.height()); |
+ |
+ return gl::InitializeGLSurface(new GLSurfaceCast(widget, this)); |
+} |
+ |
+scoped_refptr<gl::GLSurface> SurfaceFactoryCast::CreateOffscreenGLSurface( |
+ gl::GLImplementation implementation, |
+ const gfx::Size& size) { |
+ if (implementation != gl::kGLImplementationEGLGLES2) { |
+ NOTREACHED(); |
+ return nullptr; |
+ } |
+ |
+ return gl::InitializeGLSurface(new gl::PbufferGLSurfaceEGL(size)); |
+} |
+ |
std::unique_ptr<SurfaceOzoneCanvas> SurfaceFactoryCast::CreateCanvasForWidget( |
gfx::AcceleratedWidget widget) { |
// Software canvas support only in headless mode |
@@ -229,14 +259,6 @@ void SurfaceFactoryCast::DestroyDisplayTypeAndWindow() { |
} |
} |
-std::unique_ptr<SurfaceOzoneEGL> SurfaceFactoryCast::CreateEGLSurfaceForWidget( |
- gfx::AcceleratedWidget widget) { |
- // Verify requested widget dimensions match our current display size. |
- DCHECK_EQ(widget >> 16, display_size_.width()); |
- DCHECK_EQ(widget & 0xffff, display_size_.height()); |
- return base::WrapUnique<SurfaceOzoneEGL>(new SurfaceOzoneEglCast(this)); |
-} |
- |
void SurfaceFactoryCast::ChildDestroyed() { |
if (egl_platform_->MultipleSurfaceUnsupported()) |
DestroyWindow(); |
@@ -249,7 +271,7 @@ scoped_refptr<NativePixmap> SurfaceFactoryCast::CreateNativePixmap( |
gfx::BufferUsage usage) { |
class CastPixmap : public NativePixmap { |
public: |
- CastPixmap(SurfaceFactoryCast* parent) : parent_(parent) {} |
+ explicit CastPixmap(SurfaceFactoryCast* parent) : parent_(parent) {} |
void* GetEGLClientBuffer() const override { |
// TODO(halliwell): try to implement this through CastEglPlatform. |