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

Unified Diff: ui/gfx/gl/gl_surface_wgl.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 side-by-side diff with in-line comments
Download patch
Index: ui/gfx/gl/gl_surface_wgl.cc
===================================================================
--- ui/gfx/gl/gl_surface_wgl.cc (revision 86168)
+++ ui/gfx/gl/gl_surface_wgl.cc (working copy)
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ui/gfx/gl/gl_context_wgl.h"
+#include "ui/gfx/gl/gl_surface_wgl.h"
#include "base/logging.h"
#include "ui/gfx/gl/gl_bindings.h"
@@ -12,6 +12,7 @@
static ATOM g_class_registration;
static HWND g_window;
+HDC g_display_dc;
static int g_pixel_format = 0;
const PIXELFORMATDESCRIPTOR kPixelFormatDescriptor = {
@@ -111,43 +112,39 @@
return false;
}
- HDC temporary_dc = GetDC(g_window);
+ g_display_dc = GetDC(g_window);
- g_pixel_format = ChoosePixelFormat(temporary_dc,
+ g_pixel_format = ChoosePixelFormat(g_display_dc,
&kPixelFormatDescriptor);
if (g_pixel_format == 0) {
LOG(ERROR) << "Unable to get the pixel format for GL context.";
- ReleaseDC(g_window, temporary_dc);
UnregisterClass(reinterpret_cast<wchar_t*>(g_class_registration),
module_handle);
return false;
}
- if (!SetPixelFormat(temporary_dc,
+ if (!SetPixelFormat(g_display_dc,
g_pixel_format,
&kPixelFormatDescriptor)) {
LOG(ERROR) << "Unable to set the pixel format for temporary GL context.";
- ReleaseDC(g_window, temporary_dc);
UnregisterClass(reinterpret_cast<wchar_t*>(g_class_registration),
module_handle);
return false;
}
// Create a temporary GL context to bind to extension entry points.
- HGLRC gl_context = wglCreateContext(temporary_dc);
+ HGLRC gl_context = wglCreateContext(g_display_dc);
if (!gl_context) {
LOG(ERROR) << "Failed to create temporary context.";
- ReleaseDC(g_window, temporary_dc);
UnregisterClass(reinterpret_cast<wchar_t*>(g_class_registration),
module_handle);
return false;
}
- if (!wglMakeCurrent(temporary_dc, gl_context)) {
+ if (!wglMakeCurrent(g_display_dc, gl_context)) {
LOG(ERROR) << "Failed to make temporary GL context current.";
wglDeleteContext(gl_context);
- ReleaseDC(g_window, temporary_dc);
UnregisterClass(reinterpret_cast<wchar_t*>(g_class_registration),
module_handle);
return false;
@@ -160,12 +157,15 @@
wglMakeCurrent(NULL, NULL);
wglDeleteContext(gl_context);
- ReleaseDC(g_window, temporary_dc);
initialized = true;
return true;
}
+HDC GLSurfaceWGL::GetDisplay() {
+ return g_display_dc;
+}
+
NativeViewGLSurfaceWGL::NativeViewGLSurfaceWGL(gfx::PluginWindowHandle window)
: window_(window),
child_window_(NULL),
@@ -287,22 +287,12 @@
return false;
}
- // Create a temporary device context for the display. The pbuffer will be
- // compatible with it.
- HDC temporary_dc = GetDC(g_window);
- if (!temporary_dc) {
- LOG(ERROR) << "Unable to get device context.";
- return false;
- }
-
const int kNoAttributes[] = { 0 };
- pbuffer_ = wglCreatePbufferARB(temporary_dc,
+ pbuffer_ = wglCreatePbufferARB(g_display_dc,
g_pixel_format,
size_.width(), size_.height(),
kNoAttributes);
- ReleaseDC(g_window, temporary_dc);
-
if (!pbuffer_) {
LOG(ERROR) << "Unable to create pbuffer.";
Destroy();

Powered by Google App Engine
This is Rietveld 408576698