summaryrefslogtreecommitdiff
path: root/slideshow/opengl/vortexVertexShader.glsl
AgeCommit message (Collapse)Author
2016-02-25slideshow: Only use texture() in GLSL 1.50, fixes Intel on WindowsEmmanuel Gil Peyrot
texture2D() is still available, but not in the geometry stage, so better be consistent everywhere. Change-Id: I86bf1921713bcbf32946190525401bfcc633a69f Reviewed-on: https://gerrit.libreoffice.org/22468 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-02-25slideshow: Add an ugly workaround for Intel’s matrix multiplicationEmmanuel Gil Peyrot
When more than three multiplications are chained, Intel’s Windows driver returns a mat4 containing only zeroes, likely due to a misbehaving optimisation. This patch prevents it from doing any optimisation by doing each multiplication in its own uniform block. Change-Id: I0b435d3a5444afd47f78c379f0d2e442d2c2cfc0 Reviewed-on: https://gerrit.libreoffice.org/22470 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-02-25slideshow: Move Vortex calculations to the geometry stage, fixes IntelEmmanuel Gil Peyrot
Their Windows driver was failing due to too many varyings being used between the vertex and the geometry stages. Change-Id: Iec69a2ef29e6ed4ba5ce6e46c7a5eb7db5098d1b Reviewed-on: https://gerrit.libreoffice.org/22469 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-02-09slideshow: Add shadows to the Vortex transitionEmmanuel Gil Peyrot
These are done using a shadow mapping technique, we render both slides from the point of view of the light, and then do a second pass in which we lower the light of the fragment if some other cube is above it. Change-Id: I8aaa1428c4481661283bf69b5e56aa4d95fb80dd Reviewed-on: https://gerrit.libreoffice.org/22232 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2016-01-20slideshow: Change quads into cubes in the Vortex transitionEmmanuel Gil Peyrot
This makes Vortex require OpenGL 3.2 instead of 2.1. Change-Id: I9438a37c2cf75e58eafc807ad1abaa22acb231b1
2016-01-05Fix typosAndrea Gelmini
Change-Id: I7c40d7eb90a5c2b5d9808683c83b664707c27cb1 Reviewed-on: https://gerrit.libreoffice.org/21128 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2016-01-05slideshow: Define inverse() to bring back the GLSL version to 1.20Emmanuel Gil Peyrot
Change-Id: Ib0372d6a98734724d99b979f2d01abc1ee317847
2016-01-05slideshow: Improve the Vortex transition to match PowerPoint betterEmmanuel Gil Peyrot
Change-Id: I60e0b71d41a726459baeb7e590745d6bfb58e884
2015-12-15chmod -xTor Lillqvist
Change-Id: Ifa02bde8c84326c513df74d34077710f2e28c91e
2015-12-15Use #version 140 to get inverse()Tor Lillqvist
The Linux GLSL imlementation is very loose in its interpretation of standards, it seems. (I am not surprised.) Not so on Windows, at least with AMD drivers. The inverse() function (for float matririces) is present only starting from GLSL 1.40. Bump the #version directive accordingly. (See https://www.opengl.org/sdk/docs/man/html/inverse.xhtml) To get this to work again on OS X will be a further challenge. There a 'legacy' context only has GLSL 1.20. But the intent is to move this code in the direction of using 'core' contexts anyway. Change-Id: I572dc7cc30f90321b233fbfd857455dc01761a7c
2015-12-11slideshow: Fix lighting in the Vortex transitionEmmanuel Gil Peyrot
Change-Id: I870ef7885fe569c89bde63a70ef038c4133ffbfd
2015-11-19slideshow: Use gl_ModelViewProjectionMatrix in vertex shadersEmmanuel Gil Peyrot
ftransform() is deprecated, and we shouldn’t do an extraneous multiplication to obtain the two matrices together. Change-Id: Iaa16c106b8b702468f7be643a812107f0967acdd
2015-11-10Improve the Vortex transitionTor Lillqvist
Let about half the tiles move around in one direction (in front of the slide plane), and the rest the other direction (behind the slide plane). Make sure tiles that rotate into each other's location go the same way around, so that they don't pass through each others, which looks ugly. Avoid z-fighting by not letting the tile end up exactly on top of the one it is replacing, in case that one has not started moving yet. Change-Id: I232b0f815412d5d575b0dde4df2d337288e645bb
2015-11-09Simplify and improve (?) the Vortex transitionTor Lillqvist
Change-Id: I0602be9567961ca3bb5d41febd35ad65d8d7fb2a
2015-11-07Improve transition shader portabilityTor Lillqvist
Use #version 120 explicitly, and adapt the shader shader code accordingly, to use strictly only GLSL 1.20 constructs. Also, use less vertex attribute data in the Vortex vertex shader: We can pack the per-vertex tile x and y index and in-tile vertex index information into one float. Also, the shader can calculate the center of the tile a vertex belongs to based on the knowledge of which tile it is. Now the shader transitions work on OS X, too. Change-Id: I93e8b5069a6d06d2e412ffee322b1eb32805e606
2015-11-06Make the Vortex transition a bit more interestingTor Lillqvist
Also some minor cleanups in the C++ code. Change-Id: I106657130dd6e32b458cb416717806caac5031ce
2015-10-27Nothing that would be covered by that hereTor Lillqvist
Change-Id: I4f76c7699333cd9236f5231984db5c6d02a31445
2015-10-27Initial work on a "Vortex" transitionTor Lillqvist
The actual transition is not yet at all like the one in the competing product. But some basic ideas are in place. Change-Id: Ie17a4fe03ae93abe51a2f1f760f417ee4b193e2c