]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/glcanvas.cpp
use correct scale when drawing
[wxWidgets.git] / src / osx / carbon / glcanvas.cpp
index 9d6e00924166a42b9300dd666d191a96d52cdb4d..8268a38ae6856a9c850a75cdc33e4de6ad60d65a 100644 (file)
@@ -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<wxGLCanvas&>(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);
@@ -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;