]> git.saurik.com Git - wxWidgets.git/blobdiff - utils/glcanvas/gtk/glcanvas.h
Cured memory leak report in wxDateTime; wxGLCanvas corrections
[wxWidgets.git] / utils / glcanvas / gtk / glcanvas.h
index 985fb626b6b1b231f1de383cc92cf8aa8d82bd59..b67e1ba7c830d94cdb8e0ec52433d6959eb05325 100644 (file)
@@ -54,10 +54,7 @@ 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, 
@@ -79,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)
 };
 
 //---------------------------------------------------------------------------
@@ -94,9 +93,14 @@ class wxGLContext: public wxObject
 
 class wxGLCanvas: public wxScrolledWindow
 {
-   DECLARE_CLASS(wxGLCanvas)
-   
- public:
+public:
+   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, 
@@ -110,8 +114,17 @@ class wxGLCanvas: public wxScrolledWindow
         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 );
 
-   bool Create( wxWindow *parent, const wxGLContext *shared = (wxGLContext *)NULL,
+   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, 
@@ -126,18 +139,23 @@ class wxGLCanvas: public wxScrolledWindow
    void SwapBuffers();
 
    void OnSize(wxSizeEvent& event);
+   
+   void OnInternalIdle();
 
    inline wxGLContext* GetContext() const { return m_glContext; } 
 
  // implementation
   
-    virtual GtkWidget *GetConnectWidget();
-    bool IsOwnGtkWindow( GdkWindow *window );
-  
-    wxGLContext      *m_glContext; 
+    wxGLContext      *m_glContext,
+                     *m_sharedContext;
+    wxGLCanvas       *m_sharedContextOf;
+    void             *m_vi;
     GtkWidget        *m_glWidget;
+    bool              m_exposed;
 
-  DECLARE_EVENT_TABLE()
+private:
+    DECLARE_EVENT_TABLE()
+    DECLARE_CLASS(wxGLCanvas)
 };
 
 #endif