Matthew Waters
f58eb98440
gl/window: remove use of main_context_push/pop_thread_default()
...
No-one's using/depending on it (it would have criticalled and not worked)
and it's causing more problems than it's solving. Store the GMainContext
in the public struct instead for subclasses to optionally use instead of
relying on the push/pop state to be correct.
https://bugzilla.gnome.org/show_bug.cgi?id=775970
2016-12-16 00:02:47 +11:00
Matthew Waters
41a6448918
gl: GST_GL_TYPE -> GST_TYPE_GL
...
Some deprecated symbols are kept for backwards compatibility
2016-11-03 16:16:12 +11:00
Matthew Waters
27422da056
glwindow: remove unused draw_unlocked function
...
The functionality is provided by draw anyway and is leftover from
X11's specific threading requirements that no longer apply.
2015-09-28 16:44:05 +10:00
Matthew Waters
3addb6bbf4
glwindow: add API to request a resize event on the next draw
...
- glimagesink needs to be able to resize the viewport on aspect ratio
changes resulting from either caps changes or 3d output mode changes.
- Performing a glViewport outside the GstGLWindow::resize callback
will not have the winsys' stack of viewports required to correctly
place the output frame.
Provide a function to request a resize on the next draw event from the
winsys.
Also track size changes inside the base GstGLWindow class rather
than in each subclass.
https://bugzilla.gnome.org/show_bug.cgi?id=755111
2015-09-17 20:26:23 +10:00
Matthew Waters
4d9ae8ebba
wayland: fail window open if the display is the correct type
...
Errors out cleanly if a wayland compositor is not running
2015-07-27 18:23:33 +10:00
Matthew Waters
3b89d8a23c
glwindow: pass display to implementation's _new()
...
So they have to opportunity to fail if they cannot handle the
display connection.
https://bugzilla.gnome.org/show_bug.cgi?id=752743
2015-07-27 18:23:29 +10:00
Thiago Santos
045bfa10fe
Fix a common typo: retreive -> retrieve
...
Seems to have been copy pasted around a few places
2015-06-05 09:43:35 -03:00
Matthew Waters
fbbf1ac324
gl/window: use the default main loop implementation for all backends
...
fixes glimagsink being unable to display.
https://bugzilla.gnome.org/show_bug.cgi?id=750337
2015-06-04 12:16:35 +10:00
Sebastian Dröge
5b0c3ac153
gl: Fix compiler warning
...
gstglwindow_wayland_egl.c:246:41: error: unused variable 'surface_listener' [-Werror,-Wunused-const-variable]
static const struct wl_surface_listener surface_listener = {
^
2015-05-31 21:31:00 +02:00
Matthew Waters
e385adc241
gl/wayland: implement setting the render rectangle
...
Places our subsurface at the rectangle provided position
2015-05-31 16:09:34 +10:00
Matthew Waters
de389e07dc
gl/wayland: implement basic video overlay support via subsurfaces
...
Currently does not position the subsurface relative to the parent surface at all
2015-05-31 16:04:13 +10:00
Matthew Waters
be9739cd2f
gl/wayland: run each window on a separate queue
...
Based on patch by Julien Isorce <julien.isorce@collabora.co.uk>
https://bugzilla.gnome.org/show_bug.cgi?id=709747
2015-05-31 16:04:12 +10:00
Matthew Waters
2704fdaa59
gl/wayland: add GstGLDisplayWayland
...
Simple implementation split from GstGLWindowWayland
Can now have multiple glimagesink elements all displaying output
linked via GL or otherwise (barring GL platform limitations).
The intel driver is racy and can crash setting up the two glimagesink contexts.
e.g.
videotestsrc ! tee name=t ! queue ! glupload ! glimagesinkelement
t. ! queue ! gleffects_blur ! glimagesinkelement
videotestsrc ! glupload ! glfiltercube ! tee name=t ! queue ! glimagesinkelement
t. ! queue ! gleffects_blur ! glimagesinkelement
2015-05-25 17:39:14 +10:00
Matthew Waters
bc7a7259f3
gl/window: create the main loop/context on init/finalize
...
Avoids races setting the window handle from the main thread.
https://bugzilla.gnome.org/show_bug.cgi?id=745633
2015-03-11 13:52:15 +00:00
Matthew Waters
ab48bb6f0f
glwindow: remove width/height from _draw()
...
Depending on the platform, it was only ever implemented to 1) set a
default surface size, 2) resize based on the video frame or 3) nothing.
Instead, provide a set_preferred_size () that elements/applications
can use to request a certain size which may be ignored for
videooverlay/other cases.
2015-01-23 16:11:31 +11:00
Matthew Waters
2d97e03c54
gl/wayland: implement resizing the window using the right mouse button
2014-11-27 13:03:21 +11:00
Matthew Waters
cf7838a0b6
[862/906] window: remove set_need_lock
...
No-one is using it. The only code that did was the x11 one which
doesn't need it anymore.
2014-03-15 18:37:05 +01:00
Julien Isorce
9515519826
[823/906] wayland_egl: make the wayland backend actually work on Raspberry Pi
...
Fix resizing and can now move the window
2014-03-15 18:37:03 +01:00
Matthew Waters
db1c7a242b
[818/906] window: add send_message_async vmethod
...
- provide a default synchronous send_message
- make context creation threadsafe again
2014-03-15 18:37:02 +01:00
Matthew Waters
95c08c2ee2
[794/906] context: add subclasses for the different platforms (egl, glx, wgl, etc)
...
- most code taken from the Window subclasses
- tested combinations: xEGL, GLX, Wayland+EGL, Cocoa (under GNUStep), WGL (Wine)
2014-03-15 18:37:01 +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
Matthew Waters
3f90c6fbfd
[765/906] wayland: remove fullscreen
2014-03-15 18:36:59 +01:00
Sebastian Dröge
2b6e54d416
[752/906] glwindow: Add destroy notifies for the data of the callbacks
...
And actually call the close callback when the window is closed.
2014-03-15 18:36:58 +01:00
Sebastian Dröge
f36ee81a84
[741/906] wayland: Don't leak main context and loop
2014-03-15 18:36:58 +01:00
Sebastian Dröge
a8d5b21013
[727/906] egl: Refactor EGL logic into a helper object
2014-03-15 18:36:57 +01:00
Matthew Waters
96deb2fba3
[724/906] wayland: make reentrant
...
https://bugzilla.gnome.org/show_bug.cgi?id=703445
2014-03-15 18:36:57 +01:00
Matthew Waters
f6a9c807f6
[716/906] wayland: properly choose EGL_RENDERABLE_TYPE
...
based on the gl api we chose
2014-03-15 18:36:56 +01:00
Matthew Waters
4801abb13a
[712/906] wayland: shutdown properly
...
We cannot use _finalize as this will be called before GstGLWindow's
_finalize. This causes us to try and perform operations with the
wayland server when the connection has been severed.
2014-03-15 18:36:56 +01:00
Matthew Waters
118b947e57
[711/906] wayland: support choosing Desktop GL as the api
2014-03-15 18:36:56 +01:00
Matthew Waters
9e8eb32080
[669/906] window: seperate object creation and context creation
2014-03-15 18:36:53 +01:00
Matthew Waters
05d26c78e0
[639/906] add get_proc_address implementations for egl and glx
2014-03-15 18:36:52 +01:00
Matthew Waters
88a85e7e3b
[634/906] wayland egl: deactivate context before we destroy it
...
avoids a segfault with dri drivers
2014-03-15 18:36:51 +01:00
Matthew Waters
76dfdd656f
[629/906] window: add GError for error handling of context creation
2014-03-15 18:36:51 +01:00
Matthew Waters
fd998dc0a5
[621/906] GstGLRendererAPI => GstGLAPI and get GstGLAPI from a window
2014-03-15 18:36:51 +01:00
Matthew Waters
46082f2c02
[620/906] wayland_egl: attempt at resizing the video
2014-03-15 18:36:51 +01:00
Matthew Waters
4a07c73c0c
[618/906] add wayland-egl window backend
2014-03-15 18:36:50 +01:00