X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b11708106f93d28dbb47218b18e02674ad6c0cdb..70846f0a79c2480ee84118d05f879a13550d95c5:/utils/glcanvas/gtk/glcanvas.h diff --git a/utils/glcanvas/gtk/glcanvas.h b/utils/glcanvas/gtk/glcanvas.h index c32e176a61..f426e65dda 100644 --- a/utils/glcanvas/gtk/glcanvas.h +++ b/utils/glcanvas/gtk/glcanvas.h @@ -25,6 +25,21 @@ extern "C" { #include "GL/glu.h" } +//--------------------------------------------------------------------------- +// Constants for attriblist +//--------------------------------------------------------------------------- + +enum +{ + WX_GL_RGBA=1, /* use true color palette */ + WX_GL_DEPTH_SIZE, /* bits for Z-buffer (0,16,32) */ + WX_GL_DOUBLEBUFFER, /* use doublebuffer */ + WX_GL_MIN_RED, /* use red buffer with most bits (> MIN_RED bits) */ + WX_GL_MIN_GREEN, /* use green buffer with most bits (> MIN_GREEN bits) */ + WX_GL_MIN_BLUE /* use blue buffer with most bits (> MIN_BLUE bits) */ +/* these are enough constants for now, the remaining will be added later */ +}; + //--------------------------------------------------------------------------- // classes //--------------------------------------------------------------------------- @@ -39,11 +54,13 @@ class wxGLCanvas; class wxGLContext: public wxObject { - DECLARE_CLASS(wxGLContext) - - public: - +public: wxGLContext( bool isRGB, wxWindow *win, const wxPalette& palette = wxNullPalette ); + wxGLContext( + bool WXUNUSED(isRGB), wxWindow *win, + const wxPalette& WXUNUSED(palette), + const wxGLContext *other /* for sharing display lists */ + ); ~wxGLContext(); void SetCurrent(); @@ -59,13 +76,15 @@ class wxGLContext: public wxObject inline GtkWidget* GetWidget() const { return m_widget; } inline GLXContext GetContext() const { return m_glContext; } - public: - +public: GLXContext m_glContext; GtkWidget *m_widget; wxPalette m_palette; wxWindow* m_window; + +private: + DECLARE_CLASS(wxGLContext) }; //--------------------------------------------------------------------------- @@ -74,17 +93,23 @@ class wxGLContext: public wxObject class wxGLCanvas: public wxScrolledWindow { - DECLARE_CLASS(wxGLCanvas) - - public: +public: wxGLCanvas( wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "GLCanvas", - int *attribList = (int*) NULL, - const wxPalette& palette = wxNullPalette ); - - bool Create( wxWindow *parent, wxWindowID id = -1, + long style = 0, const wxString& name = "GLCanvas", + int *attribList = (int*) NULL, + const wxPalette& palette = wxNullPalette ); + wxGLCanvas( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, + wxWindowID id = -1, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, const wxString& name = "GLCanvas", + int *attribList = (int*) NULL, + const wxPalette& palette = wxNullPalette ); + + bool Create( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL, + wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "GLCanvas", @@ -98,22 +123,22 @@ class wxGLCanvas: public wxScrolledWindow void SwapBuffers(); void OnSize(wxSizeEvent& event); + + void OnInternalIdle(); inline wxGLContext* GetContext() const { return m_glContext; } // implementation - virtual void SetSize( int x, int y, int width, int height, - int sizeFlags = wxSIZE_AUTO ); - virtual void SetSize( int width, int height ); - - virtual GtkWidget *GetConnectWidget(); - bool IsOwnGtkWindow( GdkWindow *window ); - - wxGLContext *m_glContext; + wxGLContext *m_glContext, + *m_sharedContext; + void *m_vi; GtkWidget *m_glWidget; + bool m_exposed; - DECLARE_EVENT_TABLE() +private: + DECLARE_EVENT_TABLE() + DECLARE_CLASS(wxGLCanvas) }; #endif