X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f48d169c4a57bd4ac2f44e42b9fd26a930bbdca0..4f9db74e9852ca3f4bfe9a13c6dd4ca5f6714946:/include/wx/motif/glcanvas.h diff --git a/include/wx/motif/glcanvas.h b/include/wx/motif/glcanvas.h index a869f8e0be..c607cdc00d 100644 --- a/include/wx/motif/glcanvas.h +++ b/include/wx/motif/glcanvas.h @@ -51,22 +51,107 @@ enum // classes //--------------------------------------------------------------------------- + +class WXDLLEXPORT wxGLContext: public wxObject +{ +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(); + void SetColour(const char *colour); + void SwapBuffers(); + + void SetupPixelFormat(); + void SetupPalette(const wxPalette& palette); + wxPalette CreateDefaultPalette(); + + inline wxPalette* GetPalette() const { return (wxPalette*) & m_palette; } + inline wxWindow* GetWindow() const { return m_window; } + // inline GtkWidget* GetWidget() const { return m_widget; } + inline GLXContext GetContext() const { return m_glContext; } + +public: + GLXContext m_glContext; + + // GtkWidget *m_widget; + wxPalette m_palette; + wxWindow* m_window; + + DECLARE_CLASS(wxGLContext) +}; + + class WXDLLEXPORT wxGLCanvas: public wxScrolledWindow { -DECLARE_CLASS(wxGLCanvas) public: - GLXContext glx_cx; + inline wxGLCanvas() { + m_glContext = (wxGLContext*) NULL; + m_sharedContext = (wxGLContext*) NULL; + // m_glWidget = (GtkWidget*) NULL; + m_vi = (void*) NULL; + // m_exposed = FALSE; + } + 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 ); + 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 ); + wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared = (wxGLCanvas *)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 ); - inline wxGLCanvas() { glx_cx = 0; } + bool Create( wxWindow *parent, + const wxGLContext *shared = (wxGLContext*)NULL, + const wxGLCanvas *shared_context_of = (wxGLCanvas*)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 ); + + ~wxGLCanvas(); - wxGLCanvas(wxWindow *parent, wxWindowID id = -1, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, - const wxString& name = "GLCanvas", int *attribList = 0, const wxPalette& palette = wxNullPalette); - ~wxGLCanvas(void); + void SetCurrent(); + void SetColour(const char *colour); + void SwapBuffers(); + + // void OnSize(wxSizeEvent& event); + + // void OnInternalIdle(); + + inline wxGLContext* GetContext() const { return m_glContext; } + + // implementation + + wxGLContext *m_glContext, + *m_sharedContext; + wxGLCanvas *m_sharedContextOf; + void *m_vi; + // GtkWidget *m_glWidget; + // bool m_exposed; + + DECLARE_EVENT_TABLE() + DECLARE_CLASS(wxGLCanvas) - void SetCurrent(); - void SwapBuffers(); - void SetColour(const char *col); }; #endif