blob: d67cf0c3173cbd6470740a65223bd837c73485ff [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>
11#else
12
13#endif
reed@google.comc31ce102010-12-21 16:26:39 +000014
reed@google.com873cb1e2010-12-23 15:00:45 +000015/**
16 * Create an offscreen opengl context
17 */
reed@google.comc31ce102010-12-21 16:26:39 +000018class SkEGLContext {
19public:
bungeman@google.com16bab872011-05-17 14:24:46 +000020 SkEGLContext();
21 ~SkEGLContext();
reed@google.comc31ce102010-12-21 16:26:39 +000022
bungeman@google.com0e454412011-05-19 17:47:02 +000023 bool init(const int width, const int height);
reed@google.comc31ce102010-12-21 16:26:39 +000024
25private:
bungeman@google.com0e454412011-05-19 17:47:02 +000026#if defined(SK_MESA)
27 OSMesaContext context;
28 GLfloat *image;
29#elif defined(SK_BUILD_FOR_MAC)
bungeman@google.com16bab872011-05-17 14:24:46 +000030 AGLContext context;
31#elif defined(SK_BUILD_FOR_UNIX)
32 GLXContext context;
33 Display *display;
34 Pixmap pixmap;
35 GLXPixmap glxPixmap;
36#else
37
38#endif
reed@google.comc31ce102010-12-21 16:26:39 +000039};
40
reed@google.com873cb1e2010-12-23 15:00:45 +000041#endif