gfx/skia/trunk/include/gpu/gl/SkNativeGLContext.h

branch
TOR_BUG_9701
changeset 11
deefc01c0e14
equal deleted inserted replaced
-1:000000000000 0:deafbd1f1aaa
1
2 /*
3 * Copyright 2011 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8 #ifndef SkNativeGLContext_DEFINED
9 #define SkNativeGLContext_DEFINED
10
11 #include "SkGLContextHelper.h"
12
13 #if defined(SK_BUILD_FOR_MAC)
14 #include <OpenGL/OpenGL.h>
15 #elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_NACL)
16 #include <GLES2/gl2.h>
17 #include <EGL/egl.h>
18 #elif defined(SK_BUILD_FOR_UNIX)
19 #include <X11/Xlib.h>
20 #include <GL/glx.h>
21 #elif defined(SK_BUILD_FOR_WIN32)
22 #include <windows.h>
23 #include <GL/GL.h>
24 #endif
25
26 class SkNativeGLContext : public SkGLContextHelper {
27 public:
28 SkNativeGLContext();
29
30 virtual ~SkNativeGLContext();
31
32 virtual void makeCurrent() const SK_OVERRIDE;
33 virtual void swapBuffers() const SK_OVERRIDE;
34
35 class AutoContextRestore {
36 public:
37 AutoContextRestore();
38 ~AutoContextRestore();
39
40 private:
41 #if defined(SK_BUILD_FOR_MAC)
42 CGLContextObj fOldCGLContext;
43 #elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_NACL)
44 EGLContext fOldEGLContext;
45 EGLDisplay fOldDisplay;
46 EGLSurface fOldSurface;
47 #elif defined(SK_BUILD_FOR_UNIX)
48 GLXContext fOldGLXContext;
49 Display* fOldDisplay;
50 GLXDrawable fOldDrawable;
51 #elif defined(SK_BUILD_FOR_WIN32)
52 HDC fOldHDC;
53 HGLRC fOldHGLRC;
54
55 #elif defined(SK_BUILD_FOR_IOS)
56 void* fEAGLContext;
57 #endif
58 };
59
60 protected:
61 virtual const GrGLInterface* createGLContext() SK_OVERRIDE;
62 virtual void destroyGLContext() SK_OVERRIDE;
63
64 private:
65 #if defined(SK_BUILD_FOR_MAC)
66 CGLContextObj fContext;
67 #elif defined(SK_BUILD_FOR_ANDROID) || defined(SK_BUILD_FOR_NACL)
68 EGLContext fContext;
69 EGLDisplay fDisplay;
70 EGLSurface fSurface;
71 #elif defined(SK_BUILD_FOR_UNIX)
72 GLXContext fContext;
73 Display* fDisplay;
74 Pixmap fPixmap;
75 GLXPixmap fGlxPixmap;
76 #elif defined(SK_BUILD_FOR_WIN32)
77 HWND fWindow;
78 HDC fDeviceContext;
79 HGLRC fGlRenderContext;
80 static ATOM gWC;
81 #elif defined(SK_BUILD_FOR_IOS)
82 void* fEAGLContext;
83 #endif
84 };
85
86 #endif

mercurial