gstreamer/ext/gl
Matthew Waters e4bf9ed8f0 gl/utils: Fix NDC conversion matrices for column-majorness
The matrices were converting the wrong values with non-diagonal-only matrices.
e.g. a typical yflip matrix in [-1,1]^3 such as
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0  0  0  1

Would have actually required a matrix like this in [0,1]^3
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0 -2  0  1

Which is
1. not consistent with our multiplication convention and would require
   transposing matrices or changing our multiplication order (from what is
   generally used on opengl matrix guides/tutorials).
2. Produces incorrect values when input with actual vertices accounting for
   the difference in multiplication order.  e.g. some vertices multiplied by
   the yflip matrix using vertex * yflip(== transpose(yflip) * vertex):

     vertex:       -> result:           expected:
     vec4(1,0,1,1) -> vec4(1,-2,1,1)    vec4(1,1,1,1)
     vec4(1,1,1,1) -> vec4(1,-3,1,1)    vec4(1,0,1,1)

With the updated values, we now get the expected values.

Includes a test for this behaviour and the example above
2018-06-06 23:36:08 +10:00
..
effects gl: fix up a few more #if HAVE_FOO 2017-12-19 16:51:24 +00:00
caopengllayersink.h gl: fix broken build due to previous commit 2fd84a6c 2017-12-09 19:32:30 +00:00
caopengllayersink.m gl/caopengllayer: use public GstGLContext instead of Cocoa-specific one 2017-12-09 19:32:31 +00:00
gltestsrc.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gltestsrc.h gltestsrc: add a generic src framework 2017-12-09 19:32:18 +00:00
gstglalpha.c gl: add glalpha element that is similar to the alpha element 2018-05-05 21:24:25 +10:00
gstglalpha.h gl: add glalpha element that is similar to the alpha element 2018-05-05 21:24:25 +10:00
gstglbasemixer.c aggregator: Remove klass->sinkpads_type 2017-12-09 19:32:31 +00:00
gstglbasemixer.h glbasemixer: Remove unused negotiated member 2017-12-09 19:32:28 +00:00
gstglbumper.c glfilter: Remove hard-coded pad templates 2017-12-09 19:32:29 +00:00
gstglbumper.h move gl elements to ext subdirectory 2017-12-09 19:31:34 +00:00
gstglcolorbalance.c glcolorbalance: Support OES textures for input/passthrough 2018-05-07 01:16:27 +10:00
gstglcolorbalance.h gl: implement a colorbalance element 2017-12-09 19:32:14 +00:00
gstglcolorconvertelement.c glbasefilter: expose finding the local GL context 2018-05-05 21:24:25 +10:00
gstglcolorconvertelement.h glbasefilter: expose finding the local GL context 2018-05-05 21:24:25 +10:00
gstglcolorscale.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglcolorscale.h glcolorscale: support gl3 2017-12-09 19:31:51 +00:00
gstgldeinterlace.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstgldeinterlace.h glfilter: rewrite subclasses for filter_texture() occuring on GL thread 2017-12-09 19:32:21 +00:00
gstgldifferencematte.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstgldifferencematte.h gl: use GLMemory for accessing textures everywhere 2017-12-09 19:32:21 +00:00
gstgldownloadelement.c gldownload: remove texture-target field from dmabuf/sysmem caps 2018-02-09 12:33:28 +11:00
gstgldownloadelement.h gldownload: Add dmabuf exporting 2017-12-09 19:32:31 +00:00
gstgleffects.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstgleffects.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglfilterapp.c glfilter: Remove hard-coded pad templates 2017-12-09 19:32:29 +00:00
gstglfilterapp.h glframebuffer: rewrite for a more consistent API 2017-12-09 19:32:21 +00:00
gstglfilterbin.c gl*bin: fix transfer semantics for the create-element signal 2018-02-09 17:15:30 +11:00
gstglfilterbin.h gl: new element glfilterbin 2017-12-09 19:31:57 +00:00
gstglfiltercube.c glfilter: Remove hard-coded pad templates 2017-12-09 19:32:29 +00:00
gstglfiltercube.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglfilterglass.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglfilterglass.h gl: use GLMemory for accessing textures everywhere 2017-12-09 19:32:21 +00:00
gstglfilterreflectedscreen.c glfilter: Remove hard-coded pad templates 2017-12-09 19:32:29 +00:00
gstglfilterreflectedscreen.h gl: silence all the compiler warnings 2017-12-09 19:31:34 +00:00
gstglfiltershader.c gl: use #ifdef HAVE_* instead of #if HAVE_FOO 2017-12-19 12:01:41 +00:00
gstglfiltershader.h glshaderelement: implement setting arbitrary uniforms 2017-12-09 19:32:09 +00:00
gstglimagesink.c glimagesink: Correct PAR in output caps when transforming 2018-02-23 19:39:37 +11:00
gstglimagesink.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglmixer.c Port to latest GstAggregator segment API 2018-03-01 15:33:25 +01:00
gstglmixer.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglmixerbin.c gl*bin: fix transfer semantics for the create-element signal 2018-02-09 17:15:30 +11:00
gstglmixerbin.h gl: new glmixerbin element 2017-12-09 19:31:57 +00:00
gstglmosaic.c docs: Port all docstring to gtk-doc markdown 2017-12-09 19:32:27 +00:00
gstglmosaic.h gl: use GLMemory for accessing textures everywhere 2017-12-09 19:32:21 +00:00
gstgloverlay.c glfilter: Remove hard-coded pad templates 2017-12-09 19:32:29 +00:00
gstgloverlay.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglsinkbin.c gl*bin: fix transfer semantics for the create-element signal 2018-02-09 17:15:30 +11:00
gstglsinkbin.h glsinkbin: add glcolorbalance element 2017-12-09 19:32:15 +00:00
gstglsrcbin.c gl*bin: fix transfer semantics for the create-element signal 2018-02-09 17:15:30 +11:00
gstglsrcbin.h gl: new glsrcbin element 2017-12-09 19:31:57 +00:00
gstglstereomix.c Port to latest GstAggregator segment API 2018-03-01 15:33:25 +01:00
gstglstereomix.h glstereomix: Fix caps negotiation 2017-12-09 19:32:22 +00:00
gstglstereosplit.c docs: Port all docstring to gtk-doc markdown 2017-12-09 19:32:27 +00:00
gstglstereosplit.h glsterosplit: remove internal glupload/glcolorconvert 2017-12-09 19:32:18 +00:00
gstgltestsrc.c gltestsrc: guard stop in gl thread 2017-12-09 19:32:31 +00:00
gstgltestsrc.h glframebuffer: rewrite for a more consistent API 2017-12-09 19:32:21 +00:00
gstgltransformation.c glutils: fix matrix operations everywhere 2017-12-09 19:32:30 +00:00
gstgltransformation.h gl: fix broken build due to previous commit 2fd84a6c 2017-12-09 19:32:30 +00:00
gstgluploadelement.c glbasefilter: expose finding the local GL context 2018-05-05 21:24:25 +10:00
gstgluploadelement.h glbasefilter: expose finding the local GL context 2018-05-05 21:24:25 +10:00
gstglutils.c gl/utils: Fix NDC conversion matrices for column-majorness 2018-06-06 23:36:08 +10:00
gstglutils.h glutils: fix matrix operations everywhere 2017-12-09 19:32:30 +00:00
gstglvideoflip.c docs: Port all docstring to gtk-doc markdown 2017-12-09 19:32:27 +00:00
gstglvideoflip.h glvideoflip: implement GstVideoDirection interface 2017-12-09 19:32:22 +00:00
gstglvideomixer.c aggregator: Remove klass->sinkpads_type 2017-12-09 19:32:31 +00:00
gstglvideomixer.h glvidemixer: need reconfigure output gemotry after caps renegotiated 2017-12-09 19:32:30 +00:00
gstglviewconvert.c gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstglviewconvert.h gl: do not include GL headers in public gstgl headers 2017-12-09 19:32:29 +00:00
gstopengl.c gl: add glalpha element that is similar to the alpha element 2018-05-05 21:24:25 +10:00
Makefile.am gl: add glalpha element that is similar to the alpha element 2018-05-05 21:24:25 +10:00
meson.build gl: add glalpha element that is similar to the alpha element 2018-05-05 21:24:25 +10:00