summaryrefslogtreecommitdiffstats
path: root/ui/gfx/surface
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gfx/surface')
-rw-r--r--ui/gfx/surface/accelerated_surface_mac.cc12
-rw-r--r--ui/gfx/surface/accelerated_surface_mac.h14
2 files changed, 18 insertions, 8 deletions
diff --git a/ui/gfx/surface/accelerated_surface_mac.cc b/ui/gfx/surface/accelerated_surface_mac.cc
index d6b63cd..759ae81 100644
--- a/ui/gfx/surface/accelerated_surface_mac.cc
+++ b/ui/gfx/surface/accelerated_surface_mac.cc
@@ -24,8 +24,10 @@ AcceleratedSurface::AcceleratedSurface()
AcceleratedSurface::~AcceleratedSurface() {}
-bool AcceleratedSurface::Initialize(gfx::GLContext* share_context,
- bool allocate_fbo) {
+bool AcceleratedSurface::Initialize(
+ gfx::GLContext* share_context,
+ bool allocate_fbo,
+ gfx::GpuPreference gpu_preference) {
allocate_fbo_ = allocate_fbo;
// Ensure GL is initialized before trying to create an offscreen GL context.
@@ -47,8 +49,10 @@ bool AcceleratedSurface::Initialize(gfx::GLContext* share_context,
gfx::GLShareGroup* share_group =
share_context ? share_context->share_group() : NULL;
- gl_context_ = gfx::GLContext::CreateGLContext(share_group,
- gl_surface_.get());
+ gl_context_ = gfx::GLContext::CreateGLContext(
+ share_group,
+ gl_surface_.get(),
+ gpu_preference);
if (!gl_context_.get()) {
Destroy();
return false;
diff --git a/ui/gfx/surface/accelerated_surface_mac.h b/ui/gfx/surface/accelerated_surface_mac.h
index 5163a57..0e29ae5 100644
--- a/ui/gfx/surface/accelerated_surface_mac.h
+++ b/ui/gfx/surface/accelerated_surface_mac.h
@@ -11,10 +11,11 @@
#include "base/callback_old.h"
#include "base/mac/scoped_cftyperef.h"
#include "base/memory/scoped_ptr.h"
-#include "ui/gfx/rect.h"
-#include "ui/gfx/size.h"
#include "ui/gfx/gl/gl_context.h"
#include "ui/gfx/gl/gl_surface.h"
+#include "ui/gfx/gl/gpu_preference.h"
+#include "ui/gfx/rect.h"
+#include "ui/gfx/size.h"
#include "ui/gfx/surface/surface_export.h"
#include "ui/gfx/surface/transport_dib.h"
@@ -46,9 +47,14 @@ class SURFACE_EXPORT AcceleratedSurface {
// an FBO internally does NOT work properly with client code which uses
// OpenGL (i.e., via GLES2 command buffers), because the GLES2
// implementation does not know to bind the accelerated surface's
- // internal FBO when the default FBO is bound. Returns false upon
+ // internal FBO when the default FBO is bound. |gpu_preference| indicates
+ // the GPU preference for the internally allocated GLContext. If
+ // |share_context| is non-NULL, then on platforms supporting dual GPUs,
+ // its GPU preference must match the passed one. Returns false upon
// failure.
- bool Initialize(gfx::GLContext* share_context, bool allocate_fbo);
+ bool Initialize(gfx::GLContext* share_context,
+ bool allocate_fbo,
+ gfx::GpuPreference gpu_preference);
// Tear down. Must be called before destructor to prevent leaks.
void Destroy();