blob: 9d3b7d12f2e22e9a7c4b93fc8ed40765d34446a3 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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 */
reed@google.com873cb1e2010-12-23 15:00:45 +00008#ifndef SkEGLContext_DEFINED
9#define SkEGLContext_DEFINED
reed@google.comc31ce102010-12-21 16:26:39 +000010
bungeman@google.com0e454412011-05-19 17:47:02 +000011#if defined(SK_MESA)
12 #include "GL/osmesa.h"
13#elif defined(SK_BUILD_FOR_MAC)
bungeman@google.com16bab872011-05-17 14:24:46 +000014 #include <AGL/agl.h>
15#elif defined(SK_BUILD_FOR_UNIX)
16 #include <X11/Xlib.h>
17 #include <GL/glx.h>
bungeman@google.com206c98a2011-05-31 21:21:54 +000018#elif defined(SK_BUILD_FOR_WIN32)
bungeman@google.com3b0a8da2011-06-02 15:38:06 +000019 #include <Windows.h>
20 #include <GL/GL.h>
bungeman@google.com16bab872011-05-17 14:24:46 +000021#else
22
23#endif
reed@google.comc31ce102010-12-21 16:26:39 +000024
reed@google.com873cb1e2010-12-23 15:00:45 +000025/**
26 * Create an offscreen opengl context
27 */
reed@google.comc31ce102010-12-21 16:26:39 +000028class SkEGLContext {
29public:
bungeman@google.com16bab872011-05-17 14:24:46 +000030 SkEGLContext();
31 ~SkEGLContext();
reed@google.comc31ce102010-12-21 16:26:39 +000032
bungeman@google.com0e454412011-05-19 17:47:02 +000033 bool init(const int width, const int height);
reed@google.comc31ce102010-12-21 16:26:39 +000034
35private:
bungeman@google.com0e454412011-05-19 17:47:02 +000036#if defined(SK_MESA)
37 OSMesaContext context;
38 GLfloat *image;
39#elif defined(SK_BUILD_FOR_MAC)
bungeman@google.com16bab872011-05-17 14:24:46 +000040 AGLContext context;
41#elif defined(SK_BUILD_FOR_UNIX)
42 GLXContext context;
43 Display *display;
44 Pixmap pixmap;
45 GLXPixmap glxPixmap;
bungeman@google.com3b0a8da2011-06-02 15:38:06 +000046#elif defined(SK_BUILD_FOR_WIN32)
47 HWND fWindow;
48 HDC fDeviceContext;
49 HGLRC fGlRenderContext;
bungeman@google.com16bab872011-05-17 14:24:46 +000050#else
51
52#endif
reed@google.comc31ce102010-12-21 16:26:39 +000053};
54
reed@google.com873cb1e2010-12-23 15:00:45 +000055#endif