+class WXDLLIMPEXP_GL wxGLCanvas : public wxGLCanvasBase
+{
+public:
+ wxEXPLICIT // avoid implicitly converting a wxWindow* to wxGLCanvas
+ wxGLCanvas(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const int *attribList = NULL,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxGLCanvasName,
+ const wxPalette& palette = wxNullPalette);
+
+ bool Create(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxGLCanvasName,
+ const int *attribList = NULL,
+ const wxPalette& palette = wxNullPalette);
+
+ virtual ~wxGLCanvas();
+
+ // implement wxGLCanvasBase methods
+ virtual bool SwapBuffers();
+
+
+ // MSW-specific helpers
+ // --------------------
+
+ // get the HDC used for OpenGL rendering
+ HDC GetHDC() const { return m_hDC; }
+
+ // try to find pixel format matching the given attributes list for the
+ // specified HDC, return 0 on error, otherwise pfd is filled in with the
+ // information from attribList if non-NULL
+ static int ChooseMatchingPixelFormat(HDC hdc, const int *attribList,
+ PIXELFORMATDESCRIPTOR *pfd = NULL);
+
+#if wxUSE_PALETTE
+ // palette stuff
+ bool SetupPalette(const wxPalette& palette);
+ virtual wxPalette CreateDefaultPalette();
+ void OnQueryNewPalette(wxQueryNewPaletteEvent& event);
+ void OnPaletteChanged(wxPaletteChangedEvent& event);
+#endif // wxUSE_PALETTE
+
+ // deprecated methods using the implicit wxGLContext, associate the context
+ // explicitly with the window instead
+#if WXWIN_COMPATIBILITY_2_8
+ wxDEPRECATED(
+ wxGLCanvas(wxWindow *parent,
+ wxWindowID id = wxID_ANY,
+ const wxPoint& pos = wxDefaultPosition,
+ const wxSize& size = wxDefaultSize,
+ long style = 0,
+ const wxString& name = wxGLCanvasName,
+ const int *attribList = NULL,
+ const wxPalette& palette = wxNullPalette)
+ );