Commit graph

2054 commits

Author SHA1 Message Date
Julien Isorce 95dbe51fef [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.
2017-12-09 19:31:22 +00:00
Julien Isorce fa41020ee4 [377/906] gldisplay: avoid to request gl thread when generating a texture
Thanks to the texture pool the gl textures are re-used.
When re-using one, no opengl code is executed so do not need
to request gl thread.
2017-12-09 19:31:22 +00:00
Stefan Kost fa9177d037 [376/906] build: support openGLES on linux via autofoo. Partialy fixes #593786
Add a pkg-config check for opengl and if not found assume opengl-es. If user has
none of both one still get build error later on (there is no pkg-config for
opengl-es).
Add more files to EXTRA dist and build the opengles variant if selected.
Simmilar changes could be done for the winCE backend.
2017-12-09 19:31:22 +00:00
Julien Isorce 8bed6a5e85 [369/906] define missing glew macro on older versions 2017-12-09 19:31:22 +00:00
Julien Isorce 2e22bb4560 [368/906] Cocoa backend: fix crash when resizing
Default implementation of NSOpenglView::update is not safe because it
just calls update on the opengl context whereas we are not in the gl thread.
Also fix the white flickering when resizing, because now we need to call
the draw callback manually when resizing.
2017-12-09 19:31:22 +00:00
Julien Isorce e467ea29e9 [365/906] Cocoa backend: make sure that nsapp is initialized
gst-launch-0.10 videotestsrc ! tee name=t ! queue ! glimagesink t. ! queue ! glimagesink
now works properly on MacOSX
2017-12-09 19:31:22 +00:00
Julien Isorce 8d6e91838a [364/906] make the cmake build work on MacOSX
We can now generate a Xcode project (or Unix Makfiles),
see INSTALL file
2017-12-09 19:31:22 +00:00
Julien Isorce 54ba5bccf5 [363/906] Cocoa backend: fix crash when closing
- All gstglwindow members are now modified only in the gl thread
to avoid thread concurrency
- OpenGL context is now properly clean
- fix a couple of things in implementation of xoverlay interface
2017-12-09 19:31:22 +00:00
Julien Isorce b7162375a3 [362/906] make cocoa backend work on MacOSX
It works with both gst-launch and a cocoa app (non-embedded and embedded)
But there is still some problems:
  - sometimes crash when closing
  - flickering when resizing
  - embedded mode not perfect

I will first make the CMake build work with cocoa backend
in order to generate a XCode project.
Then it should be easier to fix those issues.
2017-12-09 19:31:22 +00:00
Jan Schmidt 8884cfefa8 [358/906] gstgldisplay: Close a small race starting the display thread
Take the display lock before signalling the create-context cond
to ensure the caller has dropped the lock and is therefore listening
for the signal.
2017-12-09 19:31:22 +00:00
Jan Schmidt 4ddbded3a8 [357/906] x11: Don't crash when the X11 display is not available.
Error out cleanly instead of crashing when the X11 display can't
be contacted.
2017-12-09 19:31:22 +00:00
Jan Schmidt 3fbe0f0a98 [352/906] fix typo
Change GST_GL_DISPLAY_PROJECTION_PERSPECIVE to
GST_GL_DISPLAY_PROJECTION_PERSPECTIVE.

Re-indent a couple of files that needed it.
2017-12-09 19:31:22 +00:00
Julien Isorce f3fef483ec [350/906] fix window position when using xoverlay
x, y are the coordinates of the position inside
the new parent window.

Fixes #584877
2017-12-09 19:31:22 +00:00
Julien Isorce ca1a2d33ca [349/906] can switch xoverlays while playing
Fixes bug #584877

Before this commit calling "gst_x_overlay_set_xwindow_id" more
than one time, had no effect.
It mainly affects the glimagesink implementation.
But on win32 (and CE), some stuff has to be done to
release the old parent.

And add a switchxoverlay example where the user
can click on left/right part of the main window to
switch the xoverlay.
2017-12-09 19:31:21 +00:00
LRN 389982df17 [347/906] fix miscast of a pointer in SetWindowLongPtr
GCC 4.4.0 complains error: cast from pointer to integer of different size
Fixes #584678.
2017-12-09 19:31:21 +00:00
Sebastian Dröge 3b0dacd8d6 [346/906] Fix linking by providing libtool the correct --tag parameter 2017-12-09 19:31:21 +00:00
Julien Isorce de9f763bff [337/906] Improve cluttershare example
Use clutter_threads_API.
When just using glupload from rgb, we have to be sure that
the upload texture is not in use in our gst gl context.
2017-12-09 19:31:21 +00:00
Julien Isorce 9f8473cce0 [336/906] [x11/x11ES] fix some pointer cast warnings 2017-12-09 19:31:21 +00:00
Julien Isorce 0a649b133d [335/906] [cocoa] update since interface changed 2017-12-09 19:31:21 +00:00
Julien Isorce f631cf4976 [334/906] [win32/winCE] fix some pointer cast warnings with mingw
And turn off deprecated Wp64 msvc compiler option.
2017-12-09 19:31:21 +00:00
Julien Isorce d43fdd3daf [333/906] add force-aspect-ratio support 2017-12-09 19:31:21 +00:00
Julien Isorce d1bd71e82b [331/906] indent and fix some compiler warnings 2017-12-09 19:31:21 +00:00
Julien Isorce 2eb9cb551c [330/906] Can now share textures with an external gl context
The external opengl context must be specify when creating
our OpenGL context (glx) or just after (wgl).
When calling glXCreateContext or wglShareLists, the
external opengl context must not be current.
Then our gl context can be current in the gl thread while
the external gl context is current in an other thread.
See tests/examples/clutter/cluttershare.c
2017-12-09 19:31:21 +00:00
David Schleef 09704b9e70 [329/906] Build for Cocoa on darwin, with various fixes 2017-12-09 19:31:21 +00:00
Julien 095be23366 [327/906] fix init FBO's texture attachment on ES 2.0 2017-12-09 19:31:21 +00:00
Julien fd2028d109 [326/906] add X backend for OpenGL ES 2.0 2017-12-09 19:31:21 +00:00
Julien Isorce ad8b227ff7 [322/906] [download YUY2/UYVY] fix a regression
The call to glLoadIdentity was removed by mistake during
OpenGL ES 2.0 integration.
2017-12-09 19:31:21 +00:00
Julien Isorce 61a8f34442 [321/906] add OpenGL ES 2.x support.
In OpenGL 2.x for Embedded System, a lot of basic scene/draw functions
have been removed. It means that everything is made using vertex and
fragment shaders.
I have also added a gstglwindow backend for winCE that uses EGL
(Native Platform Graphics Intercace) (which is a full part of
OpenGL ES specification). It remove the use of wgl/glx functions.
2017-12-09 19:31:21 +00:00
Julien Isorce 3c92a741a4 [320/906] fix position and content rect 2017-12-09 19:31:21 +00:00
Julien Isorce 8a77e2d859 [319/906] [win32 backend] fix transmition message to the parent.
The Qt mouvexoverlay example shows how to rotate the cube
by moving (+click) the mouve over a qwidget using xoverlay
interface.
2017-12-09 19:31:21 +00:00
Julien Isorce dbdc0fb9eb [318/906] rename GNUmakefile(s) to GNUmakefile(s).gnustep 2017-12-09 19:31:21 +00:00
Julien Isorce 4ccd32c444 [317/906] implement gstglwindow for Cocoa (MacOS and GNUstep) 2017-12-09 19:31:21 +00:00
Julien Isorce 573f54433c [315/906] add GNUstep build 2017-12-09 19:31:21 +00:00
David Schleef 4067c47794 [314/906] Add srcdir to includes for out-of-source builds
When you use gstreamer uninstalled and build outside
the source tree, the includes need to be specified for
both the source tree and the build tree.
2017-12-09 19:31:21 +00:00
David Schleef 2e2213fbd7 [310/906] Global reindent
Indent parameters:
INDENT_PARAMETERS="--braces-on-if-line \
        --case-brace-indentation0 \
        --case-indentation2 \
        --braces-after-struct-decl-line \
        --line-length80 \
        --no-tabs \
        --cuddle-else \
        --dont-line-up-parentheses \
        --honour-newlines \
        --continuation-indentation4 \
        --tab-size8 \
        --indent-level2"
2017-12-09 19:31:21 +00:00
Sebastian Dröge 10494006b8 [309/906] Replay: Fix callbacks passed over XEvents on 64 bit architectures
Althought the XEvent's xclient.data.l array is an array of
longs they will be constrained to 32 bit by the X11 protocol.
On 64 bit architectures use two elements of the array to store
one pointer.
This fixes segfaults that happen at least for every example
on startup.
2017-12-09 19:31:21 +00:00
Julien Isorce c83cbcd398 [306/906] fix CMake build and frozen CodeBlocks build 2017-12-09 19:31:21 +00:00
Julien Isorce 3b8429c2df [304/906] only load RGBA files.png 2017-12-09 19:31:21 +00:00
Julien Isorce c060a8896d [301/906] depends on libpng instead of gdk_pixbuf 2017-12-09 19:31:21 +00:00
David Schleef f0b62d760f [298/906] Revert "Fix indention"
This reverts commit 96e4ab18c2cf9876f6c031b9aba6282d0bd45a93.

You should have asked first.  And you would have been told "no",
because it causes people on development branches to do a huge
amount of extra work.
2017-12-09 19:31:21 +00:00
David Schleef 2f0e5b1dc4 [297/906] Revert "Fix callbacks passed over XEvents on 64 bit architectures"
This reverts commit 280771d09b58617b27201027de0e1194da376e72.
2017-12-09 19:31:21 +00:00
Sebastian Dröge babd51c58f [296/906] Fix callbacks passed over XEvents on 64 bit architectures
Althought the XEvent's xclient.data.l array is an array of
longs they will be constrained to 32 bit by the X11 protocol.
On 64 bit architectures use two elements of the array to store
one pointer.
This fixes segfaults that happen at least for every example
on startup.
2017-12-09 19:31:21 +00:00
Sebastian Dröge 809c2ec04c [295/906] Fix indention 2017-12-09 19:31:21 +00:00
Sebastian Dröge 0068125ec8 [294/906] Fix format string compiler warnings by using G_GUINT64_FORMAT 2017-12-09 19:31:20 +00:00
David Schleef 71db1285d8 [291/906] Add check for GLEW_EXT_framebuffer_object 2017-12-09 19:31:20 +00:00
David Schleef d98d188ad7 [290/906] Set GL_LIBS correctly in configure.ac
This doesn't detect the existence of libraries, which needs to
be fixed.
2017-12-09 19:31:20 +00:00
David Schleef 978ded841c [289/906] build fixes for Windows libraries 2017-12-09 19:31:20 +00:00
Julien Isorce e184ad8a58 [288/906] add more debug ouputs about GLSL and mesa 2017-12-09 19:31:20 +00:00
julien 20298ee810 [287/906] fix a regression about glXChooseVisual which failed when using mesa, so attributes must be less restrictives. 2017-12-09 19:31:20 +00:00
Julien Isorce 76b6fcab5b [286/906] [win32] Register window class in gst_gl_window_class_init 2017-12-09 19:31:20 +00:00