From b6ccc13c2fd78a1165782fd5b5bdd2950fb8fb2e Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Fri, 3 Jul 2009 12:22:40 +0000 Subject: [PATCH] compilation fix for wxOSX/Cocoa: don't use Carbon functions in common to all OS X ports OpenGL code git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61306 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/osx/glcanvas.h | 1 + src/osx/carbon/glcanvas.cpp | 18 ++++++++++++------ src/osx/cocoa/glcanvas.mm | 7 +++++++ src/osx/glcanvas_osx.cpp | 6 +++--- 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/include/wx/osx/glcanvas.h b/include/wx/osx/glcanvas.h index 1fc775c88e..8dfde849eb 100644 --- a/include/wx/osx/glcanvas.h +++ b/include/wx/osx/glcanvas.h @@ -24,6 +24,7 @@ WXDLLIMPEXP_GL WXGLContext WXGLCreateContext( WXGLPixelFormat pixelFormat, WXGLContext shareContext ); WXDLLIMPEXP_GL void WXGLDestroyContext( WXGLContext context ); WXDLLIMPEXP_GL WXGLContext WXGLGetCurrentContext(); +WXDLLIMPEXP_GL bool WXGLSetCurrentContext(WXGLContext context); WXDLLIMPEXP_GL void WXGLSwapBuffers( WXGLContext context ); WXDLLIMPEXP_GL WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList); diff --git a/src/osx/carbon/glcanvas.cpp b/src/osx/carbon/glcanvas.cpp index 111e298fd8..4084a19ecb 100644 --- a/src/osx/carbon/glcanvas.cpp +++ b/src/osx/carbon/glcanvas.cpp @@ -87,6 +87,17 @@ WXGLContext WXGLGetCurrentContext() return aglGetCurrentContext(); } +bool WXGLSetCurrentContext(WXGLContext context) +{ + if ( !aglSetCurrentContext(context) ) + { + wxLogAGLError("aglSetCurrentContext"); + return false; + } + + return true; +} + void WXGLDestroyPixelFormat( WXGLPixelFormat pixelFormat ) { if ( pixelFormat ) @@ -266,12 +277,7 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const return false; } - if ( !aglSetCurrentContext(m_glContext) ) - { - wxLogAGLError("aglSetCurrentContext"); - return false; - } - return true; + return WXGLSetCurrentContext(m_glContext); } // ---------------------------------------------------------------------------- diff --git a/src/osx/cocoa/glcanvas.mm b/src/osx/cocoa/glcanvas.mm index 83c99ce833..f07fc0f64a 100644 --- a/src/osx/cocoa/glcanvas.mm +++ b/src/osx/cocoa/glcanvas.mm @@ -61,6 +61,13 @@ WXGLContext WXGLGetCurrentContext() return [NSOpenGLContext currentContext]; } +bool WXGLSetCurrentContext(WXGLContext context) +{ + [context makeCurrentContext]; + + return true; +} + void WXGLDestroyPixelFormat( WXGLPixelFormat pixelFormat ) { if ( pixelFormat ) diff --git a/src/osx/glcanvas_osx.cpp b/src/osx/glcanvas_osx.cpp index 11e4d99bbe..465e0d06db 100644 --- a/src/osx/glcanvas_osx.cpp +++ b/src/osx/glcanvas_osx.cpp @@ -164,12 +164,12 @@ bool wxGLCanvasBase::IsExtensionSupported(const char *extension) if ( !ctx ) return false; - WXGLContext ctxOld = aglGetCurrentContext(); - aglSetCurrentContext(ctx); + WXGLContext ctxOld = WXGLGetCurrentContext(); + WXGLSetCurrentContext(ctx); wxString extensions = wxString::FromAscii(glGetString(GL_EXTENSIONS)); - aglSetCurrentContext(ctxOld); + WXGLSetCurrentContext(ctxOld); WXGLDestroyPixelFormat(fmt); WXGLDestroyContext(ctx); -- 2.47.2