Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(229)

Side by Side Diff: ui/gfx/gl/gl_surface_win.cc

Issue 7021014: GLContext no longer holds a pointer to a GLSurface. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/gfx/gl/gl_surface.h" 5 #include "ui/gfx/gl/gl_surface.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "third_party/mesa/MesaLib/include/GL/osmesa.h" 9 #include "third_party/mesa/MesaLib/include/GL/osmesa.h"
10 #include "ui/gfx/gl/gl_bindings.h" 10 #include "ui/gfx/gl/gl_bindings.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 } 75 }
76 break; 76 break;
77 } 77 }
78 78
79 initialized = true; 79 initialized = true;
80 return true; 80 return true;
81 } 81 }
82 82
83 NativeViewGLSurfaceOSMesa::NativeViewGLSurfaceOSMesa( 83 NativeViewGLSurfaceOSMesa::NativeViewGLSurfaceOSMesa(
84 gfx::PluginWindowHandle window) 84 gfx::PluginWindowHandle window)
85 : GLSurfaceOSMesa(gfx::Size()), 85 : GLSurfaceOSMesa(OSMESA_RGBA, gfx::Size()),
86 window_(window), 86 window_(window),
87 device_context_(NULL) { 87 device_context_(NULL) {
88 DCHECK(window); 88 DCHECK(window);
89 } 89 }
90 90
91 NativeViewGLSurfaceOSMesa::~NativeViewGLSurfaceOSMesa() { 91 NativeViewGLSurfaceOSMesa::~NativeViewGLSurfaceOSMesa() {
92 Destroy(); 92 Destroy();
93 } 93 }
94 94
95 bool NativeViewGLSurfaceOSMesa::Initialize() { 95 bool NativeViewGLSurfaceOSMesa::Initialize() {
96 if (!GLSurfaceOSMesa::Initialize()) 96 if (!GLSurfaceOSMesa::Initialize())
97 return false; 97 return false;
98 98
99 device_context_ = GetDC(window_); 99 device_context_ = GetDC(window_);
100 UpdateSize(); 100 UpdateSize();
101 return true; 101 return true;
102 } 102 }
103 103
104 void NativeViewGLSurfaceOSMesa::Destroy() { 104 void NativeViewGLSurfaceOSMesa::Destroy() {
105 if (window_ && device_context_) 105 if (window_ && device_context_)
106 ReleaseDC(window_, device_context_); 106 ReleaseDC(window_, device_context_);
107 107
108 window_ = NULL;
109 device_context_ = NULL; 108 device_context_ = NULL;
110 109
111 GLSurfaceOSMesa::Destroy(); 110 GLSurfaceOSMesa::Destroy();
112 } 111 }
113 112
114 bool NativeViewGLSurfaceOSMesa::IsOffscreen() { 113 bool NativeViewGLSurfaceOSMesa::IsOffscreen() {
115 return false; 114 return false;
116 } 115 }
117 116
118 bool NativeViewGLSurfaceOSMesa::SwapBuffers() { 117 bool NativeViewGLSurfaceOSMesa::SwapBuffers() {
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 return new GLSurfaceStub; 197 return new GLSurfaceStub;
199 default: 198 default:
200 NOTREACHED(); 199 NOTREACHED();
201 return NULL; 200 return NULL;
202 } 201 }
203 } 202 }
204 203
205 GLSurface* GLSurface::CreateOffscreenGLSurface(const gfx::Size& size) { 204 GLSurface* GLSurface::CreateOffscreenGLSurface(const gfx::Size& size) {
206 switch (GetGLImplementation()) { 205 switch (GetGLImplementation()) {
207 case kGLImplementationOSMesaGL: { 206 case kGLImplementationOSMesaGL: {
208 scoped_ptr<GLSurfaceOSMesa> surface(new GLSurfaceOSMesa(size)); 207 scoped_ptr<GLSurfaceOSMesa> surface(new GLSurfaceOSMesa(OSMESA_RGBA,
208 size));
209 if (!surface->Initialize()) 209 if (!surface->Initialize())
210 return NULL; 210 return NULL;
211 211
212 return surface.release(); 212 return surface.release();
213 } 213 }
214 case kGLImplementationEGLGLES2: { 214 case kGLImplementationEGLGLES2: {
215 scoped_ptr<PbufferGLSurfaceEGL> surface(new PbufferGLSurfaceEGL(size)); 215 scoped_ptr<PbufferGLSurfaceEGL> surface(new PbufferGLSurfaceEGL(size));
216 if (!surface->Initialize()) 216 if (!surface->Initialize())
217 return NULL; 217 return NULL;
218 218
219 return surface.release(); 219 return surface.release();
220 } 220 }
221 case kGLImplementationDesktopGL: { 221 case kGLImplementationDesktopGL: {
222 scoped_ptr<PbufferGLSurfaceWGL> surface(new PbufferGLSurfaceWGL(size)); 222 scoped_ptr<PbufferGLSurfaceWGL> surface(new PbufferGLSurfaceWGL(size));
223 if (!surface->Initialize()) 223 if (!surface->Initialize())
224 return NULL; 224 return NULL;
225 225
226 return surface.release(); 226 return surface.release();
227 } 227 }
228 case kGLImplementationMockGL: 228 case kGLImplementationMockGL:
229 return new GLSurfaceStub; 229 return new GLSurfaceStub;
230 default: 230 default:
231 NOTREACHED(); 231 NOTREACHED();
232 return NULL; 232 return NULL;
233 } 233 }
234 } 234 }
235 235
236 } // namespace gfx 236 } // namespace gfx
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698