avmedia/source/viewer/mediawindow_impl.cxx | 2 canvas/opengl/linearMultiColorGradientFragmentShader.glsl | 13 canvas/opengl/radialMultiColorGradientFragmentShader.glsl | 13 canvas/opengl/rectangularMultiColorGradientFragmentShader.glsl | 15 canvas/opengl/rectangularTwoColorGradientFragmentShader.glsl | 4 canvas/source/factory/cf_service.cxx | 7 canvas/source/opengl/ogl_canvashelper.cxx | 5 canvas/source/opengl/ogl_spritedevicehelper.cxx | 13 canvas/source/tools/canvastools.cxx | 1 chart2/opengl/README.deprecated | 23 chart2/opengl/backgroundFragmentShader.glsl | 4 chart2/opengl/backgroundVertexShader.glsl | 8 chart2/opengl/commonFragmentShader.glsl | 7 chart2/opengl/commonVertexShader.glsl | 6 chart2/opengl/debugFragmentShader.glsl | 4 chart2/opengl/debugVertexShader.glsl | 6 chart2/opengl/pickingFragmentShader.glsl | 10 chart2/opengl/pickingVertexShader.glsl | 8 chart2/opengl/renderTextureFragmentShader.glsl | 7 chart2/opengl/renderTextureVertexShader.glsl | 8 chart2/opengl/screenTextFragmentShader.glsl | 10 chart2/opengl/screenTextVertexShader.glsl | 8 chart2/opengl/shape3DFragmentShader.glsl | 1 chart2/opengl/shape3DFragmentShaderBatch.glsl | 1 chart2/opengl/shape3DFragmentShaderBatchScroll.glsl | 1 chart2/opengl/shape3DFragmentShaderV300.glsl | 7 chart2/opengl/shape3DVertexShader.glsl | 2 chart2/opengl/shape3DVertexShaderBatch.glsl | 2 chart2/opengl/shape3DVertexShaderBatchScroll.glsl | 2 chart2/opengl/shape3DVertexShaderV300.glsl | 11 chart2/opengl/symbolFragmentShader.glsl | 4 chart2/opengl/symbolVertexShader.glsl | 6 chart2/opengl/textFragmentShader.glsl | 11 chart2/opengl/textFragmentShaderBatch.glsl | 3 chart2/opengl/textVertexShader.glsl | 8 chart2/opengl/textVertexShaderBatch.glsl | 1 chart2/source/view/charttypes/GL3DBarChart.cxx | 3 chart2/source/view/main/GL3DRenderer.cxx | 115 chart2/source/view/main/OpenGLRender.cxx | 25 include/vcl/opengl/OpenGLContext.hxx | 14 include/vcl/opengl/OpenGLHelper.hxx | 4 include/vcl/sysdata.hxx | 6 slideshow/Library_OGLTrans.mk | 13 slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx | 593 ++-- slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx | 75 slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx | 46 slideshow/source/engine/OGLTrans/mac/OGLTrans_Shaders.h | 96 slideshow/source/engine/OGLTrans/mac/OGLTrans_Shaders.m | 233 - slideshow/source/engine/OGLTrans/mac/OGLTrans_TransitionImpl.hxx | 501 --- slideshow/source/engine/OGLTrans/mac/OGLTrans_TransitionImpl.mm | 1316 ---------- slideshow/source/engine/OGLTrans/mac/OGLTrans_TransitionerImpl.mm | 1074 -------- slideshow/source/engine/OGLTrans/mac/aquaOpenGLView.h | 48 slideshow/source/engine/OGLTrans/mac/aquaOpenGLView.m | 195 - slideshow/source/engine/shapes/viewmediashape.cxx | 2 vcl/Library_vclopengl.mk | 23 vcl/inc/OpenGLWrapper.hxx | 28 vcl/inc/osx/salobj.h | 2 vcl/osx/OpenGLWrapper.cxx | 27 vcl/osx/salinst.cxx | 5 vcl/osx/salobj.cxx | 46 vcl/source/opengl/OpenGLContext.cxx | 70 vcl/source/opengl/OpenGLHelper.cxx | 22 vcl/source/window/openglwin.cxx | 6 63 files changed, 891 insertions(+), 3939 deletions(-)
New commits: commit 9dc883623f85f2ceec22c3e5c1750ff7acd3cac5 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 2 01:11:24 2014 +0200 prevent potential crash if no SystemWindowData is passed Change-Id: I92a084bba88a4c34e93aac9b547a986ea6381790 diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx index 8cccd1b..7932f8a 100644 --- a/vcl/osx/salobj.cxx +++ b/vcl/osx/salobj.cxx @@ -47,7 +47,7 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat [mpFrame->getNSView() addSubview: mpClipView]; [mpClipView setHidden: YES]; } - if (pWindowData->bOpenGL) + if (pWindowData && pWindowData->bOpenGL) { NSOpenGLPixelFormat* pixFormat = NULL; commit 603d9c1a01a37358f04cee4852838b7ccaecb648 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 2 01:10:58 2014 +0200 fix indentation Change-Id: I558b6c0c1be917fbf6df722d4f0268c271bb888c diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx index 816eaf1..8cccd1b 100644 --- a/vcl/osx/salobj.cxx +++ b/vcl/osx/salobj.cxx @@ -87,7 +87,8 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat { maSysData.mpNSView = [[NSView alloc] initWithFrame: aInitFrame]; } - if( maSysData.mpNSView ) + + if( maSysData.mpNSView ) { if( mpClipView ) [mpClipView setDocumentView: maSysData.mpNSView]; commit be7d3df141bff7560545b4a54a7d8d99d730b17e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 2 01:05:33 2014 +0200 remove SAL_DEBUGs introduced earlier Change-Id: I901188b5b0a3e64e2407d039dd80f89cce8cf6de diff --git a/canvas/source/factory/cf_service.cxx b/canvas/source/factory/cf_service.cxx index 07ee8b7..6d413fd 100644 --- a/canvas/source/factory/cf_service.cxx +++ b/canvas/source/factory/cf_service.cxx @@ -169,11 +169,6 @@ CanvasFactory::CanvasFactory( Reference<XComponentContext> const & xContext ) : xNameAccess, UNO_QUERY_THROW); Sequence<OUString> serviceNames = xNameAccess->getElementNames(); - for (sal_Int32 i = 0; i < serviceNames.getLength(); ++i) - { - SAL_DEBUG(serviceNames[i]); - } - const OUString* pCurr = serviceNames.getConstArray(); const OUString* const pEnd = pCurr + serviceNames.getLength(); while( pCurr != pEnd ) @@ -188,25 +183,13 @@ CanvasFactory::CanvasFactory( Reference<XComponentContext> const & xContext ) : if( (xEntryNameAccess->getByName("PreferredImplementations") >>= implementationList) ) { m_aAvailableImplementations.push_back( std::make_pair(*pCurr,implementationList) ); - for (sal_Int32 i = 0; i < implementationList.getLength(); ++i) - { - SAL_DEBUG("available :" << implementationList[i]); - } } if( (xEntryNameAccess->getByName("AcceleratedImplementations") >>= implementationList) ) { - for (sal_Int32 i = 0; i < implementationList.getLength(); ++i) - { - SAL_DEBUG("accelerated: " <<implementationList[i]); - } m_aAcceleratedImplementations.push_back( std::make_pair(*pCurr,implementationList) ); } if( (xEntryNameAccess->getByName("AntialiasingImplementations") >>= implementationList) ) { - for (sal_Int32 i = 0; i < implementationList.getLength(); ++i) - { - SAL_DEBUG("aa implemented: " << implementationList[i]); - } m_aAAImplementations.push_back( std::make_pair(*pCurr,implementationList) ); } @@ -294,7 +277,6 @@ Reference<XInterface> CanvasFactory::use( Reference<XComponentContext> const & xContext ) const { try { - SAL_DEBUG("use: " << serviceName); return m_xContext->getServiceManager()->createInstanceWithArgumentsAndContext( serviceName, args, xContext); } @@ -337,7 +319,6 @@ Reference<XInterface> CanvasFactory::lookupAndUse( Reference<XComponentContext> const & xContext ) const { ::osl::MutexGuard guard(m_mutex); - SAL_DEBUG(serviceName); // forcing last entry from impl list, if config flag set bool bForceLastEntry(false); diff --git a/canvas/source/opengl/ogl_spritedevicehelper.cxx b/canvas/source/opengl/ogl_spritedevicehelper.cxx index 2e4b592..58a59ea 100644 --- a/canvas/source/opengl/ogl_spritedevicehelper.cxx +++ b/canvas/source/opengl/ogl_spritedevicehelper.cxx @@ -389,7 +389,6 @@ namespace oglcanvas uno::Reference<rendering::XColorSpace> SpriteDeviceHelper::getColorSpace() const { - SAL_DEBUG("called SpriteDeviceHelper::getColorSpace()"); // always the same return uno::Reference<rendering::XColorSpace>( ::canvas::tools::getStdColorSpace(), diff --git a/chart2/source/view/main/GL3DRenderer.cxx b/chart2/source/view/main/GL3DRenderer.cxx index 999b9df..cde4356 100644 --- a/chart2/source/view/main/GL3DRenderer.cxx +++ b/chart2/source/view/main/GL3DRenderer.cxx @@ -218,9 +218,7 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders() m_3DModelID = glGetUniformLocation(m_3DProID, "M"); m_3DNormalMatrixID = glGetUniformLocation(m_3DProID, "normalMatrix"); m_3DVertexID = glGetAttribLocation(m_3DProID, "vertexPositionModelspace"); - SAL_DEBUG("first " << m_3DVertexID); m_3DNormalID = glGetAttribLocation(m_3DProID, "vertexNormalModelspace"); - SAL_DEBUG("second " << m_3DNormalID); CHECK_GL_ERROR(); if (m_bScrollFlag) { @@ -289,30 +287,22 @@ void OpenGL3DRenderer::ShaderResources::LoadShaders() m_TextProID = OpenGLHelper::LoadShaders("textVertexShader", "textFragmentShader"); m_TextMatrixID = glGetUniformLocation(m_TextProID, "MVP"); m_TextVertexID = glGetAttribLocation(m_TextProID, "vPosition"); - SAL_DEBUG(m_TextVertexID); m_TextTexCoordID = glGetAttribLocation(m_TextProID, "texCoord"); - SAL_DEBUG(m_TextTexCoordID); m_TextTexID = glGetUniformLocation(m_TextProID, "TextTex"); } CHECK_GL_ERROR(); m_ScreenTextProID = OpenGLHelper::LoadShaders("screenTextVertexShader", "screenTextFragmentShader"); m_ScreenTextVertexID = glGetAttribLocation(m_ScreenTextProID, "vPosition"); - SAL_DEBUG(m_ScreenTextVertexID); m_ScreenTextTexCoordID = glGetAttribLocation(m_ScreenTextProID, "texCoord"); - SAL_DEBUG(m_ScreenTextTexCoordID); m_ScreenTextTexID = glGetUniformLocation(m_ScreenTextProID, "TextTex"); m_ScreenTextColorID = glGetUniformLocation(m_ScreenTextProID, "textColor"); CHECK_GL_ERROR(); m_CommonProID = OpenGLHelper::LoadShaders("commonVertexShader", "commonFragmentShader"); - SAL_DEBUG(m_CommonProID); m_MatrixID = glGetUniformLocation(m_CommonProID, "MVP"); - SAL_DEBUG(m_MatrixID); m_2DColorID = glGetUniformLocation(m_CommonProID, "vColor"); - SAL_DEBUG(m_2DColorID); m_2DVertexID = glGetAttribLocation(m_CommonProID, "vPosition"); - SAL_DEBUG(m_2DVertexID); CHECK_GL_ERROR(); } @@ -878,7 +868,6 @@ void OpenGL3DRenderer::RenderLine3D(const Polygon3DInfo& polygon) // 1rst attribute buffer : vertices glEnableVertexAttribArray(maResources.m_2DVertexID); - SAL_DEBUG(maResources.m_2DVertexID); CHECK_GL_ERROR(); glBindBuffer(GL_ARRAY_BUFFER, m_VertexBuffer); CHECK_GL_ERROR(); commit 200dd78946a70a4c08a4d479e845b3b724bbecc4 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 2 01:01:37 2014 +0200 fix crash when creating chart Change-Id: Ie6e38a0461a10cc33ff3d85cbf3b35ffab0efd59 diff --git a/vcl/source/window/openglwin.cxx b/vcl/source/window/openglwin.cxx index cfe6e6a..1151a4d 100644 --- a/vcl/source/window/openglwin.cxx +++ b/vcl/source/window/openglwin.cxx @@ -10,6 +10,7 @@ #include <vcl/openglwin.hxx> #include <vcl/opengl/OpenGLContext.hxx> #include <vcl/event.hxx> +#include <vcl/sysdata.hxx> class OpenGLWindowImpl { @@ -21,9 +22,10 @@ private: boost::scoped_ptr<SystemChildWindow> mpChildWindow; }; -OpenGLWindowImpl::OpenGLWindowImpl(Window* pWindow): - mpChildWindow(new SystemChildWindow(pWindow)) +OpenGLWindowImpl::OpenGLWindowImpl(Window* pWindow) { + SystemWindowData aData = OpenGLContext::generateWinData(pWindow, false); + mpChildWindow.reset(new SystemChildWindow(pWindow, 0, &aData)); mpChildWindow->Show(); maContext.init(mpChildWindow.get()); pWindow->SetMouseTransparent(false); commit 1ba10b7b307ffdb098049c303719da4aa6752502 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Tue Sep 2 00:20:37 2014 +0200 fix build Change-Id: I13c67763ec3cb940292199f3e9e0f3942446959f diff --git a/avmedia/source/viewer/mediawindow_impl.cxx b/avmedia/source/viewer/mediawindow_impl.cxx index b608b85..f4c8856 100644 --- a/avmedia/source/viewer/mediawindow_impl.cxx +++ b/avmedia/source/viewer/mediawindow_impl.cxx @@ -515,7 +515,7 @@ void MediaWindowImpl::onURLChanged() #if HAVE_FEATURE_GLTF else if ( m_sMimeType == AVMEDIA_MIMETYPE_JSON ) { - SystemWindowData aWinData = OpenGLContext::generateWinData(this); + SystemWindowData aWinData = OpenGLContext::generateWinData(this, false); mpChildWindow.reset(new MediaChildWindow(this,&aWinData)); mbEventTransparent = false; } diff --git a/slideshow/source/engine/shapes/viewmediashape.cxx b/slideshow/source/engine/shapes/viewmediashape.cxx index 9ebc014..fd3c507 100644 --- a/slideshow/source/engine/shapes/viewmediashape.cxx +++ b/slideshow/source/engine/shapes/viewmediashape.cxx @@ -477,7 +477,7 @@ namespace slideshow Size( aAWTRect.Width, aAWTRect.Height ) ); mpEventHandlerParent->EnablePaint(false); mpEventHandlerParent->Show(); - SystemWindowData aWinData = OpenGLContext::generateWinData(mpEventHandlerParent.get()); + SystemWindowData aWinData = OpenGLContext::generateWinData(mpEventHandlerParent.get(), false); mpMediaWindow.reset(new SystemChildWindow(mpEventHandlerParent.get(), 0, &aWinData)); mpMediaWindow->SetPosSizePixel( Point( 0, 0 ), Size( aAWTRect.Width, aAWTRect.Height ) ); diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx index 8cccd1b..816eaf1 100644 --- a/vcl/osx/salobj.cxx +++ b/vcl/osx/salobj.cxx @@ -87,8 +87,7 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat { maSysData.mpNSView = [[NSView alloc] initWithFrame: aInitFrame]; } - - if( maSysData.mpNSView ) + if( maSysData.mpNSView ) { if( mpClipView ) [mpClipView setDocumentView: maSysData.mpNSView]; commit dee6c7ca318b310996ecc997cd64be026c0f76d2 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Sep 2 00:00:11 2014 +0200 fix indentation Change-Id: I4f299e510fecb57f763818743d357ae6bf2333af diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx index 816eaf1..8cccd1b 100644 --- a/vcl/osx/salobj.cxx +++ b/vcl/osx/salobj.cxx @@ -87,7 +87,8 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat { maSysData.mpNSView = [[NSView alloc] initWithFrame: aInitFrame]; } - if( maSysData.mpNSView ) + + if( maSysData.mpNSView ) { if( mpClipView ) [mpClipView setDocumentView: maSysData.mpNSView]; commit 8b384c946cb6725d691123152f5e7c6ac0692185 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 23:59:24 2014 +0200 support legacy and core context on OSX Change-Id: Ib8cadb3f182ce49c0ca8b6ccaa95960eb8e5f9ae diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index 7ce6763..79f97fc 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -181,7 +181,7 @@ public: bool supportMultiSampling() const; - static SystemWindowData generateWinData(Window* pParent); + static SystemWindowData generateWinData(Window* pParent, bool bRequestLegacyContext); private: SAL_DLLPRIVATE bool initWindow(); diff --git a/include/vcl/sysdata.hxx b/include/vcl/sysdata.hxx index 8ac816a..4cfc737 100644 --- a/include/vcl/sysdata.hxx +++ b/include/vcl/sysdata.hxx @@ -178,6 +178,7 @@ struct SystemWindowData #if defined( WNT ) // meaningless on Windows #elif defined( MACOSX ) bool bOpenGL; // create a OpenGL providing NSView + bool bLegacy; // create a 2.1 legacy context, only valid if bOpenGL == true // Nothing #elif defined( ANDROID ) // Nothing diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx index 7c7ad5d..816eaf1 100644 --- a/vcl/osx/salobj.cxx +++ b/vcl/osx/salobj.cxx @@ -49,17 +49,39 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowDat } if (pWindowData->bOpenGL) { - NSOpenGLPixelFormatAttribute aAttributes[] = + NSOpenGLPixelFormat* pixFormat = NULL; + + if (pWindowData->bLegacy) + { + NSOpenGLPixelFormatAttribute aAttributes[] = + { + NSOpenGLPFADoubleBuffer, + NSOpenGLPFAAlphaSize, 8, + NSOpenGLPFAColorSize, 24, + NSOpenGLPFAMultisample, + NSOpenGLPFASampleBuffers, (NSOpenGLPixelFormatAttribute)1, + NSOpenGLPFASamples, (NSOpenGLPixelFormatAttribute)4, + 0 + }; + pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:aAttributes]; + } + else { - NSOpenGLPFADoubleBuffer, - NSOpenGLPFAAlphaSize, 8, - NSOpenGLPFAColorSize, 24, - 0 - }; + NSOpenGLPixelFormatAttribute aAttributes[] = + { + NSOpenGLPFAOpenGLProfile, NSOpenGLProfileVersion3_2Core, + NSOpenGLPFADoubleBuffer, + NSOpenGLPFAAlphaSize, 8, + NSOpenGLPFAColorSize, 24, + NSOpenGLPFAMultisample, + NSOpenGLPFASampleBuffers, (NSOpenGLPixelFormatAttribute)1, + NSOpenGLPFASamples, (NSOpenGLPixelFormatAttribute)4, + 0 + }; + pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:aAttributes]; + } - NSOpenGLPixelFormat* pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:aAttributes]; maSysData.mpNSView = [[NSOpenGLView alloc] initWithFrame: aInitFrame pixelFormat:pixFormat]; - } else { diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index d7ea0ee..18e0a02 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -615,7 +615,7 @@ bool OpenGLContext::initWindow() { if( !m_pChildWindow ) { - SystemWindowData winData = generateWinData(mpWindow); + SystemWindowData winData = generateWinData(mpWindow, false); m_pChildWindow = new SystemChildWindow(mpWindow, 0, &winData, false); m_pChildWindowGC.reset(m_pChildWindow); } @@ -642,7 +642,7 @@ bool OpenGLContext::initWindow() { if( !m_pChildWindow ) { - SystemWindowData winData = generateWinData(mpWindow); + SystemWindowData winData = generateWinData(mpWindow, mbRequestLegacyContext); m_pChildWindow = new SystemChildWindow(mpWindow, 0, &winData, false); m_pChildWindowGC.reset(m_pChildWindow); } @@ -673,7 +673,7 @@ bool OpenGLContext::initWindow() bool OpenGLContext::initWindow() { const SystemEnvData* pChildSysData = 0; - SystemWindowData winData = generateWinData(mpWindow); + SystemWindowData winData = generateWinData(mpWindow, false); if( winData.pVisual ) { if( !m_pChildWindow ) @@ -725,11 +725,13 @@ bool OpenGLContext::initWindow() #if defined( WNT ) || defined( MACOSX ) || defined( IOS ) || defined( ANDROID ) -SystemWindowData OpenGLContext::generateWinData(Window* /*pParent*/) +SystemWindowData OpenGLContext::generateWinData(Window* /*pParent*/, bool bRequestLegacyContext) { + (void) bRequestLegacyContext; SystemWindowData aWinData; #if defined(MACOSX) aWinData.bOpenGL = true; + aWinData.bLegacy = bRequestLegacyContext; #endif aWinData.nSize = sizeof(aWinData); return aWinData; @@ -750,7 +752,7 @@ void initOpenGLFunctionPointers() } -SystemWindowData OpenGLContext::generateWinData(Window* pParent) +SystemWindowData OpenGLContext::generateWinData(Window* pParent, bool) { SystemWindowData aWinData; aWinData.nSize = sizeof(aWinData); commit 6626d135299f91c20b338a858af8f42f4e3d07d0 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 23:10:54 2014 +0200 fix non OSX build again Change-Id: I3faccc9f70b1afb7cbefd5ba9b26612eb7cda1fd diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index b908f05..d7ea0ee 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -17,9 +17,11 @@ #include <vcl/bmpacc.hxx> #include <vcl/graph.hxx> +#if defined(MACOSX) #include <premac.h> #include "OpenGLWrapper.hxx" #include <postmac.h> +#endif using namespace com::sun::star; commit e111caa906f683f3e31a015e3a40414320271541 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 22:14:59 2014 +0200 remove unused method Change-Id: I17d3e3fa4671d0004e2d7918ea3bcad1a7bcd2b5 diff --git a/vcl/inc/OpenGLWrapper.hxx b/vcl/inc/OpenGLWrapper.hxx index 6911c33..0b90b41 100644 --- a/vcl/inc/OpenGLWrapper.hxx +++ b/vcl/inc/OpenGLWrapper.hxx @@ -23,8 +23,6 @@ public: static void swapBuffers(NSOpenGLView* pView); static void makeCurrent(NSOpenGLView* pView); static void resetCurrent(); - - static void init(NSOpenGLView* pView); }; /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/osx/OpenGLWrapper.cxx b/vcl/osx/OpenGLWrapper.cxx index dc9ad7a..fc008f4 100644 --- a/vcl/osx/OpenGLWrapper.cxx +++ b/vcl/osx/OpenGLWrapper.cxx @@ -24,8 +24,4 @@ void OpenGLWrapper::resetCurrent() [NSOpenGLContext clearCurrentContext]; } -void OpenGLWrapper::init(NSOpenGLView* pView) -{ -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 6ee477283d185f990892598593616d8951ce0e92 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 22:14:07 2014 +0200 fix non Mac build Change-Id: I88df76fc1757b8372cd319ae1ecd7976b01554a1 diff --git a/vcl/Library_vclopengl.mk b/vcl/Library_vclopengl.mk index e5fbbfe..e61dd8a 100644 --- a/vcl/Library_vclopengl.mk +++ b/vcl/Library_vclopengl.mk @@ -38,6 +38,12 @@ $(eval $(call gb_Library_use_libraries,vclopengl,\ $(gb_UWINAPI) \ )) +$(eval $(call gb_Library_add_exception_objects,vclopengl,\ + vcl/source/opengl/OpenGLContext \ + vcl/source/opengl/OpenGLHelper \ + vcl/source/window/openglwin \ +)) + ifeq ($(OS),MACOSX) $(eval $(call gb_Library_add_cxxflags,vclopengl,\ @@ -53,9 +59,6 @@ $(eval $(call gb_Library_add_libs,vcl,\ $(eval $(call gb_Library_add_exception_objects,vclopengl,\ vcl/osx/OpenGLWrapper \ - vcl/source/opengl/OpenGLContext \ - vcl/source/opengl/OpenGLHelper \ - vcl/source/window/openglwin \ )) endif commit 0e60b3375cacff4a7440d8f781f8b1a789b6b122 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 07:31:15 2014 +0200 fix OSX build don't require Obj-C features in header files Change-Id: Ibeea090b6b2bda191b8e8ffd08f15907653fd830 diff --git a/include/vcl/opengl/OpenGLContext.hxx b/include/vcl/opengl/OpenGLContext.hxx index 59ac433..7ce6763 100644 --- a/include/vcl/opengl/OpenGLContext.hxx +++ b/include/vcl/opengl/OpenGLContext.hxx @@ -31,7 +31,11 @@ #include <GL/wglext.h> #elif defined( MACOSX ) #include <OpenGL/OpenGL.h> +#ifdef __OBJC__ @class NSOpenGLView; +#else +class NSOpenGLView; +#endif #elif defined( IOS ) #elif defined( ANDROID ) #elif defined( UNX ) commit 4f321bd267d31f7f67e009d66c40072ba11c3f59 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> 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 dc223d5..59ac433 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 ) @@ -182,6 +183,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 75185ad..b908f05 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -488,6 +488,8 @@ bool OpenGLContext::ImplInit() #elif defined( MACOSX ) + NSOpenGLView* pView = getOpenGLView(); + OpenGLWrapper::makeCurrent(pView); #elif defined( IOS ) @@ -837,6 +839,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 ) @@ -849,6 +853,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 ) @@ -861,6 +866,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 ) @@ -903,5 +910,11 @@ bool OpenGLContext::supportMultiSampling() const return m_aGLWin.bMultiSampleSupported; } +#if defined(MACOSX) +NSOpenGLView* OpenGLContext::getOpenGLView() +{ + return reinterpret_cast<NSOpenGLView*>(m_pChildWindow->GetSystemData()->mpNSView); +} +#endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit e65acd2ebbb85d557068692674f317ff3a038e9b Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 01:18:09 2014 +0200 use SystemWindowData to request a NSOpenGLWindow Change-Id: Ief50a2fc533846cd61be66b1ea166a992942083b diff --git a/include/vcl/sysdata.hxx b/include/vcl/sysdata.hxx index 59aaaa0..8ac816a 100644 --- a/include/vcl/sysdata.hxx +++ b/include/vcl/sysdata.hxx @@ -51,6 +51,7 @@ struct SystemEnvData HWND hWnd; // the window hwnd #elif defined( MACOSX ) NSView* mpNSView; // the cocoa (NSView *) implementing this object + bool mbOpenGL; // use a OpenGL providing NSView #elif defined( ANDROID ) // Nothing #elif defined( IOS ) @@ -75,6 +76,7 @@ struct SystemEnvData , hWnd(0) #elif defined( MACOSX ) , mpNSView(NULL) + , mbOpenGL(false) #elif defined( ANDROID ) #elif defined( IOS ) #elif defined( UNX ) @@ -174,7 +176,8 @@ struct SystemWindowData { unsigned long nSize; // size in bytes of this structure #if defined( WNT ) // meaningless on Windows -#elif defined( MACOSX ) // meaningless on Mac OS X +#elif defined( MACOSX ) + bool bOpenGL; // create a OpenGL providing NSView // Nothing #elif defined( ANDROID ) // Nothing diff --git a/vcl/inc/osx/salobj.h b/vcl/inc/osx/salobj.h index 8e18a7d..5db9d3e 100644 --- a/vcl/inc/osx/salobj.h +++ b/vcl/inc/osx/salobj.h @@ -52,7 +52,7 @@ public: void setClippedPosSize(); - AquaSalObject( AquaSalFrame* pFrame ); + AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWinData ); virtual ~AquaSalObject(); virtual void ResetClipRegion() SAL_OVERRIDE; diff --git a/vcl/osx/salinst.cxx b/vcl/osx/salinst.cxx index 532fc38..93d1e1a 100644 --- a/vcl/osx/salinst.cxx +++ b/vcl/osx/salinst.cxx @@ -757,13 +757,12 @@ void AquaSalInstance::DestroyFrame( SalFrame* pFrame ) delete pFrame; } -SalObject* AquaSalInstance::CreateObject( SalFrame* pParent, SystemWindowData* /* pWindowData */, bool /* bShow */ ) +SalObject* AquaSalInstance::CreateObject( SalFrame* pParent, SystemWindowData* pWindowData, bool /* bShow */ ) { - // SystemWindowData is meaningless on Mac OS X AquaSalObject *pObject = NULL; if ( pParent ) - pObject = new AquaSalObject( static_cast<AquaSalFrame*>(pParent) ); + pObject = new AquaSalObject( static_cast<AquaSalFrame*>(pParent), pWindowData ); return pObject; } diff --git a/vcl/osx/salobj.cxx b/vcl/osx/salobj.cxx index 7f9df92..7c7ad5d 100644 --- a/vcl/osx/salobj.cxx +++ b/vcl/osx/salobj.cxx @@ -22,8 +22,9 @@ #include "osx/saldata.hxx" #include "osx/salobj.h" #include "osx/salframe.h" +#include <AppKit/NSOpenGLView.h> -AquaSalObject::AquaSalObject( AquaSalFrame* pFrame ) : +AquaSalObject::AquaSalObject( AquaSalFrame* pFrame, SystemWindowData* pWindowData ) : mpFrame( pFrame ), mnClipX( -1 ), mnClipY( -1 ), @@ -37,6 +38,7 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame ) : { maSysData.nSize = sizeof( maSysData ); maSysData.mpNSView = NULL; + maSysData.mbOpenGL = pWindowData->bOpenGL; NSRect aInitFrame = { NSZeroPoint, { 20, 20 } }; mpClipView = [[NSClipView alloc] initWithFrame: aInitFrame ]; @@ -45,8 +47,25 @@ AquaSalObject::AquaSalObject( AquaSalFrame* pFrame ) : [mpFrame->getNSView() addSubview: mpClipView]; [mpClipView setHidden: YES]; } - maSysData.mpNSView = [[NSView alloc] initWithFrame: aInitFrame]; - if( maSysData.mpNSView ) + if (pWindowData->bOpenGL) + { + NSOpenGLPixelFormatAttribute aAttributes[] = + { + NSOpenGLPFADoubleBuffer, + NSOpenGLPFAAlphaSize, 8, + NSOpenGLPFAColorSize, 24, + 0 + }; + + NSOpenGLPixelFormat* pixFormat = [[NSOpenGLPixelFormat alloc] initWithAttributes:aAttributes]; + maSysData.mpNSView = [[NSOpenGLView alloc] initWithFrame: aInitFrame pixelFormat:pixFormat]; + + } + else + { + maSysData.mpNSView = [[NSView alloc] initWithFrame: aInitFrame]; + } + if( maSysData.mpNSView ) { if( mpClipView ) [mpClipView setDocumentView: maSysData.mpNSView]; diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index b4e7e0d..75185ad 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -724,6 +724,9 @@ bool OpenGLContext::initWindow() SystemWindowData OpenGLContext::generateWinData(Window* /*pParent*/) { SystemWindowData aWinData; +#if defined(MACOSX) + aWinData.bOpenGL = true; +#endif aWinData.nSize = sizeof(aWinData); return aWinData; } commit ff3321cf775871f34985cd3e1d2c9fa25738037a Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 00:39:19 2014 +0200 replace check with GLEW variable Change-Id: I818d099c70f2f886908584e67a73934dee5dbef8 diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx index 24c85f2..bb0e979 100644 --- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx +++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionerImpl.cxx @@ -376,9 +376,7 @@ bool OGLTransitionerImpl::initWindowFromSlideShowView( const Reference< presenta mpContext->setWinPosAndSize(Point(aCanvasArea.X, aCanvasArea.Y), Size(aCanvasArea.Width, aCanvasArea.Height)); SAL_INFO("slideshow.opengl", "canvas area: " << aCanvasArea.X << "," << aCanvasArea.Y << " - " << aCanvasArea.Width << "x" << aCanvasArea.Height); - GLWindow& rGLWindow(mpContext->getOpenGLWindow()); - - mbGenerateMipmap = rGLWindow.HasGLExtension( "GL_SGIS_generate_mipmap" ); + mbGenerateMipmap = GLEW_SGIS_generate_mipmap; CHECK_GL_ERROR(); glEnable(GL_CULL_FACE); commit a5346d7f3d8a7d4ecf4917a374c9ce930205ff6e Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Mon Sep 1 00:36:15 2014 +0200 switch to a NSOpenGLView implementation Change-Id: Ifed59a9e899abc900ddf27378eec6b641be061d3 diff --git a/vcl/Library_vclopengl.mk b/vcl/Library_vclopengl.mk index 11b46e5..e5fbbfe 100644 --- a/vcl/Library_vclopengl.mk +++ b/vcl/Library_vclopengl.mk @@ -10,6 +10,7 @@ $(eval $(call gb_Library_Library,vclopengl)) $(eval $(call gb_Library_set_include,vclopengl,\ + -I$(SRCDIR)/vcl/inc/ \ $$(INCLUDE) \ )) @@ -37,12 +38,28 @@ $(eval $(call gb_Library_use_libraries,vclopengl,\ $(gb_UWINAPI) \ )) +ifeq ($(OS),MACOSX) + +$(eval $(call gb_Library_add_cxxflags,vclopengl,\ + $(gb_OBJCXXFLAGS) \ +)) + +$(eval $(call gb_Library_add_libs,vcl,\ + -framework IOKit \ + -F/System/Library/PrivateFrameworks \ + -framework CoreUI \ + -lobjc \ +)) + $(eval $(call gb_Library_add_exception_objects,vclopengl,\ + vcl/osx/OpenGLWrapper \ vcl/source/opengl/OpenGLContext \ vcl/source/opengl/OpenGLHelper \ vcl/source/window/openglwin \ )) +endif + ifeq ($(strip $(OS)),WNT) $(eval $(call gb_Library_use_system_win32_libs,vclopengl,\ opengl32 \ @@ -52,6 +69,9 @@ $(eval $(call gb_Library_use_system_win32_libs,vclopengl,\ else ifeq ($(OS),MACOSX) $(eval $(call gb_Library_use_system_darwin_frameworks,vclopengl,\ OpenGL \ + Cocoa \ + Carbon \ + CoreFoundation \ )) else ifeq ($(OS),LINUX) $(eval $(call gb_Library_add_libs,vclopengl,\ diff --git a/vcl/inc/OpenGLWrapper.hxx b/vcl/inc/OpenGLWrapper.hxx new file mode 100644 index 0000000..6911c33 --- /dev/null +++ b/vcl/inc/OpenGLWrapper.hxx @@ -0,0 +1,30 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "AppKit/NSOpenGLView.h" +#include "AppKit/NSOpenGL.h" + +class OpenGLWrapper +{ +private: + + OpenGLWrapper(); + OpenGLWrapper(const OpenGLWrapper&); + OpenGLWrapper& operator=(const OpenGLWrapper&); + +public: + + static void swapBuffers(NSOpenGLView* pView); + static void makeCurrent(NSOpenGLView* pView); + static void resetCurrent(); + + static void init(NSOpenGLView* pView); +}; + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/osx/OpenGLWrapper.cxx b/vcl/osx/OpenGLWrapper.cxx new file mode 100644 index 0000000..dc9ad7a --- /dev/null +++ b/vcl/osx/OpenGLWrapper.cxx @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * This file is part of the LibreOffice project. + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +#include "OpenGLWrapper.hxx" + +void OpenGLWrapper::swapBuffers(NSOpenGLView* pView) +{ + [[pView openGLContext] flushBuffer]; +} + +void OpenGLWrapper::makeCurrent(NSOpenGLView* pView) +{ + [[pView openGLContext] makeCurrentContext]; +} + +void OpenGLWrapper::resetCurrent() +{ + [NSOpenGLContext clearCurrentContext]; +} + +void OpenGLWrapper::init(NSOpenGLView* pView) +{ +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx index e8ab18e..b4e7e0d 100644 --- a/vcl/source/opengl/OpenGLContext.cxx +++ b/vcl/source/opengl/OpenGLContext.cxx @@ -17,6 +17,10 @@ #include <vcl/bmpacc.hxx> #include <vcl/graph.hxx> +#include <premac.h> +#include "OpenGLWrapper.hxx" +#include <postmac.h> + using namespace com::sun::star; GLWindow::~GLWindow() @@ -44,8 +48,7 @@ OpenGLContext::~OpenGLContext() ReleaseDC( m_aGLWin.hWnd, m_aGLWin.hDC ); } #elif defined( MACOSX ) - CGLSetCurrentContext(NULL); - CGLDestroyContext(m_aGLWin.context); + OpenGLWrapper::resetCurrent(); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) @@ -485,29 +488,6 @@ bool OpenGLContext::ImplInit() #elif defined( MACOSX ) - CGLPixelFormatAttribute pixelFormatAttributes[] = { -#if MACOSX_SDK_VERSION > 1060 - kCGLPFAOpenGLProfile, (CGLPixelFormatAttribute) kCGLOGLPVersion_3_2_Core, -#endif - kCGLPFAColorSize, (CGLPixelFormatAttribute) 24, - kCGLPFAAlphaSize, (CGLPixelFormatAttribute) 8, - kCGLPFADoubleBuffer, - kCGLPFASampleBuffers, (CGLPixelFormatAttribute) 1, - kCGLPFASampleBuffers, (CGLPixelFormatAttribute) 4, - (CGLPixelFormatAttribute) 0 - }; - - if (mbRequestLegacyContext) - pixelFormatAttributes[1] = (CGLPixelFormatAttribute) kCGLOGLPVersion_Legacy; - - CGLPixelFormatObj pixelFormat; - GLint numberOfPixels; - CGLChoosePixelFormat(pixelFormatAttributes, &pixelFormat, &numberOfPixels); - - CGLCreateContext(pixelFormat, 0, &m_aGLWin.context); - CGLDestroyPixelFormat(pixelFormat); - - CGLSetCurrentContext(m_aGLWin.context); #elif defined( IOS ) @@ -854,8 +834,6 @@ void OpenGLContext::makeCurrent() SAL_WARN("vcl.opengl", "OpenGLContext::makeCurrent(): wglMakeCurrent failed: " << GetLastError()); } #elif defined( MACOSX ) - CGLError nError = CGLSetCurrentContext(m_aGLWin.context); - SAL_WARN_IF(nError != kCGLNoError, "vcl.opengl", "error in makeCurrent"); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) @@ -868,8 +846,6 @@ void OpenGLContext::resetCurrent() #if defined( WNT ) wglMakeCurrent( m_aGLWin.hDC, 0 ); #elif defined( MACOSX ) - CGLError nError = CGLSetCurrentContext(NULL); - SAL_WARN_IF(nError != kCGLNoError, "vcl.opengl", "error in makeCurrent"); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) @@ -882,7 +858,6 @@ void OpenGLContext::swapBuffers() #if defined( WNT ) SwapBuffers(m_aGLWin.hDC); #elif defined( MACOSX ) - CGLFlushDrawable(m_aGLWin.context); #elif defined( IOS ) || defined( ANDROID ) // nothing #elif defined( UNX ) commit 45f9f5f4d92323ebb78dff5437d49ed4b50804ee Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Thu Aug 28 01:37:10 2014 +0200 use size_t instead of unsigned int for container indices Change-Id: Iff2f797915f1558ea23336e273bd26e0c0edc63e diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx index 53524f8..2ccc375 100644 --- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx +++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx @@ -80,7 +80,7 @@ void OGLTransitionImpl::setScene(TransitionScene const& rScene) void OGLTransitionImpl::prepare( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex ) { const SceneObjects_t& rSceneObjects(maScene.getSceneObjects()); - for(unsigned int i(0); i != rSceneObjects.size(); ++i) { + for(size_t i(0); i != rSceneObjects.size(); ++i) { rSceneObjects[i]->prepare(); } @@ -90,7 +90,7 @@ void OGLTransitionImpl::prepare( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEn void OGLTransitionImpl::finish() { const SceneObjects_t& rSceneObjects(maScene.getSceneObjects()); - for(unsigned int i(0); i != rSceneObjects.size(); ++i) { + for(size_t i(0); i != rSceneObjects.size(); ++i) { rSceneObjects[i]->finish(); } @@ -189,7 +189,7 @@ void OGLTransitionImpl::display( double nTime, ::sal_Int32 glLeavingSlideTex, :: void OGLTransitionImpl::applyOverallOperations( double nTime, double SlideWidthScale, double SlideHeightScale ) { const Operations_t& rOverallOperations(maScene.getOperations()); - for(unsigned int i(0); i != rOverallOperations.size(); ++i) + for(size_t i(0); i != rOverallOperations.size(); ++i) rOverallOperations[i]->interpolate(nTime,SlideWidthScale,SlideHeightScale); } @@ -217,7 +217,7 @@ OGLTransitionImpl::displaySlide( glTranslated( 0, 2 - surfaceLevel, 0 ); glCullFace(GL_FRONT); - for(unsigned int i(0); i < primitives.size(); ++i) + for(size_t i(0); i < primitives.size(); ++i) primitives[i].display(nTime, SlideWidthScale, SlideHeightScale); glCullFace(GL_BACK); @@ -226,7 +226,7 @@ OGLTransitionImpl::displaySlide( glPopMatrix(); } - for(unsigned int i(0); i < primitives.size(); ++i) + for(size_t i(0); i < primitives.size(); ++i) primitives[i].display(nTime, SlideWidthScale, SlideHeightScale); CHECK_GL_ERROR(); } @@ -236,7 +236,7 @@ void OGLTransitionImpl::displayScene( double nTime, double SlideWidth, double Sl CHECK_GL_ERROR(); const SceneObjects_t& rSceneObjects(maScene.getSceneObjects()); glEnable(GL_TEXTURE_2D); - for(unsigned int i(0); i != rSceneObjects.size(); ++i) + for(size_t i(0); i != rSceneObjects.size(); ++i) rSceneObjects[i]->display(nTime, SlideWidth, SlideHeight, DispWidth, DispHeight); CHECK_GL_ERROR(); } @@ -276,7 +276,7 @@ void Primitive::display(double nTime, double WidthScale, double HeightScale) con void Primitive::applyOperations(double nTime, double WidthScale, double HeightScale) const { CHECK_GL_ERROR(); - for(unsigned int i(0); i < Operations.size(); ++i) + for(size_t i(0); i < Operations.size(); ++i) Operations[i]->interpolate( nTime ,WidthScale,HeightScale); glScaled(WidthScale,HeightScale,1); CHECK_GL_ERROR(); @@ -285,7 +285,7 @@ void Primitive::applyOperations(double nTime, double WidthScale, double HeightSc void SceneObject::display(double nTime, double /* SlideWidth */, double /* SlideHeight */, double DispWidth, double DispHeight ) const { CHECK_GL_ERROR(); - for(unsigned int i(0); i < maPrimitives.size(); ++i) { + for(size_t i(0); i < maPrimitives.size(); ++i) { // fixme: allow various model spaces, now we make it so that // it is regular -1,-1 to 1,1, where the whole display fits in CHECK_GL_ERROR(); commit 27fce9349bb1e1a2842ce4e59183d3be1100a552 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Thu Aug 28 00:25:30 2014 +0200 the values are float now actually OpenGL does not like double that much Change-Id: I3267f46072194bb6b2d4705733408e3db44c8c08 diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx index 7e37e0e..53524f8 100644 --- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx +++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx @@ -255,7 +255,7 @@ void Primitive::display(double nTime, double WidthScale, double HeightScale) con if(!Normals.empty()) { CHECK_GL_ERROR(); - glNormalPointer( GL_DOUBLE , 0 , &Normals[0] ); + glNormalPointer( GL_FLOAT , 0 , &Normals[0] ); CHECK_GL_ERROR(); glEnableClientState( GL_NORMAL_ARRAY ); CHECK_GL_ERROR(); @@ -263,9 +263,9 @@ void Primitive::display(double nTime, double WidthScale, double HeightScale) con CHECK_GL_ERROR(); glEnableClientState( GL_TEXTURE_COORD_ARRAY ); CHECK_GL_ERROR(); - glTexCoordPointer( 2, GL_DOUBLE, 0, &TexCoords[0] ); + glTexCoordPointer( 2, GL_FLOAT, 0, &TexCoords[0] ); CHECK_GL_ERROR(); - glVertexPointer( 3, GL_DOUBLE, 0, &Vertices[0] ); + glVertexPointer( 3, GL_FLOAT, 0, &Vertices[0] ); CHECK_GL_ERROR(); glDrawArrays( GL_TRIANGLES, 0, Vertices.size() ); CHECK_GL_ERROR(); commit ca82d9e720ea4a07e14dc6becb1d4e4edf3013b5 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Wed Aug 27 19:28:22 2014 +0200 remove that ugly underscore at the end of the method names Change-Id: I3c81c9d8b89ddf18bdc5ae700b721ca71f2700bb diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx index f2c94ef..7e37e0e 100644 --- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx +++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx @@ -84,7 +84,7 @@ void OGLTransitionImpl::prepare( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEn rSceneObjects[i]->prepare(); } - prepareTransition_( glLeavingSlideTex, glEnteringSlideTex ); + prepareTransition( glLeavingSlideTex, glEnteringSlideTex ); } void OGLTransitionImpl::finish() @@ -94,7 +94,7 @@ void OGLTransitionImpl::finish() rSceneObjects[i]->finish(); } - finishTransition_(); + finishTransition(); } static void blendSlide( double depth ) @@ -144,15 +144,15 @@ static void slideShadow( double nTime, const Primitive& primitive, double sw, do CHECK_GL_ERROR(); } -void OGLTransitionImpl::prepare_( double, double, double, double, double ) +void OGLTransitionImpl::prepare( double, double, double, double, double ) { } -void OGLTransitionImpl::prepareTransition_( ::sal_Int32, ::sal_Int32 ) +void OGLTransitionImpl::prepareTransition( ::sal_Int32, ::sal_Int32 ) { } -void OGLTransitionImpl::finishTransition_() +void OGLTransitionImpl::finishTransition() { } @@ -173,7 +173,7 @@ void OGLTransitionImpl::display( double nTime, ::sal_Int32 glLeavingSlideTex, :: const double SlideHeightScale = SlideHeight/DispHeight; CHECK_GL_ERROR(); - prepare_( nTime, SlideWidth, SlideHeight, DispWidth, DispHeight ); + prepare( nTime, SlideWidth, SlideHeight, DispWidth, DispHeight ); CHECK_GL_ERROR(); glPushMatrix(); @@ -1132,11 +1132,11 @@ public: {} private: - virtual void prepare_( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ) SAL_OVERRIDE; + virtual void prepare( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ) SAL_OVERRIDE; // mmPrepare = &OGLTransitionImpl::prepareDiamond; }; -void DiamondTransition::prepare_( double nTime, double /* SlideWidth */, double /* SlideHeight */, double /* DispWidth */, double /* DispHeight */ ) +void DiamondTransition::prepare( double nTime, double /* SlideWidth */, double /* SlideHeight */, double /* DispWidth */, double /* DispHeight */ ) { Primitive Slide1, Slide2; @@ -1390,9 +1390,9 @@ protected: private: virtual void displaySlides_( double nTime, ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale ) SAL_OVERRIDE; - virtual void prepareTransition_( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex ) SAL_OVERRIDE; - virtual void finishTransition_() SAL_OVERRIDE; - virtual GLuint makeShader_() = 0; + virtual void prepareTransition( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex ) SAL_OVERRIDE; + virtual void finishTransition() SAL_OVERRIDE; + virtual GLuint makeShader() = 0; void impl_preparePermShader(); @@ -1426,14 +1426,14 @@ void ShaderTransition::displaySlides_( double nTime, ::sal_Int32 glLeavingSlideT CHECK_GL_ERROR(); } -void ShaderTransition::prepareTransition_( ::sal_Int32 /* glLeavingSlideTex */, ::sal_Int32 /* glEnteringSlideTex */ ) +void ShaderTransition::prepareTransition( ::sal_Int32 /* glLeavingSlideTex */, ::sal_Int32 /* glEnteringSlideTex */ ) { - m_nProgramObject = makeShader_(); + m_nProgramObject = makeShader(); impl_preparePermShader(); } -void ShaderTransition::finishTransition_() +void ShaderTransition::finishTransition() { CHECK_GL_ERROR(); if( m_nProgramObject ) { @@ -1549,10 +1549,10 @@ public: {} private: - virtual GLuint makeShader_() SAL_OVERRIDE; + virtual GLuint makeShader() SAL_OVERRIDE; }; -GLuint StaticNoiseTransition::makeShader_() +GLuint StaticNoiseTransition::makeShader() { return OpenGLHelper::LoadShaders( "basicVertexShader", "staticFragmentShader" ); } @@ -1600,10 +1600,10 @@ public: {} private: - virtual GLuint makeShader_() SAL_OVERRIDE; + virtual GLuint makeShader() SAL_OVERRIDE; }; -GLuint DissolveTransition::makeShader_() +GLuint DissolveTransition::makeShader() { return OpenGLHelper::LoadShaders( "basicVertexShader", "dissolveFragmentShader" ); } diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx index 460b3bf..f49f2d6 100644 --- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx +++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.hxx @@ -187,19 +187,19 @@ private: * * Default implementation does nothing. */ - virtual void prepare_( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ); + virtual void prepare( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ); /** This function is called after glx context is ready to let the transition prepare GL related things, like GLSL program. * * Default implementation does nothing. */ - virtual void prepareTransition_( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex ); + virtual void prepareTransition( ::sal_Int32 glLeavingSlideTex, ::sal_Int32 glEnteringSlideTex ); /** This function is called when the transition needs to clear after itself, like delete own textures etc. * * Default implementation does nothing. */ - virtual void finishTransition_(); + virtual void finishTransition(); /** This function is called in display method to display the slides. * commit 63f49714a1f02dae5651b518ca3f8a5897a783d1 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Wed Aug 27 17:44:59 2014 +0200 basegfx -> glm in OGLTrans Change-Id: I3f3002d975f3ee2732c5e132b3b67531356aad5c diff --git a/slideshow/Library_OGLTrans.mk b/slideshow/Library_OGLTrans.mk index 20596b5..6a9d2ac 100644 --- a/slideshow/Library_OGLTrans.mk +++ b/slideshow/Library_OGLTrans.mk @@ -39,6 +39,7 @@ $(eval $(call gb_Library_use_externals,OGLTrans,\ boost_headers \ glew \ mesa_headers \ + glm_headers \ )) $(eval $(call gb_Library_set_componentfile,OGLTrans,slideshow/source/engine/OGLTrans/ogltrans)) diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx index 17bdff5..f2c94ef 100644 --- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx +++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx @@ -424,19 +424,19 @@ boost::shared_ptr<OGLTransitionImpl> makeOutsideCubeFaceToLeft() { Primitive Slide; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); Primitives_t aLeavingPrimitives; aLeavingPrimitives.push_back(Slide); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,-1),90,false,0.0,1.0)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,-1),90,false,0.0,1.0)); Primitives_t aEnteringPrimitives; aEnteringPrimitives.push_back(Slide); Operations_t aOperations; - aOperations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,-1),-90,true,0.0,1.0)); + aOperations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,-1),-90,true,0.0,1.0)); return makeSimpleTransition(aLeavingPrimitives, aEnteringPrimitives, aOperations); } @@ -445,19 +445,19 @@ boost::shared_ptr<OGLTransitionImpl> makeInsideCubeFaceToLeft() { Primitive Slide; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); Primitives_t aLeavingPrimitives; aLeavingPrimitives.push_back(Slide); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,1),-90,false,0.0,1.0)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,1),-90,false,0.0,1.0)); Primitives_t aEnteringPrimitives; aEnteringPrimitives.push_back(Slide); Operations_t aOperations; - aOperations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,1),90,true,0.0,1.0)); + aOperations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,1),90,true,0.0,1.0)); return makeSimpleTransition(aLeavingPrimitives, aEnteringPrimitives, aOperations); } @@ -466,13 +466,13 @@ boost::shared_ptr<OGLTransitionImpl> makeFallLeaving() { Primitive Slide; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); Primitives_t aEnteringPrimitives; aEnteringPrimitives.push_back(Slide); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(1,0,0),basegfx::B3DVector(0,-1,0), 90,true,0.0,1.0)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(1,0,0),glm::vec3(0,-1,0), 90,true,0.0,1.0)); Primitives_t aLeavingPrimitives; aLeavingPrimitives.push_back(Slide); @@ -489,19 +489,19 @@ boost::shared_ptr<OGLTransitionImpl> makeTurnAround() TransitionSettings aSettings; aSettings.mbReflectSlides = true; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); Primitives_t aLeavingPrimitives; aLeavingPrimitives.push_back(Slide); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0),-180,false,0.0,1.0)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,0),-180,false,0.0,1.0)); Primitives_t aEnteringPrimitives; aEnteringPrimitives.push_back(Slide); Operations_t aOperations; - aOperations.push_back(makeSTranslate(basegfx::B3DVector(0, 0, -1.5),true, 0, 0.5)); - aOperations.push_back(makeSTranslate(basegfx::B3DVector(0, 0, 1.5), true, 0.5, 1)); - aOperations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0, 1, 0),basegfx::B3DVector(0, 0, 0), -180, true, 0.0, 1.0)); + aOperations.push_back(makeSTranslate(glm::vec3(0, 0, -1.5),true, 0, 0.5)); + aOperations.push_back(makeSTranslate(glm::vec3(0, 0, 1.5), true, 0.5, 1)); + aOperations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0, 1, 0),glm::vec3(0, 0, 0), -180, true, 0.0, 1.0)); return makeSimpleTransition(aLeavingPrimitives, aEnteringPrimitives, aOperations, aSettings); } @@ -510,14 +510,14 @@ boost::shared_ptr<OGLTransitionImpl> makeTurnDown() { Primitive Slide; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); Primitives_t aLeavingPrimitives; aLeavingPrimitives.push_back(Slide); - Slide.Operations.push_back(makeSTranslate(basegfx::B3DVector(0, 0, 0.0001), false, -1.0, 0.0)); - Slide.Operations.push_back(makeSRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(-1, 1, 0), -90, true, 0.0, 1.0)); - Slide.Operations.push_back(makeSRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(-1, 1, 0), 90, false, -1.0, 0.0)); + Slide.Operations.push_back(makeSTranslate(glm::vec3(0, 0, 0.0001), false, -1.0, 0.0)); + Slide.Operations.push_back(makeSRotate (glm::vec3(0, 0, 1), glm::vec3(-1, 1, 0), -90, true, 0.0, 1.0)); + Slide.Operations.push_back(makeSRotate (glm::vec3(0, 0, 1), glm::vec3(-1, 1, 0), 90, false, -1.0, 0.0)); Primitives_t aEnteringPrimitives; aEnteringPrimitives.push_back(Slide); @@ -531,13 +531,13 @@ boost::shared_ptr<OGLTransitionImpl> makeIris() { Primitive Slide; - Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1)); - Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1)); + Slide.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0,1)); + Slide.pushTriangle (glm::vec2 (1,0), glm::vec2 (0,1), glm::vec2 (1,1)); Primitives_t aEnteringPrimitives; aEnteringPrimitives.push_back (Slide); - Slide.Operations.push_back (makeSTranslate (basegfx::B3DVector (0, 0, 0.000001), false, -1, 0)); - Slide.Operations.push_back (makeSTranslate (basegfx::B3DVector (0, 0, -0.000002), false, 0.5, 1)); + Slide.Operations.push_back (makeSTranslate (glm::vec3 (0, 0, 0.000001), false, -1, 0)); + Slide.Operations.push_back (makeSTranslate (glm::vec3 (0, 0, -0.000002), false, 0.5, 1)); Primitives_t aLeavingPrimitives; aLeavingPrimitives.push_back (Slide); @@ -557,12 +557,12 @@ boost::shared_ptr<OGLTransitionImpl> makeIris() cyo = (of*y + 1)/2; lcxo = (of*lx + 1)/2; lcyo = (of*ly + 1)/2; - irisPart.pushTriangle (basegfx::B2DVector (lcx, lcy), - basegfx::B2DVector (lcxo, lcyo), - basegfx::B2DVector (cx, cy)); - irisPart.pushTriangle (basegfx::B2DVector (cx, cy), - basegfx::B2DVector (lcxo, lcyo), - basegfx::B2DVector (cxo, cyo)); + irisPart.pushTriangle (glm::vec2 (lcx, lcy), + glm::vec2 (lcxo, lcyo), + glm::vec2 (cx, cy)); + irisPart.pushTriangle (glm::vec2 (cx, cy), + glm::vec2 (lcxo, lcyo), + glm::vec2 (cxo, cyo)); lx = x; ly = y; t += 1.0/nSteps; @@ -577,15 +577,15 @@ boost::shared_ptr<OGLTransitionImpl> makeIris() rx = cos ((2*M_PI*i)/nParts); ry = sin ((2*M_PI*i)/nParts); - irisPart.Operations.push_back (makeSRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(rx, ry, 0), angle, true, 0.0, 0.5)); - irisPart.Operations.push_back (makeSRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(rx, ry, 0), -angle, true, 0.5, 1)); + irisPart.Operations.push_back (makeSRotate (glm::vec3(0, 0, 1), glm::vec3(rx, ry, 0), angle, true, 0.0, 0.5)); + irisPart.Operations.push_back (makeSRotate (glm::vec3(0, 0, 1), glm::vec3(rx, ry, 0), -angle, true, 0.5, 1)); if (i > 0) { - irisPart.Operations.push_back (makeSTranslate (basegfx::B3DVector(rx, ry, 0), false, -1, 0)); - irisPart.Operations.push_back (makeSRotate (basegfx::B3DVector(0, 0, 1), basegfx::B3DVector(0, 0, 0), i*360.0/nParts, false, -1, 0)); - irisPart.Operations.push_back (makeSTranslate (basegfx::B3DVector(-1, 0, 0), false, -1, 0)); + irisPart.Operations.push_back (makeSTranslate (glm::vec3(rx, ry, 0), false, -1, 0)); + irisPart.Operations.push_back (makeSRotate (glm::vec3(0, 0, 1), glm::vec3(0, 0, 0), i*360.0/nParts, false, -1, 0)); + irisPart.Operations.push_back (makeSTranslate (glm::vec3(-1, 0, 0), false, -1, 0)); } - irisPart.Operations.push_back(makeSTranslate(basegfx::B3DVector(0, 0, 1), false, -2, 0.0)); - irisPart.Operations.push_back (makeSRotate (basegfx::B3DVector(1, .5, 0), basegfx::B3DVector(1, 0, 0), -30, false, -1, 0)); + irisPart.Operations.push_back(makeSTranslate(glm::vec3(0, 0, 1), false, -2, 0.0)); + irisPart.Operations.push_back (makeSRotate (glm::vec3(1, .5, 0), glm::vec3(1, 0, 0), -30, false, -1, 0)); pIris->pushPrimitive (irisPart); } @@ -653,42 +653,41 @@ boost::shared_ptr<OGLTransitionImpl> makeRochade() w = 2.2; h = 10; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); Slide.Operations.push_back(makeSEllipseTranslate(w, h, 0.25, -0.25, true, 0, 1)); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0), -45, true, 0, 1)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,0), -45, true, 0, 1)); Primitives_t aLeavingSlide; aLeavingSlide.push_back(Slide); Slide.Operations.clear(); Slide.Operations.push_back(makeSEllipseTranslate(w, h, 0.75, 0.25, true, 0, 1)); - Slide.Operations.push_back(makeSTranslate(basegfx::B3DVector(0, 0, -h), false, -1, 0)); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0), -45, true, 0, 1)); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0,1,0),basegfx::B3DVector(0,0,0), 45, false, -1, 0)); + Slide.Operations.push_back(makeSTranslate(glm::vec3(0, 0, -h), false, -1, 0)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,0), -45, true, 0, 1)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0,1,0),glm::vec3(0,0,0), 45, false, -1, 0)); Primitives_t aEnteringSlide; aEnteringSlide.push_back(Slide); return makeRochadeTransition(aLeavingSlide, aEnteringSlide, aSettings); } -// TODO(Q3): extract to basegfx -inline basegfx::B2DVector clamp(const basegfx::B2DVector& v) -{ - return basegfx::B2DVector(min(max(v.getX(),-1.0),1.0), - min(max(v.getY(),-1.0),1.0)); -} - inline double randFromNeg1to1() { return ( ( static_cast<double>( rand() ) / static_cast<double>( RAND_MAX ) ) * 2.0 ) - 1.0; } // TODO(Q3): extract to basegfx -inline basegfx::B3DVector randNormVectorInXYPlane() +inline glm::vec3 randNormVectorInXYPlane() +{ + glm::vec3 toReturn(randFromNeg1to1(),randFromNeg1to1(),0.0); + return glm::normalize(toReturn); +} + +template<typename T> +T clamp(const T& rIn) { - basegfx::B3DVector toReturn(randFromNeg1to1(),randFromNeg1to1(),0.0); - return toReturn/toReturn.getLength(); + return glm::clamp(rIn, -1.0, 1.0); } boost::shared_ptr<OGLTransitionImpl> makeRevolvingCircles( ::sal_uInt16 nCircles , ::sal_uInt16 nPointsOnCircles ) @@ -699,21 +698,21 @@ boost::shared_ptr<OGLTransitionImpl> makeRevolvingCircles( ::sal_uInt16 nCircles makeNByMTileFlip(1,1); return makeSimpleTransition(); } - double Radius(1.0/static_cast<double>( nCircles )); - double dRadius(Radius); - double LastRadius(0.0); - double NextRadius(2*Radius); + float Radius(1.0/static_cast<double>( nCircles )); + float dRadius(Radius); + float LastRadius(0.0); + float NextRadius(2*Radius); /// now we know there is at least two circles /// the first will always be a full circle /// the last will always be the outer shell of the slide with a circle hole //add the full circle - vector<basegfx::B2DVector> unScaledTexCoords; - double TempAngle(0.0); + vector<glm::vec2> unScaledTexCoords; + float TempAngle(0.0); for(unsigned int Point(0); Point < nPointsOnCircles; ++Point) { - unScaledTexCoords.push_back( basegfx::B2DVector( cos(TempAngle - 3.1415926/2.0) , sin(TempAngle- 3.1415926/2.0) ) ); + unScaledTexCoords.push_back( glm::vec2( cos(TempAngle - 3.1415926/2.0) , sin(TempAngle- 3.1415926/2.0) ) ); TempAngle += dAngle; } @@ -725,16 +724,16 @@ boost::shared_ptr<OGLTransitionImpl> makeRevolvingCircles( ::sal_uInt16 nCircles Primitive LeavingSlide; for(int Point(0); Point + 1 < nPointsOnCircles; ++Point) { - EnteringSlide.pushTriangle( basegfx::B2DVector( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point + 1 ] / 2.0 + basegfx::B2DVector( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point ] / 2.0 + basegfx::B2DVector( 0.5 , 0.5 ) ); - LeavingSlide.pushTriangle( basegfx::B2DVector( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point + 1 ] / 2.0 + basegfx::B2DVector( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point ] / 2.0 + basegfx::B2DVector( 0.5, 0.5) ); + EnteringSlide.pushTriangle( glm::vec2( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point + 1 ] / 2.0f + glm::vec2( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point ] / 2.0f + glm::vec2( 0.5 , 0.5 ) ); + LeavingSlide.pushTriangle( glm::vec2( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point + 1 ] / 2.0f + glm::vec2( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ Point ] / 2.0f + glm::vec2( 0.5, 0.5) ); } - EnteringSlide.pushTriangle( basegfx::B2DVector(0.5,0.5) , Radius * unScaledTexCoords[ 0 ] / 2.0 + basegfx::B2DVector( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ nPointsOnCircles - 1 ] / 2.0 + basegfx::B2DVector( 0.5 , 0.5 ) ); - LeavingSlide.pushTriangle( basegfx::B2DVector(0.5,0.5) , Radius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) , Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); + EnteringSlide.pushTriangle( glm::vec2(0.5,0.5) , Radius * unScaledTexCoords[ 0 ] / 2.0f + glm::vec2( 0.5 , 0.5 ) , Radius * unScaledTexCoords[ nPointsOnCircles - 1 ] / 2.0f + glm::vec2( 0.5 , 0.5 ) ); + LeavingSlide.pushTriangle( glm::vec2(0.5,0.5) , Radius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) , Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) ); - basegfx::B3DVector axis(randNormVectorInXYPlane()); - EnteringSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); - LeavingSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); - EnteringSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , -180, false,0.0,1.0) ); + glm::vec3 axis(randNormVectorInXYPlane()); + EnteringSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); + LeavingSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); + EnteringSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , -180, false,0.0,1.0) ); aEnteringSlide.push_back(EnteringSlide); aLeavingSlide.push_back(LeavingSlide); @@ -749,23 +748,23 @@ boost::shared_ptr<OGLTransitionImpl> makeRevolvingCircles( ::sal_uInt16 nCircles Primitive EnteringSlide; for(int Side(0); Side < nPointsOnCircles - 1; ++Side) { - EnteringSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); - EnteringSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) , Radius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); + EnteringSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) ); + EnteringSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) , Radius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) ); - LeavingSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); - LeavingSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) , Radius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); + LeavingSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) ); + LeavingSlide.pushTriangle(Radius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) , Radius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) ); } - EnteringSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) ); - EnteringSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) , Radius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) ); + EnteringSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) ); + EnteringSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) , Radius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) ); - LeavingSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) ); - LeavingSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) , Radius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) ); + LeavingSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) ); + LeavingSlide.pushTriangle(Radius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) , Radius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) ); - basegfx::B3DVector axis(randNormVectorInXYPlane()); - EnteringSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); - LeavingSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); - EnteringSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , -180, false,0.0,1.0) ); + glm::vec3 axis(randNormVectorInXYPlane()); + EnteringSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); + LeavingSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , 180, true, Radius/2.0 , (NextRadius + 1)/2.0 ) ); + EnteringSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , -180, false,0.0,1.0) ); aEnteringSlide.push_back(EnteringSlide); aLeavingSlide.push_back(LeavingSlide); @@ -781,23 +780,23 @@ boost::shared_ptr<OGLTransitionImpl> makeRevolvingCircles( ::sal_uInt16 nCircles for(int Side(0); Side < nPointsOnCircles - 1; ++Side) { - EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); - EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) , clamp(Radius*unScaledTexCoords[Side + 1])/2.0 + basegfx::B2DVector(0.5,0.5) ); + EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) ); + EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) , clamp(Radius*unScaledTexCoords[Side + 1])/2.0f + glm::vec2(0.5,0.5) ); - LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) ); - LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0 + basegfx::B2DVector(0.5,0.5) , clamp(Radius*unScaledTexCoords[Side + 1])/2.0 + basegfx::B2DVector(0.5,0.5) ); + LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) ); + LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[Side])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[Side + 1]/2.0f + glm::vec2(0.5,0.5) , clamp(Radius*unScaledTexCoords[Side + 1])/2.0f + glm::vec2(0.5,0.5) ); } - EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) ); - EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) , clamp(Radius*unScaledTexCoords[0])/2.0 + basegfx::B2DVector(0.5,0.5) ); + EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) ); + EnteringSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) , clamp(Radius*unScaledTexCoords[0])/2.0f + glm::vec2(0.5,0.5) ); - LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) ); - LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0 + basegfx::B2DVector(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0 + basegfx::B2DVector(0.5,0.5) , clamp(Radius*unScaledTexCoords[0])/2.0 + basegfx::B2DVector(0.5,0.5) ); + LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[nPointsOnCircles - 1]/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) ); + LeavingSlide.pushTriangle(clamp(Radius*unScaledTexCoords[nPointsOnCircles - 1])/2.0f + glm::vec2(0.5,0.5) , LastRadius*unScaledTexCoords[0]/2.0f + glm::vec2(0.5,0.5) , clamp(Radius*unScaledTexCoords[0])/2.0f + glm::vec2(0.5,0.5) ); - basegfx::B3DVector axis(randNormVectorInXYPlane()); - EnteringSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , 180, true, (LastRadius + dRadius)/2.0 , 1.0 ) ); - LeavingSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , 180, true, (LastRadius + dRadius)/2.0 , 1.0 ) ); - EnteringSlide.Operations.push_back( makeSRotate( axis , basegfx::B3DVector(0,0,0) , -180, false,0.0,1.0) ); + glm::vec3 axis(randNormVectorInXYPlane()); + EnteringSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , 180, true, (LastRadius + dRadius)/2.0 , 1.0 ) ); + LeavingSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , 180, true, (LastRadius + dRadius)/2.0 , 1.0 ) ); + EnteringSlide.Operations.push_back( makeSRotate( axis , glm::vec3(0,0,0) , -180, false,0.0,1.0) ); aEnteringSlide.push_back(EnteringSlide); aLeavingSlide.push_back(LeavingSlide); @@ -817,17 +816,17 @@ boost::shared_ptr<OGLTransitionImpl> makeHelix( ::sal_uInt16 nRows ) { Primitive Tile; - Tile.pushTriangle(basegfx::B2DVector( 1.0 , iDn ) , basegfx::B2DVector( 0.0 , iDn ) , basegfx::B2DVector( 0.0 , iPDn )); + Tile.pushTriangle(glm::vec2( 1.0 , iDn ) , glm::vec2( 0.0 , iDn ) , glm::vec2( 0.0 , iPDn )); - Tile.pushTriangle(basegfx::B2DVector( 1.0 , iPDn ) , basegfx::B2DVector( 1.0 , iDn ) , basegfx::B2DVector( 0.0 , iPDn )); + Tile.pushTriangle(glm::vec2( 1.0 , iPDn ) , glm::vec2( 1.0 , iDn ) , glm::vec2( 0.0 , iPDn )); - Tile.Operations.push_back( makeSRotate( basegfx::B3DVector( 0 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0 , 180 , + Tile.Operations.push_back( makeSRotate( glm::vec3( 0 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0f , 180 , true,min(max(static_cast<double>(i - nRows/2.0)*invN/2.0,0.0),1.0), min(max(static_cast<double>(i + nRows/2.0)*invN/2.0,0.0),1.0) ) ); aLeavingSlide.push_back(Tile); - Tile.Operations.push_back( makeSRotate( basegfx::B3DVector( 0 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0 , -180 , false,0.0,1.0) ); + Tile.Operations.push_back( makeSRotate( glm::vec3( 0 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0f , -180 , false,0.0,1.0) ); aEnteringSlide.push_back(Tile); @@ -854,13 +853,13 @@ boost::shared_ptr<OGLTransitionImpl> makeNByMTileFlip( ::sal_uInt16 n, ::sal_uIn { Primitive Tile; - Tile.pushTriangle(basegfx::B2DVector( iPDn , jDm ) , basegfx::B2DVector( iDn , jDm ) , basegfx::B2DVector( iDn , jPDm )); + Tile.pushTriangle(glm::vec2( iPDn , jDm ) , glm::vec2( iDn , jDm ) , glm::vec2( iDn , jPDm )); - Tile.pushTriangle(basegfx::B2DVector( iPDn , jPDm ) , basegfx::B2DVector( iPDn , jDm ) , basegfx::B2DVector( iDn , jPDm ));//bottom left corner of tile + Tile.pushTriangle(glm::vec2( iPDn , jPDm ) , glm::vec2( iPDn , jDm ) , glm::vec2( iDn , jPDm ));//bottom left corner of tile - Tile.Operations.push_back( makeSRotate( basegfx::B3DVector( 1 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0 , 180 , true, iDn*jDm/2.0 , ((iPDn*jPDm)+1.0)/2.0 ) ); + Tile.Operations.push_back( makeSRotate( glm::vec3( 1 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0f , 180 , true, iDn*jDm/2.0 , ((iPDn*jPDm)+1.0)/2.0 ) ); aLeavingSlide.push_back(Tile); - Tile.Operations.push_back( makeSRotate( basegfx::B3DVector( 1 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0 , -180, false, iDn*jDm/2.0 , ((iPDn*jPDm)+1.0)/2.0 ) ); + Tile.Operations.push_back( makeSRotate( glm::vec3( 1 , 1 , 0 ) , ( Tile.getVertices()[1] + Tile.getVertices()[3] )/2.0f , -180, false, iDn*jDm/2.0 , ((iPDn*jPDm)+1.0)/2.0 ) ); aEnteringSlide.push_back(Tile); @@ -874,7 +873,7 @@ boost::shared_ptr<OGLTransitionImpl> makeNByMTileFlip( ::sal_uInt16 n, ::sal_uIn return makeSimpleTransition(aLeavingSlide, aEnteringSlide); } -SRotate::SRotate(const basegfx::B3DVector& Axis, const basegfx::B3DVector& Origin, +SRotate::SRotate(const glm::vec3& Axis, const glm::vec3& Origin, double Angle, bool bInter, double T0, double T1): Operation(bInter, T0, T1), axis(Axis), @@ -883,7 +882,7 @@ SRotate::SRotate(const basegfx::B3DVector& Axis, const basegfx::B3DVector& Origi { } -SScale::SScale(const basegfx::B3DVector& Scale, const basegfx::B3DVector& Origin, +SScale::SScale(const glm::vec3& Scale, const glm::vec3& Origin, bool bInter, double T0, double T1): Operation(bInter, T0, T1), scale(Scale), @@ -891,8 +890,8 @@ SScale::SScale(const basegfx::B3DVector& Scale, const basegfx::B3DVector& Origin { } -RotateAndScaleDepthByWidth::RotateAndScaleDepthByWidth(const basegfx::B3DVector& Axis, - const basegfx::B3DVector& Origin, double Angle, bool bInter, double T0, double T1): +RotateAndScaleDepthByWidth::RotateAndScaleDepthByWidth(const glm::vec3& Axis, + const glm::vec3& Origin, double Angle, bool bInter, double T0, double T1): Operation(bInter, T0, T1), axis(Axis), origin(Origin), @@ -900,8 +899,8 @@ RotateAndScaleDepthByWidth::RotateAndScaleDepthByWidth(const basegfx::B3DVector& { } -RotateAndScaleDepthByHeight::RotateAndScaleDepthByHeight(const basegfx::B3DVector& Axis, - const basegfx::B3DVector& Origin, double Angle, bool bInter, double T0, double T1): +RotateAndScaleDepthByHeight::RotateAndScaleDepthByHeight(const glm::vec3& Axis, + const glm::vec3& Origin, double Angle, bool bInter, double T0, double T1): Operation(bInter, T0, T1), axis(Axis), origin(Origin), @@ -910,26 +909,26 @@ RotateAndScaleDepthByHeight::RotateAndScaleDepthByHeight(const basegfx::B3DVecto } -STranslate::STranslate(const basegfx::B3DVector& Vector, bool bInter, double T0, double T1): +STranslate::STranslate(const glm::vec3& Vector, bool bInter, double T0, double T1): Operation(bInter, T0, T1), vector(Vector) { } boost::shared_ptr<SRotate> -makeSRotate(const basegfx::B3DVector& Axis,const basegfx::B3DVector& Origin,double Angle,bool bInter, double T0, double T1) +makeSRotate(const glm::vec3& Axis,const glm::vec3& Origin,double Angle,bool bInter, double T0, double T1) { return make_shared<SRotate>(Axis, Origin, Angle, bInter, T0, T1); } boost::shared_ptr<SScale> -makeSScale(const basegfx::B3DVector& Scale, const basegfx::B3DVector& Origin,bool bInter, double T0, double T1) +makeSScale(const glm::vec3& Scale, const glm::vec3& Origin,bool bInter, double T0, double T1) { return make_shared<SScale>(Scale, Origin, bInter, T0, T1); } boost::shared_ptr<STranslate> -makeSTranslate(const basegfx::B3DVector& Vector,bool bInter, double T0, double T1) +makeSTranslate(const glm::vec3& Vector,bool bInter, double T0, double T1) { return make_shared<STranslate>(Vector, bInter, T0, T1); } @@ -941,13 +940,13 @@ makeSEllipseTranslate(double dWidth, double dHeight, double dStartPosition, doub } boost::shared_ptr<RotateAndScaleDepthByWidth> -makeRotateAndScaleDepthByWidth(const basegfx::B3DVector& Axis,const basegfx::B3DVector& Origin,double Angle,bool bInter, double T0, double T1) +makeRotateAndScaleDepthByWidth(const glm::vec3& Axis,const glm::vec3& Origin,double Angle,bool bInter, double T0, double T1) { return make_shared<RotateAndScaleDepthByWidth>(Axis, Origin, Angle, bInter, T0, T1); } boost::shared_ptr<RotateAndScaleDepthByHeight> -makeRotateAndScaleDepthByHeight(const basegfx::B3DVector& Axis,const basegfx::B3DVector& Origin,double Angle,bool bInter, double T0, double T1) +makeRotateAndScaleDepthByHeight(const glm::vec3& Axis,const glm::vec3& Origin,double Angle,bool bInter, double T0, double T1) { return make_shared<RotateAndScaleDepthByHeight>(Axis, Origin, Angle, bInter, T0, T1); } @@ -965,7 +964,7 @@ void STranslate::interpolate(double t,double SlideWidthScale,double SlideHeightS if(!mbInterpolate || t > mnT1) t = mnT1; t = intervalInter(t,mnT0,mnT1); - glTranslated(SlideWidthScale*t*vector.getX(),SlideHeightScale*t*vector.getY(),t*vector.getZ()); + glTranslated(SlideWidthScale*t*vector.x,SlideHeightScale*t*vector.y,t*vector.z); CHECK_GL_ERROR(); } @@ -977,11 +976,11 @@ void SRotate::interpolate(double t,double SlideWidthScale,double SlideHeightScal if(!mbInterpolate || t > mnT1) t = mnT1; t = intervalInter(t,mnT0,mnT1); - glTranslated(SlideWidthScale*origin.getX(),SlideHeightScale*origin.getY(),origin.getZ()); + glTranslated(SlideWidthScale*origin.x,SlideHeightScale*origin.y,origin.z); glScaled(SlideWidthScale,SlideHeightScale,1); - glRotated(t*angle,axis.getX(),axis.getY(),axis.getZ()); + glRotated(t*angle,axis.x,axis.y,axis.z); glScaled(1/SlideWidthScale,1/SlideHeightScale,1); - glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-origin.getZ()); + glTranslated(-SlideWidthScale*origin.x,-SlideHeightScale*origin.y,-origin.z); CHECK_GL_ERROR(); } @@ -993,9 +992,9 @@ void SScale::interpolate(double t,double SlideWidthScale,double SlideHeightScale if(!mbInterpolate || t > mnT1) t = mnT1; t = intervalInter(t,mnT0,mnT1); - glTranslated(SlideWidthScale*origin.getX(),SlideHeightScale*origin.getY(),origin.getZ()); - glScaled((1-t) + t*scale.getX(),(1-t) + t*scale.getY(),(1-t) + t*scale.getZ()); - glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-origin.getZ()); + glTranslated(SlideWidthScale*origin.x,SlideHeightScale*origin.y,origin.z); + glScaled((1-t) + t*scale.x,(1-t) + t*scale.y,(1-t) + t*scale.z); + glTranslated(-SlideWidthScale*origin.x,-SlideHeightScale*origin.y,-origin.z); CHECK_GL_ERROR(); } @@ -1007,9 +1006,9 @@ void RotateAndScaleDepthByWidth::interpolate(double t,double SlideWidthScale,dou if(!mbInterpolate || t > mnT1) t = mnT1; t = intervalInter(t,mnT0,mnT1); - glTranslated(SlideWidthScale*origin.getX(),SlideHeightScale*origin.getY(),SlideWidthScale*origin.getZ()); - glRotated(t*angle,axis.getX(),axis.getY(),axis.getZ()); - glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-SlideWidthScale*origin.getZ()); + glTranslated(SlideWidthScale*origin.x,SlideHeightScale*origin.y,SlideWidthScale*origin.z); + glRotated(t*angle,axis.x,axis.y,axis.z); + glTranslated(-SlideWidthScale*origin.x,-SlideHeightScale*origin.y,-SlideWidthScale*origin.z); CHECK_GL_ERROR(); } @@ -1021,9 +1020,9 @@ void RotateAndScaleDepthByHeight::interpolate(double t,double SlideWidthScale,do if(!mbInterpolate || t > mnT1) t = mnT1; t = intervalInter(t,mnT0,mnT1); - glTranslated(SlideWidthScale*origin.getX(),SlideHeightScale*origin.getY(),SlideHeightScale*origin.getZ()); - glRotated(t*angle,axis.getX(),axis.getY(),axis.getZ()); - glTranslated(-SlideWidthScale*origin.getX(),-SlideHeightScale*origin.getY(),-SlideHeightScale*origin.getZ()); + glTranslated(SlideWidthScale*origin.x,SlideHeightScale*origin.y,SlideHeightScale*origin.z); + glRotated(t*angle,axis.x,axis.y,axis.z); + glTranslated(-SlideWidthScale*origin.x,-SlideHeightScale*origin.y,-SlideHeightScale*origin.z); CHECK_GL_ERROR(); } @@ -1079,20 +1078,20 @@ void Primitive::swap(Primitive& rOther) swap(TexCoords, rOther.TexCoords); } -void Primitive::pushTriangle(const basegfx::B2DVector& SlideLocation0,const basegfx::B2DVector& SlideLocation1,const basegfx::B2DVector& SlideLocation2) +void Primitive::pushTriangle(const glm::vec2& SlideLocation0,const glm::vec2& SlideLocation1,const glm::vec2& SlideLocation2) { - vector<basegfx::B3DVector> Verts; - vector<basegfx::B2DVector> Texs; + vector<glm::vec3> Verts; + vector<glm::vec2> Texs; Verts.reserve(3); Texs.reserve(3); - Verts.push_back(basegfx::B3DVector( 2*SlideLocation0.getX() - 1, -2*SlideLocation0.getY() + 1 , 0.0 )); - Verts.push_back(basegfx::B3DVector( 2*SlideLocation1.getX() - 1, -2*SlideLocation1.getY() + 1 , 0.0 )); - Verts.push_back(basegfx::B3DVector( 2*SlideLocation2.getX() - 1, -2*SlideLocation2.getY() + 1 , 0.0 )); + Verts.push_back(glm::vec3( 2*SlideLocation0.x - 1, -2*SlideLocation0.y + 1 , 0.0 )); + Verts.push_back(glm::vec3( 2*SlideLocation1.x - 1, -2*SlideLocation1.y + 1 , 0.0 )); + Verts.push_back(glm::vec3( 2*SlideLocation2.x - 1, -2*SlideLocation2.y + 1 , 0.0 )); //figure out if they're facing the correct way, and make them face the correct way. - basegfx::B3DVector Normal( basegfx::cross( Verts[0] - Verts[1] , Verts[1] - Verts[2] ) ); - if(Normal.getZ() >= 0.0)//if the normal is facing us + glm::vec3 Normal( glm::cross( Verts[0] - Verts[1] , Verts[1] - Verts[2] ) ); + if(Normal.z >= 0.0)//if the normal is facing us { Texs.push_back(SlideLocation0); Texs.push_back(SlideLocation1); @@ -1104,9 +1103,9 @@ void Primitive::pushTriangle(const basegfx::B2DVector& SlideLocation0,const base Texs.push_back(SlideLocation2); Texs.push_back(SlideLocation1); Verts.clear(); - Verts.push_back(basegfx::B3DVector( 2*SlideLocation0.getX() - 1, -2*SlideLocation0.getY() + 1 , 0.0 )); - Verts.push_back(basegfx::B3DVector( 2*SlideLocation2.getX() - 1, -2*SlideLocation2.getY() + 1 , 0.0 )); - Verts.push_back(basegfx::B3DVector( 2*SlideLocation1.getX() - 1, -2*SlideLocation1.getY() + 1 , 0.0 )); + Verts.push_back(glm::vec3( 2*SlideLocation0.x - 1, -2*SlideLocation0.y + 1 , 0.0 )); + Verts.push_back(glm::vec3( 2*SlideLocation2.x - 1, -2*SlideLocation2.y + 1 , 0.0 )); + Verts.push_back(glm::vec3( 2*SlideLocation1.x - 1, -2*SlideLocation1.y + 1 , 0.0 )); } Vertices.push_back(Verts[0]); @@ -1117,9 +1116,9 @@ void Primitive::pushTriangle(const basegfx::B2DVector& SlideLocation0,const base TexCoords.push_back(Texs[1]); TexCoords.push_back(Texs[2]); - Normals.push_back(basegfx::B3DVector(0,0,1));//all normals always face the screen when untransformed. - Normals.push_back(basegfx::B3DVector(0,0,1));//all normals always face the screen when untransformed. - Normals.push_back(basegfx::B3DVector(0,0,1));//all normals always face the screen when untransformed. + Normals.push_back(glm::vec3(0,0,1));//all normals always face the screen when untransformed. + Normals.push_back(glm::vec3(0,0,1));//all normals always face the screen when untransformed. + Normals.push_back(glm::vec3(0,0,1));//all normals always face the screen when untransformed. } namespace @@ -1141,32 +1140,32 @@ void DiamondTransition::prepare_( double nTime, double /* SlideWidth */, double { Primitive Slide1, Slide2; - Slide1.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1)); - Slide1.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1)); + Slide1.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0,1)); + Slide1.pushTriangle (glm::vec2 (1,0), glm::vec2 (0,1), glm::vec2 (1,1)); Primitives_t aEnteringSlidePrimitives; aEnteringSlidePrimitives.push_back (Slide1); if( nTime >= 0.5 ) { double m = 1 - nTime; - Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (m,0), basegfx::B2DVector (0,m)); - Slide2.pushTriangle (basegfx::B2DVector (nTime,0), basegfx::B2DVector (1,0), basegfx::B2DVector (1,m)); - Slide2.pushTriangle (basegfx::B2DVector (1,nTime), basegfx::B2DVector (1,1), basegfx::B2DVector (nTime,1)); - Slide2.pushTriangle (basegfx::B2DVector (0,nTime), basegfx::B2DVector (m,1), basegfx::B2DVector (0,1)); + Slide2.pushTriangle (glm::vec2 (0,0), glm::vec2 (m,0), glm::vec2 (0,m)); + Slide2.pushTriangle (glm::vec2 (nTime,0), glm::vec2 (1,0), glm::vec2 (1,m)); + Slide2.pushTriangle (glm::vec2 (1,nTime), glm::vec2 (1,1), glm::vec2 (nTime,1)); + Slide2.pushTriangle (glm::vec2 (0,nTime), glm::vec2 (m,1), glm::vec2 (0,1)); } else { double l = 0.5 - nTime; double h = 0.5 + nTime; - Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0.5,l)); - Slide2.pushTriangle (basegfx::B2DVector (0.5,l), basegfx::B2DVector (1,0), basegfx::B2DVector (h,0.5)); - Slide2.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (1,1), basegfx::B2DVector (h,0.5)); - Slide2.pushTriangle (basegfx::B2DVector (h,0.5), basegfx::B2DVector (1,1), basegfx::B2DVector (0.5,h)); - Slide2.pushTriangle (basegfx::B2DVector (0.5,h), basegfx::B2DVector (1,1), basegfx::B2DVector (0,1)); - Slide2.pushTriangle (basegfx::B2DVector (l,0.5), basegfx::B2DVector (0.5,h), basegfx::B2DVector (0,1)); - Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (l,0.5), basegfx::B2DVector (0,1)); - Slide2.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (0.5,l), basegfx::B2DVector (l,0.5)); + Slide2.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0.5,l)); + Slide2.pushTriangle (glm::vec2 (0.5,l), glm::vec2 (1,0), glm::vec2 (h,0.5)); + Slide2.pushTriangle (glm::vec2 (1,0), glm::vec2 (1,1), glm::vec2 (h,0.5)); + Slide2.pushTriangle (glm::vec2 (h,0.5), glm::vec2 (1,1), glm::vec2 (0.5,h)); + Slide2.pushTriangle (glm::vec2 (0.5,h), glm::vec2 (1,1), glm::vec2 (0,1)); + Slide2.pushTriangle (glm::vec2 (l,0.5), glm::vec2 (0.5,h), glm::vec2 (0,1)); + Slide2.pushTriangle (glm::vec2 (0,0), glm::vec2 (l,0.5), glm::vec2 (0,1)); + Slide2.pushTriangle (glm::vec2 (0,0), glm::vec2 (0.5,l), glm::vec2 (l,0.5)); } - Slide2.Operations.push_back (makeSTranslate (basegfx::B3DVector (0, 0, 0.00000001), false, -1, 0)); + Slide2.Operations.push_back (makeSTranslate (glm::vec3 (0, 0, 0.00000001), false, -1, 0)); Primitives_t aLeavingSlidePrimitives; aLeavingSlidePrimitives.push_back (Slide2); @@ -1201,22 +1200,22 @@ boost::shared_ptr<OGLTransitionImpl> makeVenetianBlinds( bool vertical, int part Primitive Slide; n = (i + 1)/(double)parts; if( vertical ) { - Slide.pushTriangle (basegfx::B2DVector (ln,0), basegfx::B2DVector (n,0), basegfx::B2DVector (ln,1)); - Slide.pushTriangle (basegfx::B2DVector (n,0), basegfx::B2DVector (ln,1), basegfx::B2DVector (n,1)); - Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(basegfx::B3DVector(0, 1, 0), basegfx::B3DVector(n + ln - 1, 0, -t30*p), -120, true, 0.0, 1.0)); + Slide.pushTriangle (glm::vec2 (ln,0), glm::vec2 (n,0), glm::vec2 (ln,1)); + Slide.pushTriangle (glm::vec2 (n,0), glm::vec2 (ln,1), glm::vec2 (n,1)); + Slide.Operations.push_back(makeRotateAndScaleDepthByWidth(glm::vec3(0, 1, 0), glm::vec3(n + ln - 1, 0, -t30*p), -120, true, 0.0, 1.0)); } else { - Slide.pushTriangle (basegfx::B2DVector (0,ln), basegfx::B2DVector (1,ln), basegfx::B2DVector (0,n)); - Slide.pushTriangle (basegfx::B2DVector (1,ln), basegfx::B2DVector (0,n), basegfx::B2DVector (1,n)); - Slide.Operations.push_back(makeRotateAndScaleDepthByHeight(basegfx::B3DVector(1, 0, 0), basegfx::B3DVector(0, 1 - n - ln, -t30*p), -120, true, 0.0, 1.0)); + Slide.pushTriangle (glm::vec2 (0,ln), glm::vec2 (1,ln), glm::vec2 (0,n)); + Slide.pushTriangle (glm::vec2 (1,ln), glm::vec2 (0,n), glm::vec2 (1,n)); + Slide.Operations.push_back(makeRotateAndScaleDepthByHeight(glm::vec3(1, 0, 0), glm::vec3(0, 1 - n - ln, -t30*p), -120, true, 0.0, 1.0)); } aLeavingSlide.push_back (Slide); if( vertical ) { - Slide.Operations.push_back(makeSRotate(basegfx::B3DVector(0, 1, 0), basegfx::B3DVector(2*n - 1, 0, 0), -60, false, -1, 0)); - Slide.Operations.push_back(makeSRotate(basegfx::B3DVector(0, 1, 0), basegfx::B3DVector(n + ln - 1, 0, 0), 180, false, -1, 0)); + Slide.Operations.push_back(makeSRotate(glm::vec3(0, 1, 0), glm::vec3(2*n - 1, 0, 0), -60, false, -1, 0)); + Slide.Operations.push_back(makeSRotate(glm::vec3(0, 1, 0), glm::vec3(n + ln - 1, 0, 0), 180, false, -1, 0)); } else { - Slide.Operations.push_back(makeSRotate(basegfx::B3DVector(1, 0, 0), basegfx::B3DVector(0, 1 - 2*n, 0), -60, false, -1, 0)); - Slide.Operations.push_back(makeSRotate(basegfx::B3DVector(1, 0, 0), basegfx::B3DVector(0, 1 - n - ln, 0), 180, false, -1, 0)); + Slide.Operations.push_back(makeSRotate(glm::vec3(1, 0, 0), glm::vec3(0, 1 - 2*n, 0), -60, false, -1, 0)); + Slide.Operations.push_back(makeSRotate(glm::vec3(1, 0, 0), glm::vec3(0, 1 - n - ln, 0), 180, false, -1, 0)); } aEnteringSlide.push_back (Slide); ln = n; @@ -1293,8 +1292,8 @@ boost::shared_ptr<OGLTransitionImpl> makeFadeSmoothly() { Primitive Slide; - Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1)); - Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1)); + Slide.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0,1)); + Slide.pushTriangle (glm::vec2 (1,0), glm::vec2 (0,1), glm::vec2 (1,1)); Primitives_t aLeavingSlide; aLeavingSlide.push_back (Slide); Primitives_t aEnteringSlide; @@ -1364,8 +1363,8 @@ boost::shared_ptr<OGLTransitionImpl> makeFadeThroughBlack() { Primitive Slide; - Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1)); - Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1)); + Slide.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0,1)); + Slide.pushTriangle (glm::vec2 (1,0), glm::vec2 (0,1), glm::vec2 (1,1)); Primitives_t aLeavingSlide; aLeavingSlide.push_back (Slide); Primitives_t aEnteringSlide; @@ -1576,8 +1575,8 @@ boost::shared_ptr<OGLTransitionImpl> makeStatic() { Primitive Slide; - Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1)); - Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1)); + Slide.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0,1)); + Slide.pushTriangle (glm::vec2 (1,0), glm::vec2 (0,1), glm::vec2 (1,1)); Primitives_t aLeavingSlide; aLeavingSlide.push_back (Slide); Primitives_t aEnteringSlide; @@ -1627,8 +1626,8 @@ boost::shared_ptr<OGLTransitionImpl> makeDissolve() { Primitive Slide; - Slide.pushTriangle (basegfx::B2DVector (0,0), basegfx::B2DVector (1,0), basegfx::B2DVector (0,1)); - Slide.pushTriangle (basegfx::B2DVector (1,0), basegfx::B2DVector (0,1), basegfx::B2DVector (1,1)); + Slide.pushTriangle (glm::vec2 (0,0), glm::vec2 (1,0), glm::vec2 (0,1)); + Slide.pushTriangle (glm::vec2 (1,0), glm::vec2 (0,1), glm::vec2 (1,1)); Primitives_t aLeavingSlide; aLeavingSlide.push_back (Slide); Primitives_t aEnteringSlide; @@ -1645,25 +1644,25 @@ boost::shared_ptr<OGLTransitionImpl> makeNewsflash() { Primitive Slide; - Slide.pushTriangle(basegfx::B2DVector(0,0),basegfx::B2DVector(1,0),basegfx::B2DVector(0,1)); - Slide.pushTriangle(basegfx::B2DVector(1,0),basegfx::B2DVector(0,1),basegfx::B2DVector(1,1)); - Slide.Operations.push_back(makeSRotate(basegfx::B3DVector(0,0,1),basegfx::B3DVector(0,0,0),3000,true,0,0.5)); - Slide.Operations.push_back(makeSScale(basegfx::B3DVector(0.01,0.01,0.01),basegfx::B3DVector(0,0,0),true,0,0.5)); - Slide.Operations.push_back(makeSTranslate(basegfx::B3DVector(-10000, 0, 0),false, 0.5, 2)); + Slide.pushTriangle(glm::vec2(0,0),glm::vec2(1,0),glm::vec2(0,1)); + Slide.pushTriangle(glm::vec2(1,0),glm::vec2(0,1),glm::vec2(1,1)); + Slide.Operations.push_back(makeSRotate(glm::vec3(0,0,1),glm::vec3(0,0,0),3000,true,0,0.5)); + Slide.Operations.push_back(makeSScale(glm::vec3(0.01,0.01,0.01),glm::vec3(0,0,0),true,0,0.5)); + Slide.Operations.push_back(makeSTranslate(glm::vec3(-10000, 0, 0),false, 0.5, 2)); Primitives_t aLeavingSlide; aLeavingSlide.push_back(Slide); Slide.Operations.clear(); - Slide.Operations.push_back(makeSRotate(basegfx::B3DVector(0,0,1),basegfx::B3DVector(0,0,0),-3000,true,0.5,1)); - Slide.Operations.push_back(makeSTranslate(basegfx::B3DVector(-100, 0, 0),false, -1, 1)); - Slide.Operations.push_back(makeSTranslate(basegfx::B3DVector(100, 0, 0),false, 0.5, 1)); - Slide.Operations.push_back(makeSScale(basegfx::B3DVector(0.01,0.01,0.01),basegfx::B3DVector(0,0,0),false,-1,1)); - Slide.Operations.push_back(makeSScale(basegfx::B3DVector(100,100,100),basegfx::B3DVector(0,0,0),true,0.5,1)); + Slide.Operations.push_back(makeSRotate(glm::vec3(0,0,1),glm::vec3(0,0,0),-3000,true,0.5,1)); ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits