1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/glcanvas.h 3 // Purpose: wxGLCanvas base header 4 // Author: Julian Smart 5 // Modified by: 6 // Created: 7 // Copyright: (c) Julian Smart 8 // RCS-ID: $Id: glcanvas.h 61872 2009-09-09 22:37:05Z VZ $ 9 // Licence: wxWindows licence 10 ///////////////////////////////////////////////////////////////////////////// 11 12 #ifndef _WX_GLCANVAS_H_BASE_ 13 #define _WX_GLCANVAS_H_BASE_ 14 15 #include "wx/defs.h" 16 17 #if wxUSE_GLCANVAS 18 19 //--------------------------------------------------------------------------- 20 // Constants for attriblist 21 //--------------------------------------------------------------------------- 22 23 // The generic GL implementation doesn't support most of these options, 24 // such as stereo, auxiliary buffers, alpha channel, and accum buffer. 25 // Other implementations may actually support them. 26 27 enum 28 { 29 WX_GL_RGBA=1, /* use true color palette */ 30 WX_GL_BUFFER_SIZE, /* bits for buffer if not WX_GL_RGBA */ 31 WX_GL_LEVEL, /* 0 for main buffer, >0 for overlay, <0 for underlay */ 32 WX_GL_DOUBLEBUFFER, /* use doublebuffer */ 33 WX_GL_STEREO, /* use stereoscopic display */ 34 WX_GL_AUX_BUFFERS, /* number of auxiliary buffers */ 35 WX_GL_MIN_RED, /* use red buffer with most bits (> MIN_RED bits) */ 36 WX_GL_MIN_GREEN, /* use green buffer with most bits (> MIN_GREEN bits) */ 37 WX_GL_MIN_BLUE, /* use blue buffer with most bits (> MIN_BLUE bits) */ 38 WX_GL_MIN_ALPHA, /* use alpha buffer with most bits (> MIN_ALPHA bits) */ 39 WX_GL_DEPTH_SIZE, /* bits for Z-buffer (0,16,32) */ 40 WX_GL_STENCIL_SIZE, /* bits for stencil buffer */ 41 WX_GL_MIN_ACCUM_RED, /* use red accum buffer with most bits (> MIN_ACCUM_RED bits) */ 42 WX_GL_MIN_ACCUM_GREEN, /* use green buffer with most bits (> MIN_ACCUM_GREEN bits) */ 43 WX_GL_MIN_ACCUM_BLUE, /* use blue buffer with most bits (> MIN_ACCUM_BLUE bits) */ 44 WX_GL_MIN_ACCUM_ALPHA /* use alpha buffer with most bits (> MIN_ACCUM_ALPHA bits) */ 45 }; 46 47 #define wxGLCanvasName wxT("GLCanvas") 48 49 #if defined(__WXMSW__) 50 #include "wx/msw/glcanvas.h" 51 #elif defined(__WXMOTIF__) 52 #include "wx/x11/glcanvas.h" 53 #elif defined(__WXGTK20__) 54 #include "wx/gtk/glcanvas.h" 55 #elif defined(__WXGTK__) 56 #include "wx/gtk1/glcanvas.h" 57 #elif defined(__WXX11__) 58 #include "wx/x11/glcanvas.h" 59 #elif defined(__WXMAC__) 60 #include "wx/mac/glcanvas.h" 61 #elif defined(__WXCOCOA__) 62 #include "wx/cocoa/glcanvas.h" 63 #else 64 #error "wxGLCanvas not supported in this wxWidgets port" 65 #endif 66 67 #include "wx/app.h" 68 class WXDLLIMPEXP_GL wxGLApp : public wxApp 69 { 70 public: wxGLApp()71 wxGLApp() : wxApp() { } 72 virtual ~wxGLApp(); 73 74 // use this in the constructor of the user-derived wxGLApp class to 75 // determine if an OpenGL rendering context with these attributes 76 // is available - returns true if so, false if not. 77 bool InitGLVisual(int *attribList); 78 79 private: 80 DECLARE_DYNAMIC_CLASS(wxGLApp) 81 }; 82 83 #endif 84 // wxUSE_GLCANVAS 85 #endif 86 // _WX_GLCANVAS_H_BASE_ 87