OpenGL changes for carbon and cocoa
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61907 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -15,17 +15,20 @@
|
|||||||
#ifdef __WXOSX_IPHONE__
|
#ifdef __WXOSX_IPHONE__
|
||||||
#import <OpenGLES/ES1/gl.h>
|
#import <OpenGLES/ES1/gl.h>
|
||||||
#import <OpenGLES/ES1/glext.h>
|
#import <OpenGLES/ES1/glext.h>
|
||||||
|
#define wxUSE_OPENGL_EMULATION 1
|
||||||
#else
|
#else
|
||||||
#include <OpenGL/gl.h>
|
#include <OpenGL/gl.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "wx/vector.h"
|
||||||
|
|
||||||
// low level calls
|
// low level calls
|
||||||
|
|
||||||
WXDLLIMPEXP_GL WXGLContext WXGLCreateContext( WXGLPixelFormat pixelFormat, WXGLContext shareContext );
|
WXDLLIMPEXP_GL WXGLContext WXGLCreateContext( WXGLPixelFormat pixelFormat, WXGLContext shareContext );
|
||||||
WXDLLIMPEXP_GL void WXGLDestroyContext( WXGLContext context );
|
WXDLLIMPEXP_GL void WXGLDestroyContext( WXGLContext context );
|
||||||
|
|
||||||
WXDLLIMPEXP_GL WXGLContext WXGLGetCurrentContext();
|
WXDLLIMPEXP_GL WXGLContext WXGLGetCurrentContext();
|
||||||
WXDLLIMPEXP_GL bool WXGLSetCurrentContext(WXGLContext context);
|
WXDLLIMPEXP_GL bool WXGLSetCurrentContext(WXGLContext context);
|
||||||
WXDLLIMPEXP_GL void WXGLSwapBuffers( WXGLContext context );
|
|
||||||
|
|
||||||
WXDLLIMPEXP_GL WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList);
|
WXDLLIMPEXP_GL WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList);
|
||||||
WXDLLIMPEXP_GL void WXGLDestroyPixelFormat( WXGLPixelFormat pixelFormat );
|
WXDLLIMPEXP_GL void WXGLDestroyPixelFormat( WXGLPixelFormat pixelFormat );
|
||||||
|
@@ -77,11 +77,6 @@ void WXGLDestroyContext( WXGLContext context )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void WXGLSwapBuffers( WXGLContext context )
|
|
||||||
{
|
|
||||||
aglSwapBuffers(context);
|
|
||||||
}
|
|
||||||
|
|
||||||
WXGLContext WXGLGetCurrentContext()
|
WXGLContext WXGLGetCurrentContext()
|
||||||
{
|
{
|
||||||
return aglGetCurrentContext();
|
return aglGetCurrentContext();
|
||||||
@@ -367,6 +362,15 @@ wxGLCanvas::~wxGLCanvas()
|
|||||||
WXGLDestroyContext(m_dummyContext);
|
WXGLDestroyContext(m_dummyContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool wxGLCanvas::SwapBuffers()
|
||||||
|
{
|
||||||
|
WXGLContext context = WXGLGetCurrentContext();
|
||||||
|
wxCHECK_MSG(context, false, wxT("should have current context"));
|
||||||
|
|
||||||
|
aglSwapBuffers(context);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
void wxGLCanvas::SetViewport()
|
void wxGLCanvas::SetViewport()
|
||||||
{
|
{
|
||||||
if ( !m_needsUpdate )
|
if ( !m_needsUpdate )
|
||||||
|
@@ -221,19 +221,6 @@ WXGLPixelFormat WXGLChoosePixelFormat(const int *attribList)
|
|||||||
return [[NSOpenGLPixelFormat alloc] initWithAttributes:(NSOpenGLPixelFormatAttribute*) attribs];
|
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
|
@interface wxNSCustomOpenGLView : NSView
|
||||||
{
|
{
|
||||||
NSOpenGLContext* context;
|
NSOpenGLContext* context;
|
||||||
@@ -294,5 +281,27 @@ wxGLCanvas::~wxGLCanvas()
|
|||||||
WXGLDestroyPixelFormat(m_glFormat);
|
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
|
#endif // wxUSE_GLCANVAS
|
||||||
|
@@ -35,8 +35,6 @@
|
|||||||
|
|
||||||
#include "wx/osx/private.h"
|
#include "wx/osx/private.h"
|
||||||
|
|
||||||
#include <AGL/agl.h>
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxGLCanvas
|
// wxGLCanvas
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
@@ -147,15 +145,6 @@ bool wxGLCanvasBase::IsDisplaySupported(const int *attribList)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxGLCanvas::SwapBuffers()
|
|
||||||
{
|
|
||||||
WXGLContext context = WXGLGetCurrentContext();
|
|
||||||
wxCHECK_MSG(context, false, wxT("should have current context"));
|
|
||||||
|
|
||||||
WXGLSwapBuffers(context);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxGLCanvasBase::IsExtensionSupported(const char *extension)
|
bool wxGLCanvasBase::IsExtensionSupported(const char *extension)
|
||||||
{
|
{
|
||||||
// we need a valid context to query for extensions.
|
// we need a valid context to query for extensions.
|
||||||
|
Reference in New Issue
Block a user