0d9e3da8bb
While it doesn't matter on Windows, mingw on case-sensitive OSes uses all lower case filenames for platform include files. I found the problem in SkCondVar.h from Mozilla checkout of skia sources, but the patch contains a fix for the whole skia tree. R=bungeman@google.com Review URL: https://codereview.chromium.org/99173003 git-svn-id: http://skia.googlecode.com/svn/trunk@12461 2bbb7eff-a529-9590-31e7-b0007b416f81
87 lines
2.1 KiB
C++
87 lines
2.1 KiB
C++
|
|
/*
|
|
* Copyright 2011 Google Inc.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
#ifndef SkNativeGLContext_DEFINED
|
|
#define SkNativeGLContext_DEFINED
|
|
|
|
#include "SkGLContextHelper.h"
|
|
|
|
#if defined(SK_BUILD_FOR_MAC)
|
|
#include <OpenGL/OpenGL.h>
|
|
#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_NACL)
|
|
#include <GLES2/gl2.h>
|
|
#include <EGL/egl.h>
|
|
#elif defined(SK_BUILD_FOR_UNIX)
|
|
#include <X11/Xlib.h>
|
|
#include <GL/glx.h>
|
|
#elif defined(SK_BUILD_FOR_WIN32)
|
|
#include <windows.h>
|
|
#include <GL/GL.h>
|
|
#endif
|
|
|
|
class SkNativeGLContext : public SkGLContextHelper {
|
|
public:
|
|
SkNativeGLContext();
|
|
|
|
virtual ~SkNativeGLContext();
|
|
|
|
virtual void makeCurrent() const SK_OVERRIDE;
|
|
virtual void swapBuffers() const SK_OVERRIDE;
|
|
|
|
class AutoContextRestore {
|
|
public:
|
|
AutoContextRestore();
|
|
~AutoContextRestore();
|
|
|
|
private:
|
|
#if defined(SK_BUILD_FOR_MAC)
|
|
CGLContextObj fOldCGLContext;
|
|
#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_NACL)
|
|
EGLContext fOldEGLContext;
|
|
EGLDisplay fOldDisplay;
|
|
EGLSurface fOldSurface;
|
|
#elif defined(SK_BUILD_FOR_UNIX)
|
|
GLXContext fOldGLXContext;
|
|
Display* fOldDisplay;
|
|
GLXDrawable fOldDrawable;
|
|
#elif defined(SK_BUILD_FOR_WIN32)
|
|
HDC fOldHDC;
|
|
HGLRC fOldHGLRC;
|
|
|
|
#elif defined(SK_BUILD_FOR_IOS)
|
|
void* fEAGLContext;
|
|
#endif
|
|
};
|
|
|
|
protected:
|
|
virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
|
|
virtual void destroyGLContext() SK_OVERRIDE;
|
|
|
|
private:
|
|
#if defined(SK_BUILD_FOR_MAC)
|
|
CGLContextObj fContext;
|
|
#elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_NACL)
|
|
EGLContext fContext;
|
|
EGLDisplay fDisplay;
|
|
EGLSurface fSurface;
|
|
#elif defined(SK_BUILD_FOR_UNIX)
|
|
GLXContext fContext;
|
|
Display* fDisplay;
|
|
Pixmap fPixmap;
|
|
GLXPixmap fGlxPixmap;
|
|
#elif defined(SK_BUILD_FOR_WIN32)
|
|
HWND fWindow;
|
|
HDC fDeviceContext;
|
|
HGLRC fGlRenderContext;
|
|
static ATOM gWC;
|
|
#elif defined(SK_BUILD_FOR_IOS)
|
|
void* fEAGLContext;
|
|
#endif
|
|
};
|
|
|
|
#endif
|