Reynaldo H. Verdejo Pinochet
bab81de275
eglglessink: Put EGL/GLES context vars on their own struct
2012-10-18 14:35:15 +02:00
Sebastian Dröge
2323c40f1b
eglglessink: Correctly implement ::expose()
...
We don't need the past buffer for this, the old one is still available
as texture and we just need to draw our rectangle again.
2012-10-18 14:35:15 +02:00
Sebastian Dröge
18e473307f
eglglessink: Allow setting another window for the next time we reconfigure everything
2012-10-18 14:35:14 +02:00
Sebastian Dröge
aa463f0274
eglglessink: Also unref current caps after usage
2012-10-18 14:35:14 +02:00
Sebastian Dröge
c2de59b19c
eglglessink: Implement support for caps changes
2012-10-18 14:35:14 +02:00
Sebastian Dröge
d91621d2ce
eglglessink: More cleanup and making the element reusable
2012-10-18 14:35:14 +02:00
Sebastian Dröge
56b711bd29
eglglessink: Properly init/release resources when going from NULL->READY and the other way around
2012-10-18 14:35:14 +02:00
Sebastian Dröge
15c93da54e
eglglessink: Generate the sink caps exactly once
2012-10-18 14:35:14 +02:00
Sebastian Dröge
ad6e314a6e
eglglessink: Fix code style a bit to stop confusing indent
2012-10-18 14:35:14 +02:00
Sebastian Dröge
4e637ddb7b
eglglessink: Fix support for YUY2 and UYVY
2012-10-18 14:35:14 +02:00
Sebastian Dröge
9e094541b0
eglglessink: Some property cleanup
2012-10-18 14:35:14 +02:00
Sebastian Dröge
25eb488f30
eglglessink: Add support for the remaining RGB formats
2012-10-18 14:35:14 +02:00
Sebastian Dröge
11368b49b2
eglglessink: Add support for Y444, Y42B and Y41B, just because it's so easy
2012-10-18 14:35:14 +02:00
Sebastian Dröge
d98d5c657e
eglglessink: Add some simple TODOs
2012-10-18 14:35:14 +02:00
Reynaldo H. Verdejo Pinochet
98b9862167
eglglessink: Lock while altering display region coords
2012-10-18 14:35:14 +02:00
Reynaldo H. Verdejo Pinochet
a2fce44139
eglglessink: Fix _get_compat_format_from_caps() logic
...
It's a getter so it shouldn't messing with the sink context.
Adding insult to injury it was setting selected_fmt without
locking.
The associated changes to the buffer functions are merely
make-it build fixes. Those functions are barely drafted
and in WIP state.
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
47d0505f40
eglglessink: Drop unneded initial set to NULL
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
0c681dc2a6
eglglessink: Minor formatting and comment fixes
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
63d8cd88c7
eglglessink: Clean-up gl/egl allocations at _stop()
...
Also, conditionaly destroy window if the sink created its own.
2012-10-18 14:35:13 +02:00
Sebastian Dröge
99765c3333
eglglessink: Add support for NV12 and NV21
...
Also YUY2 and UYVY but this is disabled for now as it
doesn't work completely yet. Something is wrong with
the chroma.
2012-10-18 14:35:13 +02:00
Sebastian Dröge
72d05a681f
eglglessink: Add support for I420 and YV12 color formats
2012-10-18 14:35:13 +02:00
Sebastian Dröge
d3995c1a7b
eglglessink: Preparations for supporting multiple textures for more YUV formats
2012-10-18 14:35:13 +02:00
Sebastian Dröge
3f734aafc7
eglglessink: Use the attrib locations as really used inside the shader
2012-10-18 14:35:13 +02:00
Sebastian Dröge
24261a4fe7
eglglessink: Really decouple vertex and texture positions in the shader
2012-10-18 14:35:13 +02:00
Sebastian Dröge
dafcdb0da3
eglglessink: Decouple texture and vertex positions
2012-10-18 14:35:13 +02:00
Sebastian Dröge
cb034b2ecd
eglglessink: Reorder vertex value order to make a bit more sense
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
8018681187
eglglessink: Handle frame scaling to fill surface
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
90d5b76dc5
eglglessink: Draft set_render_rectangle() from the xOverlay interface
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
f8b69a7c7f
eglglessink: Remove stale comment
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet
1c008e95b3
eglglessink: Move VBO setup to setcaps
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
d56d126031
eglglessink: Don't do context ops at render
...
We don't need to repeatedly call
eglMakeCurrent() while using the
same context anyway.
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
ca74f676fd
eglglessink: Don't clear surface color at render
2012-10-18 14:35:12 +02:00
Sebastian Dröge
9e23d0fc87
eglglessink: Rename shader variables to make more sense
2012-10-18 14:35:12 +02:00
Sebastian Dröge
d42d5e1139
eglglessink: Add support for AYUV
2012-10-18 14:35:12 +02:00
Sebastian Dröge
c4643491c4
eglglessink: Reorder caps a bit to make more sense
2012-10-18 14:35:12 +02:00
Sebastian Dröge
6adf608c99
eglglessink: Set rank to PRIMARY
2012-10-18 14:35:12 +02:00
Sebastian Dröge
1c58d921ff
eglglessink: Add support for RGBA
2012-10-18 14:35:12 +02:00
Sebastian Dröge
930b4c179e
eglglessink: Correctly generated caps for the supported formats
2012-10-18 14:35:12 +02:00
Sebastian Dröge
f9a5fc255d
eglglessink: Add ::get_caps() vfunc that returns the actually supported caps
2012-10-18 14:35:12 +02:00
Sebastian Dröge
86ebf86433
eglglessink: Also require a configuration with EGL_SURFACE_TYPE containing EGL_WINDOW_BIT
2012-10-18 14:35:12 +02:00
Sebastian Dröge
7e8cc569dd
eglglessink: Fix compiler warnings
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
19c3b4d892
eglglessink: Clear surface to black by default
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
19739bfb74
eglglessink: Make sure we get a config we can use with GLES2
2012-10-18 14:35:12 +02:00
Reynaldo H. Verdejo Pinochet
24b926a6cc
eglglessink: set_window_handle() has been tested to work now
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
7ac284b1a1
eglglessink: Avoid autoscaling by default
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
a81b036355
eglglessink: Avoid repeatedly setting 2D resizing params
...
Moved to initial texture setup so it hapens
just once while on the same context.
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
a96fa541ee
eglglessink: Avoid initializing EGL at _set_window_handle()
...
_start() should take care of that.
This change asumes _setcaps() will
happen always after _start() is
done.
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
ead20f4f0b
eglglessink: Don't ask for a window if we already have one
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
22eb374b57
eglglessink: Fix EGL attribs var naming
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
c2cf1fa639
eglglessink: Fix slow path rendering on Android
...
Specify missing and mandatory params for npot
Before calling glTexImage2D.
In particular, _WRAP_T and _WRAP_S need to be
set to GL_CLAMP_TO_EDGE to avoid all-black
rendering with npot sized frames.
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
f33167f95b
eglglessink: Add test on usable eglconfigs returned
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
303a346fc2
eglglessink: Drop stale error_locked label
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
5763c8d308
eglglessink: Cleanup stale code comments
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
391137a20e
eglglessink: GlViewPort() should use actual surface size
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
f707961183
eglglessink: Avoid reiniting EGL after the first time
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
75fe18200a
eglglessink: Use correct template caps
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
e439c01382
eglglessink: Fix missing texture setup bits
2012-10-18 14:35:11 +02:00
Reynaldo H. Verdejo Pinochet
68eac71910
eglglessink: Add error checking on eglSwapBuffers
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
f8dcc8aaa5
eglglessink: Fix stale&wrong 0.5 alpha blend
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
12d66a7d54
eglglessink: Add float precision specifier to fragment shader
...
This is required by GLES and fixes compilation of fragment
shader prog.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
28aadcad4e
eglglessink: Add log reporting at shader compilation failure
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
b4887425cc
eglglessink: Add some missing checks on shader ops
...
- Check whether there is shader compiler support
and bail out otherwise.
- Add checks on compile and linking ops
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
2a84a72fe7
eglglessink: Fix setup chain logic
...
Mostly a procedural reordering. Idea is to avoid
trying to setup a surface without a display.This
change relies on the asumption that:
1.- set_window_handle() can happen at any time
2.- setcaps will never get called before _start()
is done.
If both conditions are meet the new procedure
should work as expected.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
40d6cc2099
eglglessink: WIP: Reorder locking
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
289f388085
eglglessink: Fix xOverlay logic
...
Several fixes dealing with correct window
creation and set_handle() ops. Tested on
X11/mesa with internal window creation.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
9e18b29be2
eglglessink: Actually test EGL configs before claiming support
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
59b1870ac1
eglglessink: Caps nego EGL fixes
...
- Fix alloc lol on format list: Asked for 2 slices and used 3.
- Reordered display & context init logic to prepare for actual
config checking before claiming support for a given format.
Change deals basically with setting up EGL display at start()
and choose an EGL config only at setcaps time.
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
a8f60690aa
eglglessink: Caps nego. Start extending RGB support to a set.
2012-10-18 14:35:10 +02:00
Sebastian Dröge
bd28c42fae
eglglessink: Fix build of static plugin
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
a83dae1b54
eglglessink: Drop wrong format test on _setcaps (draft leftover)
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
75d4bf420a
eglglessink: Support RGB24 by default
2012-10-18 14:35:10 +02:00
Reynaldo H. Verdejo Pinochet
1d77bf6c0f
eglglessink: Instrument EGL error reporting
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
b8c83f98b7
eglglessink: Correctly return GstFlowReturn from render_and_display()
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
cca08a02a1
eglglessink: Move VBO setup to it's own function
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
3fce24549f
eglglessink: Fix render_and_display logic
...
Switch procedure according to enabled rendering path
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
ada5a83eb4
eglglessink: Fix sample launch line with disabled window creation
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
086563195c
eglglessink: Rename stale android leftover
2012-10-18 14:35:09 +02:00
Reynaldo H. Verdejo Pinochet
ea03067f3f
eglglessink: Move eglgles Sink to ext/ #2
2012-10-18 14:35:09 +02:00