diff options
author | Caolán McNamara <caolanm@redhat.com> | 2016-12-01 12:32:09 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2016-12-05 09:25:43 +0000 |
commit | 5809f506f44715e60ce653b49050641967429661 (patch) | |
tree | e6b241a1e855fea68aba4438547ddc204de59921 /slideshow | |
parent | be446eb6055ccc60565045e0aaf05794d3a6cda8 (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>
Diffstat (limited to 'slideshow')
-rw-r--r-- | slideshow/source/engine/opengl/TransitionImpl.cxx | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/slideshow/source/engine/opengl/TransitionImpl.cxx b/slideshow/source/engine/opengl/TransitionImpl.cxx index df753c6a784b..2105760c53b8 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(); } |