Index: ui/gl/gl_surface_ozone.cc |
diff --git a/ui/gl/gl_surface_ozone.cc b/ui/gl/gl_surface_ozone.cc |
index 186b9c9e266f66438efa6ff49a9861cc68e10894..11d2ce60a6ade67b29f808c4320c13eb237fe884 100644 |
--- a/ui/gl/gl_surface_ozone.cc |
+++ b/ui/gl/gl_surface_ozone.cc |
@@ -2,20 +2,20 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#include "ui/gl/gl_surface.h" |
+#include "ui/gl/gl_surface_ozone.h" |
#include <stddef.h> |
+#include <vector> |
+ |
#include "base/bind.h" |
#include "base/callback.h" |
#include "base/location.h" |
#include "base/logging.h" |
#include "base/macros.h" |
-#include "base/memory/ref_counted.h" |
#include "base/memory/scoped_vector.h" |
#include "base/memory/weak_ptr.h" |
#include "base/threading/worker_pool.h" |
-#include "ui/gfx/native_widget_types.h" |
#include "ui/gl/egl_util.h" |
#include "ui/gl/gl_context.h" |
#include "ui/gl/gl_image.h" |
@@ -652,6 +652,8 @@ bool GLSurfaceOzoneSurfacelessSurfaceImpl::CreatePixmaps() { |
return true; |
} |
+} // namespace |
+ |
scoped_refptr<GLSurface> CreateViewGLSurfaceOzone( |
gfx::AcceleratedWidget window) { |
std::unique_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
@@ -660,14 +662,11 @@ scoped_refptr<GLSurface> CreateViewGLSurfaceOzone( |
->CreateEGLSurfaceForWidget(window); |
if (!surface_ozone) |
return nullptr; |
- scoped_refptr<GLSurface> surface = |
- new GLSurfaceOzoneEGL(std::move(surface_ozone), window); |
- if (!surface->Initialize()) |
- return nullptr; |
- return surface; |
+ return InitializeGLSurface( |
+ new GLSurfaceOzoneEGL(std::move(surface_ozone), window)); |
} |
-scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl( |
+scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfaceless( |
gfx::AcceleratedWidget window) { |
std::unique_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
ui::OzonePlatform::GetInstance() |
@@ -675,93 +674,20 @@ scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl( |
->CreateSurfacelessEGLSurfaceForWidget(window); |
if (!surface_ozone) |
return nullptr; |
- scoped_refptr<GLSurface> surface = new GLSurfaceOzoneSurfacelessSurfaceImpl( |
- std::move(surface_ozone), window); |
- if (!surface->Initialize()) |
- return nullptr; |
- return surface; |
-} |
- |
-} // namespace |
- |
-// static |
-scoped_refptr<GLSurface> GLSurface::CreateSurfacelessViewGLSurface( |
- gfx::AcceleratedWidget window) { |
- if (GetGLImplementation() == kGLImplementationEGLGLES2 && |
- window != gfx::kNullAcceleratedWidget && |
- GLSurfaceEGL::IsEGLSurfacelessContextSupported()) { |
- std::unique_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
- ui::OzonePlatform::GetInstance() |
- ->GetSurfaceFactoryOzone() |
- ->CreateSurfacelessEGLSurfaceForWidget(window); |
- if (!surface_ozone) |
- return nullptr; |
- scoped_refptr<GLSurface> surface; |
- surface = new GLSurfaceOzoneSurfaceless(std::move(surface_ozone), window); |
- if (surface->Initialize()) |
- return surface; |
- } |
- |
- return nullptr; |
+ return InitializeGLSurface( |
+ new GLSurfaceOzoneSurfaceless(std::move(surface_ozone), window)); |
} |
-// static |
-scoped_refptr<GLSurface> GLSurface::CreateViewGLSurface( |
+scoped_refptr<GLSurface> CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl( |
gfx::AcceleratedWidget window) { |
- if (GetGLImplementation() == kGLImplementationOSMesaGL) { |
- scoped_refptr<GLSurface> surface(new GLSurfaceOSMesaHeadless()); |
- if (!surface->Initialize()) |
- return nullptr; |
- return surface; |
- } |
- if ((window != gfx::kNullAcceleratedWidget) && |
- (GetGLImplementation() == kGLImplementationEGLGLES2)) { |
- scoped_refptr<GLSurface> surface; |
- if (GLSurfaceEGL::IsEGLSurfacelessContextSupported()) |
- surface = CreateViewGLSurfaceOzoneSurfacelessSurfaceImpl(window); |
- if (!surface) |
- surface = CreateViewGLSurfaceOzone(window); |
- return surface; |
- } else { |
- DCHECK_EQ(GetGLImplementation(), kGLImplementationMockGL); |
- scoped_refptr<GLSurface> surface = new GLSurfaceStub(); |
- if (surface->Initialize()) |
- return surface; |
- } |
- return nullptr; |
-} |
- |
-// static |
-scoped_refptr<GLSurface> GLSurface::CreateOffscreenGLSurface( |
- const gfx::Size& size) { |
- switch (GetGLImplementation()) { |
- case kGLImplementationOSMesaGL: { |
- scoped_refptr<GLSurface> surface( |
- new GLSurfaceOSMesa(SURFACE_OSMESA_BGRA, size)); |
- if (!surface->Initialize()) |
- return nullptr; |
- |
- return surface; |
- } |
- case kGLImplementationEGLGLES2: { |
- scoped_refptr<GLSurface> surface; |
- if (GLSurfaceEGL::IsEGLSurfacelessContextSupported() && |
- (size.width() == 0 && size.height() == 0)) { |
- surface = new SurfacelessEGL(size); |
- } else { |
- surface = new PbufferGLSurfaceEGL(size); |
- } |
- |
- if (!surface->Initialize()) |
- return nullptr; |
- return surface; |
- } |
- case kGLImplementationMockGL: |
- return new GLSurfaceStub; |
- default: |
- NOTREACHED(); |
- return nullptr; |
- } |
+ std::unique_ptr<ui::SurfaceOzoneEGL> surface_ozone = |
+ ui::OzonePlatform::GetInstance() |
+ ->GetSurfaceFactoryOzone() |
+ ->CreateSurfacelessEGLSurfaceForWidget(window); |
+ if (!surface_ozone) |
+ return nullptr; |
+ return InitializeGLSurface(new GLSurfaceOzoneSurfacelessSurfaceImpl( |
+ std::move(surface_ozone), window)); |
} |
EGLNativeDisplayType GetPlatformDefaultEGLNativeDisplay() { |