1 /////////////////////////////////////////////////////////////////////////////
3 // Purpose: wxGLCanvas, for using OpenGL/Mesa with wxWidgets and GTK
4 // Author: Robert Roebling
8 // Copyright: (c) Robert Roebling
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_GLCANVAS_H_
13 #define _WX_GLCANVAS_H_
15 #include "wx/unix/glx11.h"
17 //---------------------------------------------------------------------------
19 //---------------------------------------------------------------------------
21 class WXDLLIMPEXP_GL wxGLCanvas
: public wxGLCanvasX11
24 wxGLCanvas(wxWindow
*parent
,
25 wxWindowID id
= wxID_ANY
,
26 const int *attribList
= NULL
,
27 const wxPoint
& pos
= wxDefaultPosition
,
28 const wxSize
& size
= wxDefaultSize
,
30 const wxString
& name
= wxGLCanvasName
,
31 const wxPalette
& palette
= wxNullPalette
);
33 bool Create(wxWindow
*parent
,
34 wxWindowID id
= wxID_ANY
,
35 const wxPoint
& pos
= wxDefaultPosition
,
36 const wxSize
& size
= wxDefaultSize
,
38 const wxString
& name
= wxGLCanvasName
,
39 const int *attribList
= NULL
,
40 const wxPalette
& palette
= wxNullPalette
);
43 // implement wxGLCanvasX11 methods
44 // --------------------------------
46 virtual Window
GetXWindow() const;
52 #if WXWIN_COMPATIBILITY_2_8
54 wxGLCanvas(wxWindow
*parent
,
55 wxWindowID id
= wxID_ANY
,
56 const wxPoint
& pos
= wxDefaultPosition
,
57 const wxSize
& size
= wxDefaultSize
,
59 const wxString
& name
= wxGLCanvasName
,
60 const int *attribList
= NULL
,
61 const wxPalette
& palette
= wxNullPalette
)
65 wxGLCanvas(wxWindow
*parent
,
66 const wxGLContext
*shared
,
67 wxWindowID id
= wxID_ANY
,
68 const wxPoint
& pos
= wxDefaultPosition
,
69 const wxSize
& size
= wxDefaultSize
,
71 const wxString
& name
= wxGLCanvasName
,
72 const int *attribList
= NULL
,
73 const wxPalette
& palette
= wxNullPalette
)
77 wxGLCanvas(wxWindow
*parent
,
78 const wxGLCanvas
*shared
,
79 wxWindowID id
= wxID_ANY
,
80 const wxPoint
& pos
= wxDefaultPosition
,
81 const wxSize
& size
= wxDefaultSize
,
83 const wxString
& name
= wxGLCanvasName
,
84 const int *attribList
= NULL
,
85 const wxPalette
& palette
= wxNullPalette
)
88 // called from "realized" callback to create the implicit context if needed
89 void GTKInitImplicitContext();
90 #endif // WXWIN_COMPATIBILITY_2_8
92 // implementation from now on
93 void OnInternalIdle();
97 #if WXWIN_COMPATIBILITY_2_8
98 wxGLContext
*m_sharedContext
;
99 wxGLCanvas
*m_sharedContextOf
;
100 const bool m_createImplicitContext
;
101 #endif // WXWIN_COMPATIBILITY_2_8
104 DECLARE_CLASS(wxGLCanvas
)
107 #endif // _WX_GLCANVAS_H_