X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/54385bdb3f485f25656511b5a6b1b8ced03e0688..0906c58d0533380cd706b4de2a88615f0f187995:/src/x11/glcanvas.cpp diff --git a/src/x11/glcanvas.cpp b/src/x11/glcanvas.cpp index 5b619202a0..42f4b854d1 100644 --- a/src/x11/glcanvas.cpp +++ b/src/x11/glcanvas.cpp @@ -1,6 +1,6 @@ ///////////////////////////////////////////////////////////////////////////// // Name: glcanvas.cpp -// Purpose: wxGLCanvas, for using OpenGL with wxWindows +// Purpose: wxGLCanvas, for using OpenGL with wxWidgets // Uses the GLX extension. // Author: Julian Smart and Wolfram Gloger // Modified by: @@ -138,28 +138,32 @@ void wxGLContext::SetCurrent() void wxGLContext::SetColour(const wxChar *colour) { - wxColour *the_colour = wxTheColourDatabase->FindColour(colour); - if(the_colour) { - GLboolean b; - glGetBooleanv(GL_RGBA_MODE, &b); - if(b) { - glColor3ub(the_colour->Red(), - the_colour->Green(), - the_colour->Blue()); - } else { + wxColour the_colour = wxTheColourDatabase->Find(colour); + if(the_colour.Ok()) + { + GLboolean b; + glGetBooleanv(GL_RGBA_MODE, &b); + if(b) + { + glColor3ub(the_colour.Red(), + the_colour.Green(), + the_colour.Blue()); + } + else + { #ifdef __WXMOTIF__ - the_colour->AllocColour(m_window->GetXDisplay()); + the_colour.AllocColour(m_window->GetXDisplay()); #else - the_colour->CalcPixel(wxTheApp->GetMainColormap(wxGetDisplay())); + the_colour.CalcPixel(wxTheApp->GetMainColormap(wxGetDisplay())); #endif - GLint pix = (GLint)the_colour->GetPixel(); - if(pix == -1) + GLint pix = (GLint)the_colour.GetPixel(); + if(pix == -1) { wxLogError(wxT("wxGLCanvas: cannot allocate color\n")); - return; + return; } - glIndexi(pix); - } + glIndexi(pix); + } } }