]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/glcanvas.cpp
Fix of memory leak with generic file dialog (Patch #1017938)
[wxWidgets.git] / src / msw / glcanvas.cpp
index feb72526b16d5892de25aae031b2e060bff746ad..eacc88868773cbe5ca6063e226ce6fe2348b1fbc 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        src/msw/glcanvas.cpp
 /////////////////////////////////////////////////////////////////////////////
 // Name:        src/msw/glcanvas.cpp
-// Purpose:     wxGLCanvas, for using OpenGL with wxWindows under MS Windows
+// Purpose:     wxGLCanvas, for using OpenGL with wxWidgets under MS Windows
 // Author:      Julian Smart
 // Modified by:
 // Created:     04/01/98
 // Author:      Julian Smart
 // Modified by:
 // Created:     04/01/98
@@ -46,7 +46,7 @@ WX_CHECK_BUILD_OPTIONS("wxGL")
   these two libraries to either the Makefile or project file.
 
   This is NOT a recommended technique, and certainly is unlikely to be used
   these two libraries to either the Makefile or project file.
 
   This is NOT a recommended technique, and certainly is unlikely to be used
-  anywhere else in wxWindows given it is so specific to not only wxMSW, but
+  anywhere else in wxWidgets given it is so specific to not only wxMSW, but
   also the VC compiler. However, in the case of opengl support, it's an
   applicable technique as opengl is optional in setup.h This code (wrapped by
   wxUSE_GLCANVAS), now allows opengl support to be added purely by modifying
   also the VC compiler. However, in the case of opengl support, it's an
   applicable technique as opengl is optional in setup.h This code (wrapped by
   wxUSE_GLCANVAS), now allows opengl support to be added purely by modifying
@@ -77,7 +77,7 @@ wxGLContext::wxGLContext(bool WXUNUSED(isRGB), wxGLCanvas *win, const wxPalette&
   m_hDC = win->GetHDC();
 
   m_glContext = wglCreateContext((HDC) m_hDC);
   m_hDC = win->GetHDC();
 
   m_glContext = wglCreateContext((HDC) m_hDC);
-  wxCHECK_RET( m_glContext, wxT("Couldn't create OpenGl context") );
+  wxCHECK_RET( m_glContext, wxT("Couldn't create OpenGL context") );
 
   wglMakeCurrent((HDC) m_hDC, m_glContext);
 }
 
   wglMakeCurrent((HDC) m_hDC, m_glContext);
 }
@@ -93,7 +93,7 @@ wxGLContext::wxGLContext(
   m_hDC = win->GetHDC();
 
   m_glContext = wglCreateContext((HDC) m_hDC);
   m_hDC = win->GetHDC();
 
   m_glContext = wglCreateContext((HDC) m_hDC);
-  wxCHECK_RET( m_glContext, wxT("Couldn't create OpenGl context") );
+  wxCHECK_RET( m_glContext, wxT("Couldn't create OpenGL context") );
 
   if( other != 0 )
     wglShareLists( other->m_glContext, m_glContext );
 
   if( other != 0 )
     wglShareLists( other->m_glContext, m_glContext );
@@ -134,17 +134,14 @@ void wxGLContext::SetCurrent()
 
 void wxGLContext::SetColour(const wxChar *colour)
 {
 
 void wxGLContext::SetColour(const wxChar *colour)
 {
-  float r = 0.0;
-  float g = 0.0;
-  float b = 0.0;
-  wxColour *col = wxTheColourDatabase->FindColour(colour);
-  if (col)
-  {
-    r = (float)(col->Red()/256.0);
-    g = (float)(col->Green()/256.0);
-    b = (float)(col->Blue()/256.0);
-    glColor3f( r, g, b);
-  }
+    wxColour col = wxTheColourDatabase->Find(colour);
+    if (col.Ok())
+    {
+        float r = (float)(col.Red()/256.0);
+        float g = (float)(col.Green()/256.0);
+        float b = (float)(col.Blue()/256.0);
+        glColor3f( r, g, b);
+    }
 }
 
 
 }
 
 
@@ -171,7 +168,6 @@ wxGLCanvas::wxGLCanvas(wxWindow *parent, wxWindowID id,
   if ( ret )
   {
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
   if ( ret )
   {
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
-    SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
   }
 
   m_hDC = (WXHDC) ::GetDC((HWND) GetHWND());
   }
 
   m_hDC = (WXHDC) ::GetDC((HWND) GetHWND());
@@ -179,7 +175,7 @@ wxGLCanvas::wxGLCanvas(wxWindow *parent, wxWindowID id,
   SetupPixelFormat(attribList);
   SetupPalette(palette);
 
   SetupPixelFormat(attribList);
   SetupPalette(palette);
 
-  m_glContext = new wxGLContext(TRUE, this, palette);
+  m_glContext = new wxGLContext(true, this, palette);
 }
 
 wxGLCanvas::wxGLCanvas( wxWindow *parent,
 }
 
 wxGLCanvas::wxGLCanvas( wxWindow *parent,
@@ -195,7 +191,6 @@ wxGLCanvas::wxGLCanvas( wxWindow *parent,
   if ( ret )
   {
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
   if ( ret )
   {
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
-    SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
   }
 
   m_hDC = (WXHDC) ::GetDC((HWND) GetHWND());
   }
 
   m_hDC = (WXHDC) ::GetDC((HWND) GetHWND());
@@ -203,7 +198,7 @@ wxGLCanvas::wxGLCanvas( wxWindow *parent,
   SetupPixelFormat(attribList);
   SetupPalette(palette);
 
   SetupPixelFormat(attribList);
   SetupPalette(palette);
 
-  m_glContext = new wxGLContext(TRUE, this, palette, shared );
+  m_glContext = new wxGLContext(true, this, palette, shared );
 }
 
 // Not very useful for wxMSW, but this is to be wxGTK compliant
 }
 
 // Not very useful for wxMSW, but this is to be wxGTK compliant
@@ -220,7 +215,6 @@ wxGLCanvas::wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared, wxWindowID i
   if ( ret )
   {
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
   if ( ret )
   {
     SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
-    SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
   }
 
   m_hDC = (WXHDC) ::GetDC((HWND) GetHWND());
   }
 
   m_hDC = (WXHDC) ::GetDC((HWND) GetHWND());
@@ -230,7 +224,7 @@ wxGLCanvas::wxGLCanvas( wxWindow *parent, const wxGLCanvas *shared, wxWindowID i
 
   wxGLContext *sharedContext=0;
   if (shared) sharedContext=shared->GetContext();
 
   wxGLContext *sharedContext=0;
   if (shared) sharedContext=shared->GetContext();
-  m_glContext = new wxGLContext(TRUE, this, palette, sharedContext );
+  m_glContext = new wxGLContext(true, this, palette, sharedContext );
 }
 
 wxGLCanvas::~wxGLCanvas()
 }
 
 wxGLCanvas::~wxGLCanvas()
@@ -250,7 +244,7 @@ bool wxGLCanvas::Create(wxWindow *parent,
                         long style,
                         const wxString& name)
 {
                         long style,
                         const wxString& name)
 {
-  static bool s_registeredGLCanvasClass = FALSE;
+  static bool s_registeredGLCanvasClass = false;
 
   // We have to register a special window class because we need
   // the CS_OWNDC style for GLCanvas.
 
   // We have to register a special window class because we need
   // the CS_OWNDC style for GLCanvas.
@@ -293,7 +287,7 @@ bool wxGLCanvas::Create(wxWindow *parent,
     if ( !::RegisterClass(&wndclass) )
     {
       wxLogLastError(wxT("RegisterClass(wxGLCanvasClass)"));
     if ( !::RegisterClass(&wndclass) )
     {
       wxLogLastError(wxT("RegisterClass(wxGLCanvasClass)"));
-      return FALSE;
+      return false;
     }
 
     // Register the GLCanvas class name for windows which don't do full repaint
     }
 
     // Register the GLCanvas class name for windows which don't do full repaint
@@ -307,16 +301,16 @@ bool wxGLCanvas::Create(wxWindow *parent,
 
         ::UnregisterClass(wxGLCanvasClassName, wxhInstance);
 
 
         ::UnregisterClass(wxGLCanvasClassName, wxhInstance);
 
-        return FALSE;
+        return false;
     }
 
     }
 
-    s_registeredGLCanvasClass = TRUE;
+    s_registeredGLCanvasClass = true;
   }
 
   }
 
-  wxCHECK_MSG( parent, FALSE, wxT("can't create wxWindow without parent") );
+  wxCHECK_MSG( parent, false, wxT("can't create wxWindow without parent") );
 
   if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
 
   if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
-    return FALSE;
+    return false;
 
   parent->AddChild(this);
 
 
   parent->AddChild(this);
 
@@ -472,8 +466,8 @@ void wxGLCanvas::SetupPalette(const wxPalette& palette)
 
     if (m_palette.Ok())
     {
 
     if (m_palette.Ok())
     {
-        SelectPalette((HDC) m_hDC, (HPALETTE) m_palette.GetHPALETTE(), FALSE);
-        RealizePalette((HDC) m_hDC);
+        ::SelectPalette((HDC) m_hDC, (HPALETTE) m_palette.GetHPALETTE(), FALSE);
+        ::RealizePalette((HDC) m_hDC);
     }
 }
 
     }
 }
 
@@ -553,10 +547,10 @@ void wxGLCanvas::OnQueryNewPalette(wxQueryNewPaletteEvent& event)
     ::SelectPalette((HDC) GetHDC(), (HPALETTE) GetPalette()->GetHPALETTE(), FALSE);
     ::RealizePalette((HDC) GetHDC());
     Refresh();
     ::SelectPalette((HDC) GetHDC(), (HPALETTE) GetPalette()->GetHPALETTE(), FALSE);
     ::RealizePalette((HDC) GetHDC());
     Refresh();
-    event.SetPaletteRealized(TRUE);
+    event.SetPaletteRealized(true);
   }
   else
   }
   else
-    event.SetPaletteRealized(FALSE);
+    event.SetPaletteRealized(false);
 }
 
 // I think this doesn't have to be propagated to child windows.
 }
 
 // I think this doesn't have to be propagated to child windows.
@@ -742,10 +736,10 @@ bool wxGLApp::InitGLVisual(int *attribList)
 
   if (pixelFormat == 0) {
     wxLogError(_("Failed to initialize OpenGL"));
 
   if (pixelFormat == 0) {
     wxLogError(_("Failed to initialize OpenGL"));
-    return FALSE;
+    return false;
   }
 
   }
 
-  return TRUE;
+  return true;
 }
 
 wxGLApp::~wxGLApp()
 }
 
 wxGLApp::~wxGLApp()