summaryrefslogtreecommitdiff
path: root/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx')
-rw-r--r--slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx35
1 files changed, 24 insertions, 11 deletions
diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
index cafc8aeb2bfd..19c92b705f05 100644
--- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
+++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
@@ -1557,12 +1557,12 @@ public:
private:
virtual void prepare( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ) override;
- virtual void finish( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight ) override;
-
virtual GLuint makeShader() const override;
virtual void prepareTransition( sal_Int32 glLeavingSlideTex, sal_Int32 glEnteringSlideTex ) override;
+ virtual void displaySlides_( double nTime, sal_Int32 glLeavingSlideTex, sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale ) override;
+
GLint mnTileInfoLocation;
GLuint mnTileInfoBuffer;
@@ -1573,8 +1573,6 @@ private:
void VortexTransition::prepare( double, double, double, double, double )
{
- glDisable(GL_CULL_FACE);
-
glBindBuffer(GL_ARRAY_BUFFER, mnTileInfoBuffer);
CHECK_GL_ERROR();
glEnableVertexAttribArray(mnTileInfoLocation);
@@ -1586,14 +1584,9 @@ void VortexTransition::prepare( double, double, double, double, double )
CHECK_GL_ERROR();
}
-void VortexTransition::finish( double, double, double, double, double )
-{
- glEnable(GL_CULL_FACE);
-}
-
GLuint VortexTransition::makeShader() const
{
- return OpenGLHelper::LoadShaders( "vortexVertexShader", "vortexFragmentShader" );
+ return OpenGLHelper::LoadShaders( "vortexVertexShader", "basicFragmentShader" );
}
void VortexTransition::prepareTransition( sal_Int32 glLeavingSlideTex, sal_Int32 glEnteringSlideTex )
@@ -1643,6 +1636,26 @@ void VortexTransition::prepareTransition( sal_Int32 glLeavingSlideTex, sal_Int32
CHECK_GL_ERROR();
}
+void VortexTransition::displaySlides_( double nTime, sal_Int32 glLeavingSlideTex, sal_Int32 glEnteringSlideTex, double SlideWidthScale, double SlideHeightScale )
+{
+ CHECK_GL_ERROR();
+ applyOverallOperations( nTime, SlideWidthScale, SlideHeightScale );
+
+ GLint location = glGetUniformLocation( m_nProgramObject, "time" );
+ if( location != -1 )
+ glUniform1f( location, nTime );
+
+ location = glGetUniformLocation( m_nProgramObject, "slide" );
+
+ if( location != -1 )
+ glUniform1f( location, 0.0 );
+ displaySlide( nTime, glLeavingSlideTex, getScene().getLeavingSlide(), SlideWidthScale, SlideHeightScale );
+ if( location != -1 )
+ glUniform1f( location, 1.0 );
+ displaySlide( nTime, glEnteringSlideTex, getScene().getEnteringSlide(), SlideWidthScale, SlideHeightScale );
+ CHECK_GL_ERROR();
+}
+
std::shared_ptr<OGLTransitionImpl>
makeVortexTransition(const Primitives_t& rLeavingSlidePrimitives,
const Primitives_t& rEnteringSlidePrimitives,
@@ -1659,7 +1672,7 @@ makeVortexTransition(const Primitives_t& rLeavingSlidePrimitives,
std::shared_ptr<OGLTransitionImpl> makeVortex()
{
- const int NX = 40, NY = 40;
+ const int NX = 64, NY = 64;
Primitive Slide;
for (int x = 0; x < NX; x++)