[Libreoffice-commits] core.git: slideshow/source

Caolán McNamara caolanm at redhat.com
Mon Dec 5 09:26:13 UTC 2016


 slideshow/source/engine/opengl/TransitionImpl.cxx |   26 +++++++++++++++-------
 1 file changed, 18 insertions(+), 8 deletions(-)

New commits:
commit 5809f506f44715e60ce653b49050641967429661
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Dec 1 12:32:09 2016 +0000

    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 at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

diff --git a/slideshow/source/engine/opengl/TransitionImpl.cxx b/slideshow/source/engine/opengl/TransitionImpl.cxx
index df753c6..2105760 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();
 }
 


More information about the Libreoffice-commits mailing list