summaryrefslogtreecommitdiff
path: root/slideshow
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2016-12-01 12:32:09 +0000
committerCaolán McNamara <caolanm@redhat.com>2016-12-13 15:35:42 +0000
commit76c70390cb51ed292e3e0bf39694bab6063e7779 (patch)
tree577930334164147934ca82ff562b5a092537040b /slideshow
parent11e6f819122bc51b5ed58d2dbace754c00faa7c8 (diff)
rework diamond transition to use only opengl core
cause that's all we've got in gtk3 Change-Id: I6a47e344ccd39ba63e7a51ae18f89bb05bb642c4 Reviewed-on: https://gerrit.libreoffice.org/31496 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 5809f506f44715e60ce653b49050641967429661) Reviewed-on: https://gerrit.libreoffice.org/31620
Diffstat (limited to 'slideshow')
-rw-r--r--slideshow/source/engine/opengl/TransitionImpl.cxx26
1 files changed, 18 insertions, 8 deletions
diff --git a/slideshow/source/engine/opengl/TransitionImpl.cxx b/slideshow/source/engine/opengl/TransitionImpl.cxx
index a2b11c34c949..60ab587471ae 100644
--- a/slideshow/source/engine/opengl/TransitionImpl.cxx
+++ b/slideshow/source/engine/opengl/TransitionImpl.cxx
@@ -317,8 +317,6 @@ OGLTransitionImpl::displayUnbufferedSlide(
double SlideWidthScale, double SlideHeightScale )
{
CHECK_GL_ERROR();
- glPushMatrix();
- CHECK_GL_ERROR();
glBindTexture(GL_TEXTURE_2D, glSlideTex);
CHECK_GL_ERROR();
glBindVertexArray(0);
@@ -336,8 +334,6 @@ OGLTransitionImpl::displayUnbufferedSlide(
CHECK_GL_ERROR();
glBindBuffer(GL_ARRAY_BUFFER, m_nVertexBufferObject);
CHECK_GL_ERROR();
- glPopMatrix();
- CHECK_GL_ERROR();
}
void OGLTransitionImpl::displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
@@ -360,16 +356,30 @@ void Primitive::display(GLint primitiveTransformLocation, double nTime, double W
CHECK_GL_ERROR();
}
- glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT);
+ GLuint nVertexArrayObject;
+ glGenVertexArrays(1, &nVertexArrayObject);
CHECK_GL_ERROR();
- glEnableClientState( GL_VERTEX_ARRAY );
+ glBindVertexArray(nVertexArrayObject);
CHECK_GL_ERROR();
- glVertexPointer( 3, GL_FLOAT, sizeof(Vertex), &Vertices[0] );
+
+ GLuint nBuffer;
+ glGenBuffers(1, &nBuffer);
+ CHECK_GL_ERROR();
+ glBindBuffer(GL_ARRAY_BUFFER, nBuffer);
+ CHECK_GL_ERROR();
+ glBufferData(GL_ARRAY_BUFFER, getVerticesSize(), Vertices.data(), GL_STATIC_DRAW);
+
+ glEnableVertexAttribArray(0);
+ CHECK_GL_ERROR();
+ glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), nullptr);
CHECK_GL_ERROR();
glDrawArrays( GL_TRIANGLES, 0, Vertices.size() );
CHECK_GL_ERROR();
- glPopClientAttrib();
+ glDeleteBuffers(1, &nBuffer);
+ CHECK_GL_ERROR();
+
+ glDeleteVertexArrays(1, &nVertexArrayObject);
CHECK_GL_ERROR();
}