Chromium Code Reviews| Index: ui/gfx/gl/gl_context_cgl.cc |
| =================================================================== |
| --- ui/gfx/gl/gl_context_cgl.cc (revision 113194) |
| +++ ui/gfx/gl/gl_context_cgl.cc (working copy) |
| @@ -4,10 +4,12 @@ |
| #include "ui/gfx/gl/gl_context_cgl.h" |
| +#include <OpenGL/CGLRenderers.h> |
| #include <vector> |
| #include "base/logging.h" |
| #include "ui/gfx/gl/gl_bindings.h" |
| +#include "ui/gfx/gl/gl_implementation.h" |
| #include "ui/gfx/gl/gl_surface_cgl.h" |
| namespace gfx { |
| @@ -42,6 +44,10 @@ |
| if (using_offline_renderer) { |
| attribs.push_back(kCGLPFAAllowOfflineRenderers); |
| } |
| + if (GetGLImplementation() == kGLImplementationAppleGL) { |
| + attribs.push_back(kCGLPFARendererID); |
| + attribs.push_back((CGLPixelFormatAttribute) kCGLRendererGenericFloatID); |
|
Ken Russell (switch to Gerrit)
2011/12/06 19:23:47
What are the interactions with (a) the dual-GPU co
Stephen White
2011/12/06 19:49:04
Since this is strictly a software renderer, it sho
Ken Russell (switch to Gerrit)
2011/12/06 22:49:45
Sorry, there isn't currently. I don't know how to
|
| + } |
| attribs.push_back((CGLPixelFormatAttribute) 0); |
| CGLPixelFormatObj format; |
| @@ -86,16 +92,6 @@ |
| if (IsCurrent(surface)) |
| return true; |
| - if (CGLSetPBuffer(static_cast<CGLContextObj>(context_), |
| - static_cast<CGLPBufferObj>(surface->GetHandle()), |
| - 0, |
| - 0, |
| - 0) != kCGLNoError) { |
| - LOG(ERROR) << "Error attaching pbuffer to context."; |
| - Destroy(); |
| - return false; |
| - } |
| - |
| if (CGLSetCurrentContext( |
| static_cast<CGLContextObj>(context_)) != kCGLNoError) { |
| LOG(ERROR) << "Unable to make gl context current."; |
| @@ -122,7 +118,6 @@ |
| SetCurrent(NULL, NULL); |
| CGLSetCurrentContext(NULL); |
| - CGLSetPBuffer(static_cast<CGLContextObj>(context_), NULL, 0, 0, 0); |
| } |
| bool GLContextCGL::IsCurrent(GLSurface* surface) { |
| @@ -136,20 +131,6 @@ |
| if (!native_context_is_current) |
| return false; |
| - if (surface) { |
| - CGLPBufferObj current_surface = NULL; |
| - GLenum face; |
| - GLint level; |
| - GLint screen; |
| - CGLGetPBuffer(static_cast<CGLContextObj>(context_), |
| - ¤t_surface, |
| - &face, |
| - &level, |
| - &screen); |
| - if (current_surface != surface->GetHandle()) |
| - return false; |
| - } |
| - |
| return true; |
| } |