a910f84
From 712af05b25bd4fd5343a5622b7a42eff177eeb83 Mon Sep 17 00:00:00 2001
a910f84
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
a910f84
Date: Thu, 1 Dec 2016 12:32:09 +0000
a910f84
Subject: [PATCH] rework diamond transition to use only opengl core
a910f84
a910f84
cause that's all we've got in gtk3
a910f84
a910f84
Change-Id: I6a47e344ccd39ba63e7a51ae18f89bb05bb642c4
a910f84
---
a910f84
 .../OGLTrans/generic/OGLTrans_TransitionImpl.cxx   | 28 +++++++++++++++-------
a910f84
 1 file changed, 20 insertions(+), 8 deletions(-)
a910f84
a910f84
diff --git a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
a910f84
index 8b508c6..9eb1e51 100644
a910f84
--- a/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
a910f84
+++ b/slideshow/source/engine/OGLTrans/generic/OGLTrans_TransitionImpl.cxx
a910f84
@@ -317,8 +317,6 @@ OGLTransitionImpl::displayUnbufferedSlide(
a910f84
         double SlideWidthScale, double SlideHeightScale )
a910f84
 {
a910f84
     CHECK_GL_ERROR();
a910f84
-    glPushMatrix();
a910f84
-    CHECK_GL_ERROR();
a910f84
     glBindTexture(GL_TEXTURE_2D, glSlideTex);
a910f84
     CHECK_GL_ERROR();
a910f84
     glBindVertexArray(0);
a910f84
@@ -336,8 +334,6 @@ OGLTransitionImpl::displayUnbufferedSlide(
a910f84
     CHECK_GL_ERROR();
a910f84
     glBindBuffer(GL_ARRAY_BUFFER, m_nVertexBufferObject);
a910f84
     CHECK_GL_ERROR();
a910f84
-    glPopMatrix();
a910f84
-    CHECK_GL_ERROR();
a910f84
 }
a910f84
 
a910f84
 void OGLTransitionImpl::displayScene( double nTime, double SlideWidth, double SlideHeight, double DispWidth, double DispHeight )
a910f84
@@ -360,15 +356,31 @@ void Primitive::display(GLint primitiveTransformLocation, double nTime, double W
a910f84
         CHECK_GL_ERROR();
a910f84
     }
a910f84
 
a910f84
-    glPushClientAttrib(GL_CLIENT_VERTEX_ARRAY_BIT);
a910f84
+    GLuint nVertexArrayObject;
a910f84
+    glGenVertexArrays(1, &nVertexArrayObject);
a910f84
+    CHECK_GL_ERROR();
a910f84
+    glBindVertexArray(nVertexArrayObject);
a910f84
+    CHECK_GL_ERROR();
a910f84
+
a910f84
+    GLuint nBuffer;
a910f84
+    glGenBuffers(1, &nBuffer);
a910f84
     CHECK_GL_ERROR();
a910f84
-    glEnableClientState( GL_VERTEX_ARRAY );
a910f84
+    glBindBuffer(GL_ARRAY_BUFFER, nBuffer);
a910f84
     CHECK_GL_ERROR();
a910f84
-    glVertexPointer( 3, GL_FLOAT, sizeof(Vertex), &Vertices[0] );
a910f84
+    glBufferData(GL_ARRAY_BUFFER, getVerticesSize(), Vertices.data(), GL_STATIC_DRAW);
a910f84
+
a910f84
+    glEnableVertexAttribArray(0);
a910f84
+    CHECK_GL_ERROR();
a910f84
+    glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(Vertex), nullptr);
a910f84
+
a910f84
     CHECK_GL_ERROR();
a910f84
     glDrawArrays( GL_TRIANGLES, 0, Vertices.size() );
a910f84
     CHECK_GL_ERROR();
a910f84
-    glPopClientAttrib();
a910f84
+
a910f84
+    glDeleteBuffers(1, &nBuffer);
a910f84
+    CHECK_GL_ERROR();
a910f84
+
a910f84
+    glDeleteVertexArrays(1, &nVertexArrayObject);
a910f84
 
a910f84
     CHECK_GL_ERROR();
a910f84
 }
a910f84
-- 
a910f84
2.9.3
a910f84