include/vcl/opengl/OpenGLContext.hxx | 5 +++++ vcl/source/opengl/OpenGLContext.cxx | 14 ++++++++++++++ 2 files changed, 19 insertions(+)
New commits: commit de9c53e9577f6cac1c168b998512642ec6fabacb Author: Markus Mohrhard <[email protected]> Date: Mon Sep 1 01:59:57 2014 +0200 working OSX OpenGLContext In contrast to the CGL solution this renders not only to a FBO but to a rendering context. Change-Id: I083795cab5ea6372efac312a1f5e0053066121ea diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index c8ace97..ece37f6 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -31,6 +31,7 @@ #include <GL/wglext.h> #elif defined( MACOSX ) #include <OpenGL/OpenGL.h> +@class NSOpenGLView; #elif defined( IOS ) #elif defined( ANDROID ) #elif defined( UNX ) @@ -180,6 +181,10 @@ private: SAL_DLLPRIVATE bool initWindow(); SAL_DLLPRIVATE bool ImplInit(); +#if defined(MACOSX) + NSOpenGLView* getOpenGLView(); +#endif + GLWindow m_aGLWin; boost::scoped_ptr<Window> m_pWindow; Window* mpWindow; //points to m_pWindow or the parent window, don't delete it diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index 3161cf8..2ae0317 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -483,6 +483,8 @@ bool OpenGLContext::ImplInit() #elif defined( MACOSX ) + NSOpenGLView* pView = getOpenGLView(); + OpenGLWrapper::makeCurrent(pView); #elif defined( IOS ) @@ -832,6 +834,8 @@ void OpenGLContext::makeCurrent() SAL_WARN("vcl.opengl", "OpenGLContext::makeCurrent(): wglMakeCurrent failed: " << GetLastError()); } #elif defined( MACOSX ) + NSOpenGLView* pView = getOpenGLView(); + OpenGLWrapper::makeCurrent(pView); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) @@ -844,6 +848,7 @@ void OpenGLContext::resetCurrent() #if defined( WNT ) wglMakeCurrent( m_aGLWin.hDC, 0 ); #elif defined( MACOSX ) + OpenGLWrapper::resetCurrent(); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) @@ -856,6 +861,8 @@ void OpenGLContext::swapBuffers() #if defined( WNT ) SwapBuffers(m_aGLWin.hDC); #elif defined( MACOSX ) + NSOpenGLView* pView = getOpenGLView(); + OpenGLWrapper::swapBuffers(pView); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) @@ -893,4 +900,11 @@ const SystemChildWindow* OpenGLContext::getChildWindow() const return m_pChildWindow; } +#if defined(MACOSX) +NSOpenGLView* OpenGLContext::getOpenGLView() +{ + return reinterpret_cast<NSOpenGLView*>(m_pChildWindow->GetSystemData()->mpNSView); +} +#endif + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
