X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/dc3065a56f1febf3de3b3bbf0904cf8fdc7f7c50..0bbe61b8c18a1795189f0cf73cc61c14a0fb846d:/src/common/glcmn.cpp diff --git a/src/common/glcmn.cpp b/src/common/glcmn.cpp index ffcb45a603..07db44d4c8 100644 --- a/src/common/glcmn.cpp +++ b/src/common/glcmn.cpp @@ -41,17 +41,28 @@ IMPLEMENT_CLASS(wxGLApp, wxApp) // implementation // ============================================================================ -void wxGLCanvasBase::SetCurrent(const wxGLContext& context) const +wxGLCanvasBase::wxGLCanvasBase() +{ +#if WXWIN_COMPATIBILITY_2_8 + m_glContext = NULL; +#endif + + // we always paint background entirely ourselves so prevent wx from erasing + // it to avoid flicker + SetBackgroundStyle(wxBG_STYLE_CUSTOM); +} + +bool wxGLCanvasBase::SetCurrent(const wxGLContext& context) const { // although on MSW it works even if the window is still hidden, it doesn't // work in other ports (notably X11-based ones) and documentation mentions // that SetCurrent() can only be called for a shown window, so check for it wxASSERT_MSG( IsShownOnScreen(), _T("can't make hidden GL canvas current") ); - context.SetCurrent(*wx_static_cast(const wxGLCanvas *, this)); + return context.SetCurrent(*wx_static_cast(const wxGLCanvas *, this)); } -bool wxGLCanvasBase::SetColour(const wxChar *colour) +bool wxGLCanvasBase::SetColour(const wxString& colour) { wxColour col = wxTheColourDatabase->Find(colour); if ( !col.Ok() )