X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/afc67820efad2ebd8c9b5d554ab572003743f08d..08670ea85abf4b4946a9ce64971b591d7b1ee30b:/src/osx/carbon/glcanvas.cpp diff --git a/src/osx/carbon/glcanvas.cpp b/src/osx/carbon/glcanvas.cpp index d281274cda..8268a38ae6 100644 --- a/src/osx/carbon/glcanvas.cpp +++ b/src/osx/carbon/glcanvas.cpp @@ -257,19 +257,29 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const if ( !m_glContext ) return false; - AGLDrawable drawable = (AGLDrawable)GetWindowPort( - MAC_WXHWND(win.MacGetTopLevelWindowRef())); - GLint bufnummer = win.GetAglBufferName(); aglSetInteger(m_glContext, AGL_BUFFER_NAME, &bufnummer); //win.SetLastContext(m_glContext); const_cast(win).SetViewport(); - if ( !aglSetDrawable(m_glContext, drawable) ) + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + if ( UMAGetSystemVersion() >= 0x1050 ) { - wxLogAGLError("aglSetDrawable"); - return false; + aglSetWindowRef(m_glContext, win.MacGetTopLevelWindowRef()); + } + else +#endif + { + AGLDrawable drawable = (AGLDrawable)GetWindowPort( + MAC_WXHWND(win.MacGetTopLevelWindowRef())); + + if ( !aglSetDrawable(m_glContext, drawable) ) + { + wxLogAGLError("aglSetDrawable"); + return false; + } } return WXGLSetCurrentContext(m_glContext); @@ -311,7 +321,7 @@ that previously allocated surface is associated with the context (e.g., no new surface is created) and the subsequent call to aglSetDrawable will attach that surface. This allows multiple contexts to be attached to a single surface. Using the default buffer name zero, returns to one surface per -context behavior. +context behaviour. */ /* @@ -345,8 +355,17 @@ bool wxGLCanvas::Create(wxWindow *parent, m_bufferName = gCurrentBufferName++; aglSetInteger (m_dummyContext, AGL_BUFFER_NAME, &m_bufferName); - AGLDrawable drawable = (AGLDrawable)GetWindowPort(MAC_WXHWND(MacGetTopLevelWindowRef())); - aglSetDrawable(m_dummyContext, drawable); +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 + if ( UMAGetSystemVersion() >= 0x1050 ) + { + aglSetWindowRef(m_dummyContext, MacGetTopLevelWindowRef()); + } + else +#endif + { + AGLDrawable drawable = (AGLDrawable)GetWindowPort(MAC_WXHWND(MacGetTopLevelWindowRef())); + aglSetDrawable(m_dummyContext, drawable); + } m_macCanvasIsShown = true;