X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7fc641aff97d5f100b94cabb0288d3c4261e5328..6cef0db28018fd2644ee4e38af715872e5242459:/src/mac/carbon/glcanvas.cpp?ds=sidebyside diff --git a/src/mac/carbon/glcanvas.cpp b/src/mac/carbon/glcanvas.cpp index a65fbe680a..5fe1661ddd 100644 --- a/src/mac/carbon/glcanvas.cpp +++ b/src/mac/carbon/glcanvas.cpp @@ -75,20 +75,27 @@ wxGLContext::~wxGLContext() } } -void wxGLContext::SetCurrent(const wxGLCanvas& win) const +bool wxGLContext::SetCurrent(const wxGLCanvas& win) const { if ( !m_aglContext ) - return; + return false; AGLDrawable drawable = (AGLDrawable)GetWindowPort( MAC_WXHWND(win.MacGetTopLevelWindowRef())); if ( !aglSetDrawable(m_aglContext, drawable) ) + { wxLogAGLError("aglSetDrawable"); + return false; + } if ( !aglSetCurrentContext(m_aglContext) ) + { wxLogAGLError("aglSetCurrentContext"); + return false; + } wx_const_cast(wxGLCanvas&, win).SetViewport(); + return true; } // ---------------------------------------------------------------------------- @@ -305,12 +312,26 @@ wxGLCanvas::~wxGLCanvas() aglDestroyPixelFormat(m_aglFormat); } -void wxGLCanvas::SwapBuffers() +/* static */ +bool wxGLCanvasBase::IsDisplaySupported(const int *attribList) +{ + AGLPixelFormat aglFormat = ChoosePixelFormat(attribList); + + if ( !aglFormat ) + return false; + + aglDestroyPixelFormat(aglFormat); + + return true; +} + +bool wxGLCanvas::SwapBuffers() { AGLContext context = aglGetCurrentContext(); - wxCHECK_RET( context, _T("should have current context") ); + wxCHECK_MSG(context, false, _T("should have current context")); aglSwapBuffers(context); + return true; } void wxGLCanvas::SetViewport() @@ -394,7 +415,7 @@ void wxGLCanvas::MacTopLevelWindowChangedPosition() void wxGLCanvas::MacVisibilityChanged() { - if ( MacIsReallyShown() != m_macCanvasIsShown ) + if ( IsShownOnScreen() != m_macCanvasIsShown ) { m_macCanvasIsShown = !m_macCanvasIsShown; MacUpdateView();