Sebastian Dröge
435810b238
gl/cocoa: Always update our viewport if Cocoa tells us something has changed
...
The visible rect and bounds might be the same as before, but Cocoa
might've changed our viewport without us nothing. This happens if
you hide the view and show it again.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
b44798d549
gl/cocoa: Handle NSView::renewGState() properly
...
Don't update the screen until we redraw, this prevents flickering during
scrolling, clipping, resizing, etc
2017-12-09 19:31:47 +00:00
Lubosz Sarnecki
28d4d57180
gltransformation: graphene multiplication order has changed
...
https://bugzilla.gnome.org/show_bug.cgi?id=733510
2017-12-09 19:31:47 +00:00
Matthew Waters
d30a476c1c
glvideomixer: update element documentation
2017-12-09 19:31:47 +00:00
Matthew Waters
d4592ec132
tests/glcolorconvert: do reorder checking for rgba formats
2017-12-09 19:31:47 +00:00
Matthew Waters
e6bd70d580
glcolorconvert: convert xRGB into ARGB properly
...
The alpha channel might not be the last component so check which one
it is in and clobber that one instead.
2017-12-09 19:31:47 +00:00
Matthew Waters
652753de18
tests/glmemory: add simple transfer test
...
tests transferring to/from the GL with a 1x1 RGBA pixel.
2017-12-09 19:31:47 +00:00
Matthew Waters
5c7b5e0210
glmemory: unset the opposite corresponding transfer flags when mapped with write
...
fixes consistency with consecutive gst_memory_map()'s with
flags & GST_MAP_WRITE
2017-12-09 19:31:47 +00:00
Sebastian Dröge
b1a5ae7c0d
gl/cocoa: Update viewport according to the current clipping
...
We have to update the GL viewport if the NSView is only partially
visible. Otherwise the content of the frame will be visibly offset.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
9ff86a3c54
gl/cocoa: Improve the NSApplication initialization
...
This is only for non-Cocoa apps but previously caused a 2 second
waiting during startup for Cocoa apps. This is unacceptable.
Instead we now check a bit more extensive if something actually
runs on the GLib default main context, and if not don't even
bother waiting for something to happen from there.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
7cf214796a
gl/cocoa: NSView::drawRect() should call into reshape too
...
We a) need to render again because part of the window was
obscured and b) might need to reshape because of clipping
changes.
2017-12-09 19:31:47 +00:00
Sebastian Dröge
32b23a340e
gl/cocoa: Call UI related API from the application main thread
2017-12-09 19:31:47 +00:00
Sebastian Dröge
02b3e26854
gl/cocoa: Switch to a plain NSView subclass instead of NSOpenGLView
...
We don't and can't use NSOpenGLView as it's supposed to be used and
it gets into our way by being to clever in various situations.
2017-12-09 19:31:47 +00:00
Edward Hervey
ef00d85f16
glcontext: Initialize variable
...
Avoids the following warning:
gstglcontext.c:647:58: error: 'prev' may be used uninitialized in
this function [-Werror=maybe-uninitialized]
2017-12-09 19:31:47 +00:00
Jan Schmidt
6b96a87003
examples: Fix Qt/GL qglwtextureshare example for X11
...
We need to pass the X11 display to GstGL or else it will
use its own X11 Display pointer, and the GL Context won't get shared
correctly on newer X servers
2017-12-09 19:31:47 +00:00
Jan Schmidt
491513adf6
examples: port GL/Qt examples to Qt5
...
Update the GL Qt integration examples for Qt5 changes and for GstGL
signal signature changes.
2017-12-09 19:31:47 +00:00
Matthew Waters
ca476f03a8
glcontext: fixup error in sharegroup comment
2017-12-09 19:31:47 +00:00
Matthew Waters
aeb60d850d
Revert accidental push: "gltestsrc: implement checkers pattern with GLSL"
...
This reverts commit eae09179f0
.
2017-12-09 19:31:47 +00:00
Matthew Waters
817417c005
glcontext: detect the sharegroup case where the context are in different chains
...
In the end they will lead to the same root context in the tree so check that
for equality.
2017-12-09 19:31:47 +00:00
Wang Xin-yu (王昕宇)
14f297b61c
gltestsrc: implement checkers pattern with GLSL
2017-12-09 19:31:47 +00:00
Matthew Waters
80be2d046b
glfilter: silence a warning with empty input caps
...
discovered with the doublecube example
gst_caps_get_features: assertion 'index < GST_CAPS_LEN (caps)' failed
2017-12-09 19:31:47 +00:00
Matthew Waters
b2df178d41
examples/gl: update for signal signature change
2017-12-09 19:31:47 +00:00
Matthew Waters
7d99c66ca5
gloverlay: fix zero output frames with YUY2/UYVY
...
also, be nice and disable blending for other elements
2017-12-09 19:31:47 +00:00
Matthew Waters
0e89ab4c91
gloverlay: protect desktop gl specific tokens with #if
2017-12-09 19:31:47 +00:00
Matthew Waters
f4afec4657
gloverlay: free the image memory every time the location changes
...
fixes a memory leak
2017-12-09 19:31:47 +00:00
Sebastian Dröge
17fa8eac04
gloverlay: Include into the build with GLES2 only too
2017-12-09 19:31:47 +00:00
Matthew Waters
1c4e5c2aeb
gltestsrc: free the shader on stop
2017-12-09 19:31:47 +00:00
Matthew Waters
f5006bdf09
glvideomixer: fix blending with low-alpha sources
...
We also need to apply the blend paramaters to the alpha channel otherwise
the output of the blend will appear black at low alpha values (< 0.2).
2017-12-09 19:31:46 +00:00
Matthew Waters
96208c1694
gloverlay: reimplement everything
...
- update for shaders
- add alpha property
- image placement properties shamelessly borrowed from gdkpixbufoverlay
- image placement properties are GstController able
- use GstGLMemory for the overlay image data
- add support for gles2
2017-12-09 19:31:46 +00:00
Sebastian Dröge
ec0d04acec
gl/cocoa: Switch from our custom main loop to a GMainLoop
...
Simplifies code a lot and makes it more similar to the other backends.
2017-12-09 19:31:46 +00:00
Sebastian Dröge
6c8f7f9dd5
gl/cocoa: Clear the current GL context when it should happen
2017-12-09 19:31:46 +00:00
Matthew Waters
07489f7b76
glvideomixer: skip input frames with an alpha of 0
2017-12-09 19:31:46 +00:00
Matthew Waters
ae919f4475
gl: download whenever we have sysmem capsfeatures
...
Otherwise we could pass on a RGBA formatted buffer and downstream would
misinterpret that as some other video format.
Fixes pipelines of the form
gleffects ! tee ! xvimagesink
2017-12-09 19:31:46 +00:00
Lubosz Sarnecki
3fcfcbbb87
gltestsrc: add Mandelbrot fractal pattern.
...
https://bugzilla.gnome.org/show_bug.cgi?id=735131
2017-12-09 19:31:46 +00:00
Lubosz Sarnecki
67732e4883
gltestsrc: implement snow pattern with GLSL.
...
https://bugzilla.gnome.org/show_bug.cgi?id=735131
2017-12-09 19:31:46 +00:00
Matthew Waters
ccf8f014f0
glupload: fallback to upload if contexts cannot share GL resources
...
Fixes pipelines of the form
gleffects ! tee ! glimagesink
as tee does not pass on the allocation query.
2017-12-09 19:31:46 +00:00
Matthew Waters
14630fac38
glcontext: add gst_gl_context_can_share
...
Which determines whether two GstGLContext's can share sharable
OpenGL resources.
2017-12-09 19:31:46 +00:00
Matthew Waters
d946559238
gl/tests: update for upload API changes
2017-12-09 19:31:46 +00:00
Sebastian Dröge
9dd4f40ad6
gl: Let gst_gl_context_get_thread() return a new reference to the GThread
...
Otherwise it might go away in the meantime and the caller has some random pointer.
2017-12-09 19:31:46 +00:00
Anuj Jaiswal
e9e84da30a
gl: consecutive return, break statement
...
Signed-off-by: Anuj Jaiswal <anuj.jaiswal@samsung.com>
https://bugzilla.gnome.org/show_bug.cgi?id=736939
2017-12-09 19:31:46 +00:00
Matthew Waters
678e7b49b2
gl/debug: desktop GL does not have the KHR suffixes
2017-12-09 19:31:46 +00:00
Matthew Waters
821bc8da5b
examples/gl/gtk: use the sync bus callback to set the window handle
...
And output error messages.
2017-12-09 19:31:46 +00:00
Tim-Philipp Müller
9cccbb315c
gl: add since markers for new API
2017-12-09 19:31:46 +00:00
Matthew Waters
a793bda9b4
glmemory: add debug line for freeing textures
2017-12-09 19:31:46 +00:00
Matthew Waters
6491af9ffc
glupload: provide the output buffer that is rendered into
...
Allows callers to properly reference count the buffers used for
rendering.
Fixes a redraw race in glimagesink where the previous buffer
(the one used for redraw operations) is freed as soon as the next
buffer is uploaded.
1. glimagesink uploads in _prepare() to texture n
1.1 glupload holds buffer n
2. glimagesink _render()s texture n
3. glimagesink uploads texture n+1
3.1 glupload free previous buffer which deletes texture n
3.2 glupload holds buffer n+1
4. glwindow resize/expose
5. glimagesink redraws with texture n
The race is that the buffer n (the one used for redrawing) is freed as soon as
the buffer n+1 arrives. There could be any amount of time and number of
redraws between this event and when buffer n+1 is actually rendered and thus
replaces buffer n as the redraw source.
https://bugzilla.gnome.org/show_bug.cgi?id=736740
2017-12-09 19:31:46 +00:00
Matthew Waters
4e75ceba46
glcontext: add API to retreive the thread that context is active in
2017-12-09 19:31:46 +00:00
Sanjay NM
4f6e9f4e41
gl: Removed unreachable break, unused variable
...
https://bugzilla.gnome.org/show_bug.cgi?id=736957
2017-12-09 19:31:46 +00:00
Ognyan Tonchev
7e21e35eac
glfilter: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736732
2017-12-09 19:31:46 +00:00
Ognyan Tonchev
3a70f04113
gltestsrc: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736730
2017-12-09 19:31:46 +00:00
Ognyan Tonchev
276b682559
glmixer: do not leak pool in error cases
...
https://bugzilla.gnome.org/show_bug.cgi?id=736729
2017-12-09 19:31:46 +00:00