Matthew Waters
e4916fb1ef
gldisplay: add a list of glwindow's
...
With the event thread on the display, for a particular winsys event
we need to be able to retreive the window that the event matches.
2016-11-08 15:14:26 +11:00
Matthew Waters
1a6c4be242
gldisplay: add a dedicated event thread
...
Will take the place of the navigation event thread for dealing with
winsys events.
2016-11-08 12:50:45 +11:00
Nirbheek Chauhan
e3c1a545ba
gstgl: Add GST_EXPORT to all symbols used on Windows
...
This is a requirement for those symbols to be exported in gstgl-1.0.dll
when building with the MSVC compiler
2016-10-27 23:06:25 +05:30
Matthew Waters
c200e47ef8
gl: add necessary padding bytes to all public structs
2016-09-28 17:08:52 +10:00
Matthew Waters
23806d4953
gl: misc docs fixes/additions
2016-03-06 19:36:17 +11:00
Julien Isorce
66d833fcf2
gldisplay: add gst_gl_display_create_context
...
It also emits a create-context signal so that an application
can provide an external GstGLContext backend.
https://bugzilla.gnome.org/show_bug.cgi?id=750310
2015-06-19 13:10:30 +01:00
Matthew Waters
6cb6d8f9e8
gldisplay: synchronize the searching and creation of GstGLContext's
...
Ootherwise we could end up with multiple elements in different chains
each creating a context. Fixes context creation with glvideomixer.
2015-04-21 12:55:24 +10:00
Matthew Waters
ef0bd30c87
gl: store the list of contexts within gldisplay
...
Removes the reliance on the allocation query to propogate GL contexts.
Allows thread safely getting a context for the a specific thread.
2015-03-12 16:45:51 +00:00
Matthew Waters
3c1e77eb31
gldisplay: implement runtime GL api filtering
...
Needed so that the pipeline/application can limit the choice of GL api
to what it supports
2014-11-28 09:14:26 +11:00
Matthew Waters
f19e5abcb8
gl/display: clean up pre gstglcontext api and struct fields
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2014-05-06 21:08:30 +10:00
Matthew Waters
c28dd9b0d3
gl/display: add get_handle_type
...
https://bugzilla.gnome.org/show_bug.cgi?id=729551
2014-05-06 21:08:30 +10:00
Matthew Waters
49b37650f6
gl: Add EGLDisplay display subclass
2014-03-17 10:56:39 +01:00
Matthew Waters
0d1d42b205
[890/906] x11: add display subclass
...
GstGLDisplayX11 holds the display connection and name. Each thread requires
it's own X11 Display connection (initialised from name) due to the fact that
we do not want to call XInitThreads(). Doing so would result in segfaults
when integrating with GUI toolkits Gtk, Qt, etc.
The Display connection is for OpenGL platforms where a constant display is
required in order to share contexts (egl). In the case of a wrapped context
(added later), we do not have GstGLWindow to retreive the display from so a
'master' connection is used instead.
2014-03-15 18:37:06 +01:00
Matthew Waters
f4036318da
[889/906] display: add display type enum
2014-03-15 18:37:06 +01:00
Matthew Waters
4d30769b86
[857/906] display: document the new GstContext api
2014-03-15 18:37:05 +01:00
Matthew Waters
636d307715
[853/906] display: remove _{set,get}_context
...
A GstGLDisplay doesn't need a GstGLContext and its use
was cause a reference cycle
2014-03-15 18:37:04 +01:00
Matthew Waters
775ea000dc
[824/906] android: Build fixes
...
https://bugzilla.gnome.org/show_bug.cgi?id=709786
2014-03-15 18:37:03 +01:00
Matthew Waters
9b22b0e0ba
[812/906] move the GL vtable from GstGLDisplay to GstGLContext
...
Conflicts:
tests/check/libs/gstglcontext.c
2014-03-15 18:37:02 +01:00
Matthew Waters
cf5e910d9b
[793/906] add a GstGLContext object that will be the basis of OpenGL contexts
...
At the moment it just sits in between GstGLDisplay and GstGLWindow
performing some of the stuff that GstGLWindow used to do.
2014-03-15 18:37:01 +01:00
Sebastian Dröge
a5a46aa833
[733/906] gl: Major header and include cleanup
2014-03-15 18:36:57 +01:00
Julien Isorce
dd7e054e2c
[732/906] build: fix repeated typedefs
...
Write forward declarations in another way to avoid
repeated typedefs "error: redefinition of typedef".
Raised when using i686-apple-darwin11-llvm-gcc-4.2
It seems that C apple compiler does not support
C11 feature.
https://bugzilla.gnome.org/show_bug.cgi?id=703885
2014-03-15 18:36:57 +01:00
Matthew Waters
cdbe8c2d0e
[715/906] display: inherit from the right object class
2014-03-15 18:36:56 +01:00
Matthew Waters
53753ad2e6
[709/906] display: some more cleanups
2014-03-15 18:36:56 +01:00
Matthew Waters
c60d94f1bc
[708/906] display: a cleanup and removal of old code
2014-03-15 18:36:56 +01:00
Matthew Waters
c799696b48
[707/906] display: move error_message to utils
2014-03-15 18:36:56 +01:00
Matthew Waters
393b483743
[706/906] display: move activate_context into utils
2014-03-15 18:36:56 +01:00
Matthew Waters
dbeb6a911b
[701/906] display: move context creation into window
2014-03-15 18:36:55 +01:00
Matthew Waters
5841abc5e4
[700/906] display: move most of the code into utils for sorting later
...
This contains a hack that essentially requires one GstGLDisplay
per process.
2014-03-15 18:36:55 +01:00
Matthew Waters
96114e62cb
[699/906] display: remove list of upload and download objects
...
and only create an up/download object when needed.
2014-03-15 18:36:55 +01:00
Matthew Waters
d76a61608d
[698/906] move sink-specific stuff from GstGLDisplay into glimagesink
2014-03-15 18:36:55 +01:00
Matthew Waters
ab0abf649f
[670/906] display: replace glib deprecated api
2014-03-15 18:36:54 +01:00
Matthew Waters
9e8eb32080
[669/906] window: seperate object creation and context creation
2014-03-15 18:36:53 +01:00
Matthew Waters
7b03a572d9
[647/906] remove dependecy on glew
2014-03-15 18:36:52 +01:00
Matthew Waters
f4ccde9bf1
[643/906] display: privatise most of the struct
2014-03-15 18:36:52 +01:00
Matthew Waters
fa3c3b8434
[642/906] add gstglconfig.h for apps to find out what our capabilites are
...
ie libgstgl can be compiled with any combination of opengl/gles2
2014-03-15 18:36:52 +01:00
Matthew Waters
cc8e54541b
[624/906] OPENGL_ES2 => HAVE_GLES2 and add HAVE_OPENGL
...
use GstGLAPI to determine which code paths to execute.
perform some cleanups
2014-03-15 18:36:51 +01:00
Matthew Waters
e47b04c460
[608/906] add GST_GL_PLATFORM_ANY for choosing any platform
2014-03-15 18:36:50 +01:00
Matthew Waters
93f7e993ad
[603/906] update FSF address
2014-03-15 18:36:50 +01:00
Matthew Waters
12bf1cfa27
[600/906] docs: add docs for new objects and expand on some existing ones
2014-03-15 18:36:49 +01:00
Matthew Waters
4716682c55
[590/906] up/download: fix scaling on transfer
...
i.e. uploading from a 10x10 video frame to a 20x20 texture into another 30x30 videoframe
2014-03-15 18:36:49 +01:00
Matthew Waters
88cb7e3060
[573/906] add upload and download library objects
...
allows multiple upload pipelines that previously wasn't possible
(i.e. upload RGB and I420 and ... on the same GstGLDisplay)
2014-03-15 18:36:48 +01:00
Matthew Waters
0e5daa29f7
[524/906] GstGLDisplay: rework the download code
...
data paramaters now take GstVideoFrame
remove redundant parameters
2014-03-15 18:36:45 +01:00
Matthew Waters
369905e5bd
[515/906] GstGLDisplay: rework gen_texture and upload
...
rename functions so that other code can create textures in the GL thread
change upload functions to take a GstVideoFrame
default to GLSL for upload conversion
2014-03-15 18:36:44 +01:00
Julien Isorce
0c7080e7a1
[498/906] gldisplay: don't pass non-constant strings as printf format strings
...
Fixes 'format not a string literal and no format arguments' on darwin
2014-03-15 18:36:43 +01:00
Julien Isorce
f639d6096d
[481/906] feature checking: error out instead of doing nothing if an OpenGL feature is not present
...
Fix bug #572767
2014-03-15 18:36:42 +01:00
Tim-Philipp Müller
0cefeead18
[463/906] Add some more G_{BEGIN,END}_DECLS to public headers
...
https://bugzilla.gnome.org/show_bug.cgi?id=637260
2014-03-15 18:36:41 +01:00
Julien Isorce
2b46c87bd0
[455/906] glimagesink: handle pixel-aspect-ratio
2014-03-15 18:36:41 +01:00
Julien Isorce
3e1bffc802
[406/906] glimagesink: add a client-data property
...
Also add it to glfilterapp.
Fixes #559131
2014-03-15 18:36:38 +01:00
Julien Isorce
db7d436bd8
[387/906] glmixer: add a glmixer base element
...
glmixer can be seen as a glfilter except it handles N requested
sink pads.
Each sink pad and the src pad are video/x-raw-gl.
glmixer is responsible for managing different framerates from inputs.
It uses OpenGL context sharing. It means that each input is in its
own OpenGL context shared together and shared with the OpenGL context
of the ouput gl chain.
Also add a glmosaic which is an example of implementation of glmixer.
For now glmosaic is a cube but it will be fixed in the next commits.
For now the glmixer has some weird behaviours in some configurations
but it will be improved in the next commits.
The autotools builds is temporarly broken since those changes
have been made on win32.
2014-03-15 18:36:37 +01:00
Julien Isorce
30631c4626
[378/906] gldisplay: avoid to request gl thread when deleting a texture
...
A texture is not destroyed when when we are done with it.
This texture is just added to the texture pool in order to be
re-used. In this case no OpenGL code is executed so we do not need to
request gl thread.
2014-03-15 18:36:36 +01:00