blob: 77c444e779101095ec784f86905a93800d5cb12b [file] [log] [blame]
reed@google.com873cb1e2010-12-23 15:00:45 +00001#ifndef SkEGLContext_DEFINED
2#define SkEGLContext_DEFINED
reed@google.comc31ce102010-12-21 16:26:39 +00003
bungeman@google.com0e454412011-05-19 17:47:02 +00004#if defined(SK_MESA)
5 #include "GL/osmesa.h"
6#elif defined(SK_BUILD_FOR_MAC)
bungeman@google.com16bab872011-05-17 14:24:46 +00007 #include <AGL/agl.h>
8#elif defined(SK_BUILD_FOR_UNIX)
9 #include <X11/Xlib.h>
10 #include <GL/glx.h>
bungeman@google.com206c98a2011-05-31 21:21:54 +000011#elif defined(SK_BUILD_FOR_WIN32)
bungeman@google.com3b0a8da2011-06-02 15:38:06 +000012 #include <Windows.h>
13 #include <GL/GL.h>
bungeman@google.com16bab872011-05-17 14:24:46 +000014#else
15
16#endif
reed@google.comc31ce102010-12-21 16:26:39 +000017
reed@google.com873cb1e2010-12-23 15:00:45 +000018/**
19 * Create an offscreen opengl context
20 */
reed@google.comc31ce102010-12-21 16:26:39 +000021class SkEGLContext {
22public:
bungeman@google.com16bab872011-05-17 14:24:46 +000023 SkEGLContext();
24 ~SkEGLContext();
reed@google.comc31ce102010-12-21 16:26:39 +000025
bungeman@google.com0e454412011-05-19 17:47:02 +000026 bool init(const int width, const int height);
reed@google.comc31ce102010-12-21 16:26:39 +000027
28private:
bungeman@google.com0e454412011-05-19 17:47:02 +000029#if defined(SK_MESA)
30 OSMesaContext context;
31 GLfloat *image;
32#elif defined(SK_BUILD_FOR_MAC)
bungeman@google.com16bab872011-05-17 14:24:46 +000033 AGLContext context;
34#elif defined(SK_BUILD_FOR_UNIX)
35 GLXContext context;
36 Display *display;
37 Pixmap pixmap;
38 GLXPixmap glxPixmap;
bungeman@google.com3b0a8da2011-06-02 15:38:06 +000039#elif defined(SK_BUILD_FOR_WIN32)
40 HWND fWindow;
41 HDC fDeviceContext;
42 HGLRC fGlRenderContext;
bungeman@google.com16bab872011-05-17 14:24:46 +000043#else
44
45#endif
reed@google.comc31ce102010-12-21 16:26:39 +000046};
47
reed@google.com873cb1e2010-12-23 15:00:45 +000048#endif