7158e6acca
- Add nacl_make script to build Skia targets for NaCl using gyp - Add nacl_interface for command-line apps - Add nacl_sample as front-end for SampleApp - Add freetype to DEPS - Various gyp tweaks for NaCl TODO: - Implement GL interface - Implement font host - Fix plumbing so that SampleApp works properly Review URL: https://codereview.appspot.com/6671044 git-svn-id: http://skia.googlecode.com/svn/trunk@6245 2bbb7eff-a529-9590-31e7-b0007b416f81
86 lines
2.0 KiB
C++
86 lines
2.0 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 "SkGLContext.h"
|
|
|
|
#if defined(SK_BUILD_FOR_MAC)
|
|
#include <AGL/agl.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 SkGLContext {
|
|
public:
|
|
SkNativeGLContext();
|
|
|
|
virtual ~SkNativeGLContext();
|
|
|
|
virtual void makeCurrent() const SK_OVERRIDE;
|
|
|
|
class AutoContextRestore {
|
|
public:
|
|
AutoContextRestore();
|
|
~AutoContextRestore();
|
|
|
|
private:
|
|
#if defined(SK_BUILD_FOR_MAC)
|
|
AGLContext fOldAGLContext;
|
|
#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)
|
|
AGLContext 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
|