| Index: tools/gpu/gl/win/CreatePlatformGLContext_win.cpp
 | 
| diff --git a/tools/gpu/gl/win/CreatePlatformGLContext_win.cpp b/tools/gpu/gl/win/CreatePlatformGLContext_win.cpp
 | 
| deleted file mode 100644
 | 
| index efee28b74b1281c5b1ddda1de8a582d14aa22c32..0000000000000000000000000000000000000000
 | 
| --- a/tools/gpu/gl/win/CreatePlatformGLContext_win.cpp
 | 
| +++ /dev/null
 | 
| @@ -1,204 +0,0 @@
 | 
| -
 | 
| -/*
 | 
| - * Copyright 2011 Google Inc.
 | 
| - *
 | 
| - * Use of this source code is governed by a BSD-style license that can be
 | 
| - * found in the LICENSE file.
 | 
| - */
 | 
| -
 | 
| -#include "gl/GLContext.h"
 | 
| -
 | 
| -#include <windows.h>
 | 
| -#include <GL/GL.h>
 | 
| -#include "win/SkWGL.h"
 | 
| -
 | 
| -#define WIN32_LEAN_AND_MEAN
 | 
| -#include <windows.h>
 | 
| -
 | 
| -namespace {
 | 
| -
 | 
| -class WinGLContext : public sk_gpu_test::GLContext {
 | 
| -public:
 | 
| -    WinGLContext(GrGLStandard forcedGpuAPI);
 | 
| -	~WinGLContext() override;
 | 
| -
 | 
| -private:
 | 
| -    void destroyGLContext();
 | 
| -
 | 
| -    void onPlatformMakeCurrent() const override;
 | 
| -    void onPlatformSwapBuffers() const override;
 | 
| -    GrGLFuncPtr onPlatformGetProcAddress(const char* name) const override;
 | 
| -
 | 
| -    HWND fWindow;
 | 
| -    HDC fDeviceContext;
 | 
| -    HGLRC fGlRenderContext;
 | 
| -    static ATOM gWC;
 | 
| -    SkWGLPbufferContext* fPbufferContext;
 | 
| -};
 | 
| -
 | 
| -ATOM WinGLContext::gWC = 0;
 | 
| -
 | 
| -WinGLContext::WinGLContext(GrGLStandard forcedGpuAPI)
 | 
| -    : fWindow(nullptr)
 | 
| -    , fDeviceContext(nullptr)
 | 
| -    , fGlRenderContext(0)
 | 
| -    , fPbufferContext(nullptr) {
 | 
| -    HINSTANCE hInstance = (HINSTANCE)GetModuleHandle(nullptr);
 | 
| -
 | 
| -    if (!gWC) {
 | 
| -        WNDCLASS wc;
 | 
| -        wc.cbClsExtra = 0;
 | 
| -        wc.cbWndExtra = 0;
 | 
| -        wc.hbrBackground = nullptr;
 | 
| -        wc.hCursor = LoadCursor(nullptr, IDC_ARROW);
 | 
| -        wc.hIcon = LoadIcon(nullptr, IDI_APPLICATION);
 | 
| -        wc.hInstance = hInstance;
 | 
| -        wc.lpfnWndProc = (WNDPROC) DefWindowProc;
 | 
| -        wc.lpszClassName = TEXT("Griffin");
 | 
| -        wc.lpszMenuName = nullptr;
 | 
| -        wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
 | 
| -
 | 
| -        gWC = RegisterClass(&wc);
 | 
| -        if (!gWC) {
 | 
| -            SkDebugf("Could not register window class.\n");
 | 
| -            return;
 | 
| -        }
 | 
| -    }
 | 
| -
 | 
| -    if (!(fWindow = CreateWindow(TEXT("Griffin"),
 | 
| -                                 TEXT("The Invisible Man"),
 | 
| -                                 WS_OVERLAPPEDWINDOW,
 | 
| -                                 0, 0, 1, 1,
 | 
| -                                 nullptr, nullptr,
 | 
| -                                 hInstance, nullptr))) {
 | 
| -        SkDebugf("Could not create window.\n");
 | 
| -        return;
 | 
| -    }
 | 
| -
 | 
| -    if (!(fDeviceContext = GetDC(fWindow))) {
 | 
| -        SkDebugf("Could not get device context.\n");
 | 
| -        this->destroyGLContext();
 | 
| -        return;
 | 
| -    }
 | 
| -    // Requesting a Core profile would bar us from using NVPR. So we request
 | 
| -    // compatibility profile or GL ES.
 | 
| -    SkWGLContextRequest contextType =
 | 
| -        kGLES_GrGLStandard == forcedGpuAPI ?
 | 
| -        kGLES_SkWGLContextRequest : kGLPreferCompatibilityProfile_SkWGLContextRequest;
 | 
| -
 | 
| -    fPbufferContext = SkWGLPbufferContext::Create(fDeviceContext, 0, contextType);
 | 
| -
 | 
| -    HDC dc;
 | 
| -    HGLRC glrc;
 | 
| -
 | 
| -    if (nullptr == fPbufferContext) {
 | 
| -        if (!(fGlRenderContext = SkCreateWGLContext(fDeviceContext, 0, contextType))) {
 | 
| -            SkDebugf("Could not create rendering context.\n");
 | 
| -            this->destroyGLContext();
 | 
| -            return;
 | 
| -        }
 | 
| -        dc = fDeviceContext;
 | 
| -        glrc = fGlRenderContext;
 | 
| -    } else {
 | 
| -        ReleaseDC(fWindow, fDeviceContext);
 | 
| -        fDeviceContext = 0;
 | 
| -        DestroyWindow(fWindow);
 | 
| -        fWindow = 0;
 | 
| -
 | 
| -        dc = fPbufferContext->getDC();
 | 
| -        glrc = fPbufferContext->getGLRC();
 | 
| -    }
 | 
| -
 | 
| -    if (!(wglMakeCurrent(dc, glrc))) {
 | 
| -        SkDebugf("Could not set the context.\n");
 | 
| -        this->destroyGLContext();
 | 
| -        return;
 | 
| -    }
 | 
| -
 | 
| -    SkAutoTUnref<const GrGLInterface> gl(GrGLCreateNativeInterface());
 | 
| -    if (nullptr == gl.get()) {
 | 
| -        SkDebugf("Could not create GL interface.\n");
 | 
| -        this->destroyGLContext();
 | 
| -        return;
 | 
| -    }
 | 
| -    if (!gl->validate()) {
 | 
| -        SkDebugf("Could not validate GL interface.\n");
 | 
| -        this->destroyGLContext();
 | 
| -        return;
 | 
| -    }
 | 
| -
 | 
| -    this->init(gl.release());
 | 
| -}
 | 
| -
 | 
| -WinGLContext::~WinGLContext() {
 | 
| -    this->teardown();
 | 
| -    this->destroyGLContext();
 | 
| -}
 | 
| -
 | 
| -void WinGLContext::destroyGLContext() {
 | 
| -    SkSafeSetNull(fPbufferContext);
 | 
| -    if (fGlRenderContext) {
 | 
| -        wglDeleteContext(fGlRenderContext);
 | 
| -        fGlRenderContext = 0;
 | 
| -    }
 | 
| -    if (fWindow && fDeviceContext) {
 | 
| -        ReleaseDC(fWindow, fDeviceContext);
 | 
| -        fDeviceContext = 0;
 | 
| -    }
 | 
| -    if (fWindow) {
 | 
| -        DestroyWindow(fWindow);
 | 
| -        fWindow = 0;
 | 
| -    }
 | 
| -}
 | 
| -
 | 
| -void WinGLContext::onPlatformMakeCurrent() const {
 | 
| -    HDC dc;
 | 
| -    HGLRC glrc;
 | 
| -
 | 
| -    if (nullptr == fPbufferContext) {
 | 
| -        dc = fDeviceContext;
 | 
| -        glrc = fGlRenderContext;
 | 
| -    } else {
 | 
| -        dc = fPbufferContext->getDC();
 | 
| -        glrc = fPbufferContext->getGLRC();
 | 
| -    }
 | 
| -
 | 
| -    if (!wglMakeCurrent(dc, glrc)) {
 | 
| -        SkDebugf("Could not create rendering context.\n");
 | 
| -    }
 | 
| -}
 | 
| -
 | 
| -void WinGLContext::onPlatformSwapBuffers() const {
 | 
| -    HDC dc;
 | 
| -
 | 
| -    if (nullptr == fPbufferContext) {
 | 
| -        dc = fDeviceContext;
 | 
| -    } else {
 | 
| -        dc = fPbufferContext->getDC();
 | 
| -    }
 | 
| -    if (!SwapBuffers(dc)) {
 | 
| -        SkDebugf("Could not complete SwapBuffers.\n");
 | 
| -    }
 | 
| -}
 | 
| -
 | 
| -GrGLFuncPtr WinGLContext::onPlatformGetProcAddress(const char* name) const {
 | 
| -    return reinterpret_cast<GrGLFuncPtr>(wglGetProcAddress(name));
 | 
| -}
 | 
| -
 | 
| -} // anonymous namespace
 | 
| -
 | 
| -namespace sk_gpu_test {
 | 
| -GLContext* CreatePlatformGLContext(GrGLStandard forcedGpuAPI, GLContext *shareContext) {
 | 
| -    SkASSERT(!shareContext);
 | 
| -    if (shareContext) {
 | 
| -        return nullptr;
 | 
| -    }
 | 
| -    WinGLContext *ctx = new WinGLContext(forcedGpuAPI);
 | 
| -    if (!ctx->isValid()) {
 | 
| -        delete ctx;
 | 
| -        return nullptr;
 | 
| -    }
 | 
| -    return ctx;
 | 
| -}
 | 
| -}  // namespace sk_gpu_test
 | 
| -
 | 
| 
 |