X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b6ccc13c2fd78a1165782fd5b5bdd2950fb8fb2e..7c60222510bc5e197b12f153c4bf05db66cb0f4a:/src/osx/cocoa/glcanvas.mm diff --git a/src/osx/cocoa/glcanvas.mm b/src/osx/cocoa/glcanvas.mm index f07fc0f64a..f9ff2a81bf 100644 --- a/src/osx/cocoa/glcanvas.mm +++ b/src/osx/cocoa/glcanvas.mm @@ -4,7 +4,7 @@ // Author: Stefan Csomor // Modified by: // Created: 1998-01-01 -// RCS-ID: $Id: glcanvas.cpp 54129 2008-06-11 19:30:52Z SC $ +// RCS-ID: $Id$ // Copyright: (c) Stefan Csomor // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -39,7 +39,9 @@ WXGLContext WXGLCreateContext( WXGLPixelFormat pixelFormat, WXGLContext shareCon { WXGLContext context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext: shareContext]; if ( !context ) + { wxFAIL_MSG("NSOpenGLContext creation failed"); + } return context ; } @@ -187,7 +189,7 @@ WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList) if ( !attribList[arg++] ) break; - return false; + return nil; } data[p++] = NSOpenGLPFASampleBuffers; @@ -204,7 +206,7 @@ WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList) if ( !attribList[arg++] ) break; - return false; + return nil; } data[p++] = NSOpenGLPFASamples; @@ -221,19 +223,6 @@ WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList) return [[NSOpenGLPixelFormat alloc] initWithAttributes:(NSOpenGLPixelFormatAttribute*) attribs]; } -bool wxGLContext::SetCurrent(const wxGLCanvas& win) const -{ - if ( !m_glContext ) - return false; - - [m_glContext setView: win.GetHandle() ]; - [m_glContext update]; - - [m_glContext makeCurrentContext]; - - return true; -} - @interface wxNSCustomOpenGLView : NSView { NSOpenGLContext* context; @@ -246,7 +235,7 @@ bool wxGLContext::SetCurrent(const wxGLCanvas& win) const + (void)initialize { static BOOL initialized = NO; - if (!initialized) + if (!initialized) { initialized = YES; wxOSXCocoaClassAddWXMethods( self ); @@ -273,8 +262,8 @@ bool wxGLCanvas::Create(wxWindow *parent, if ( !m_glFormat ) return false; - // m_macIsUserPane = false ; - + // DontCreatePeer(); + if ( !wxWindow::Create(parent, id, pos, size, style, name) ) return false; @@ -294,5 +283,27 @@ wxGLCanvas::~wxGLCanvas() WXGLDestroyPixelFormat(m_glFormat); } +bool wxGLCanvas::SwapBuffers() +{ + WXGLContext context = WXGLGetCurrentContext(); + wxCHECK_MSG(context, false, wxT("should have current context")); + + [context flushBuffer]; + + return true; +} + +bool wxGLContext::SetCurrent(const wxGLCanvas& win) const +{ + if ( !m_glContext ) + return false; + + [m_glContext setView: win.GetHandle() ]; + [m_glContext update]; + + [m_glContext makeCurrentContext]; + + return true; +} #endif // wxUSE_GLCANVAS