Index: src/gpu/gl/win/SkNativeGLContext_win.cpp |
=================================================================== |
--- src/gpu/gl/win/SkNativeGLContext_win.cpp (revision 7977) |
+++ src/gpu/gl/win/SkNativeGLContext_win.cpp (working copy) |
@@ -7,6 +7,7 @@ |
*/ |
#include "gl/SkNativeGLContext.h" |
+#include "SkWGL.h" |
#define WIN32_LEAN_AND_MEAN |
#include <Windows.h> |
@@ -49,67 +50,14 @@ |
const GrGLInterface* SkNativeGLContext::createGLContext() { |
HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(NULL); |
- if (!gWC) { |
- WNDCLASS wc; |
- wc.cbClsExtra = 0; |
- wc.cbWndExtra = 0; |
- wc.hbrBackground = NULL; |
- wc.hCursor = LoadCursor(NULL, IDC_ARROW); |
- wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); |
- wc.hInstance = hInstance; |
- wc.lpfnWndProc = (WNDPROC) DefWindowProc; |
- wc.lpszClassName = TEXT("Griffin"); |
- wc.lpszMenuName = NULL; |
- wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC; |
- gWC = RegisterClass(&wc); |
- if (!gWC) { |
- SkDebugf("Could not register window class.\n"); |
- return NULL; |
- } |
- } |
- |
- if (!(fWindow = CreateWindow(TEXT("Griffin"), |
- TEXT("The Invisible Man"), |
- WS_OVERLAPPEDWINDOW, |
- 0, 0, 1, 1, |
- NULL, NULL, |
- hInstance, NULL))) { |
- SkDebugf("Could not create window.\n"); |
- return NULL; |
- } |
- |
if (!(fDeviceContext = GetDC(fWindow))) { |
SkDebugf("Could not get device context.\n"); |
this->destroyGLContext(); |
return NULL; |
} |
- PIXELFORMATDESCRIPTOR pfd; |
- ZeroMemory(&pfd, sizeof(pfd)); |
- pfd.nSize = sizeof(pfd); |
- pfd.nVersion = 1; |
- pfd.dwFlags = PFD_SUPPORT_OPENGL; |
- pfd.iPixelType = PFD_TYPE_RGBA; |
- pfd.cColorBits = 32; |
- pfd.cDepthBits = 0; |
- pfd.cStencilBits = 0; |
- pfd.iLayerType = PFD_MAIN_PLANE; |
- |
- int pixelFormat = 0; |
- if (!(pixelFormat = ChoosePixelFormat(fDeviceContext, &pfd))) { |
- SkDebugf("No matching pixel format descriptor.\n"); |
- this->destroyGLContext(); |
- return NULL; |
- } |
- |
- if (!SetPixelFormat(fDeviceContext, pixelFormat, &pfd)) { |
- SkDebugf("Could not set the pixel format %d.\n", pixelFormat); |
- this->destroyGLContext(); |
- return NULL; |
- } |
- |
- if (!(fGlRenderContext = wglCreateContext(fDeviceContext))) { |
+ if (!(fGlRenderContext = SkCreateWGLContext(fDeviceContext, 0, true))) { |
SkDebugf("Could not create rendering context.\n"); |
this->destroyGLContext(); |
return NULL; |