1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-27 09:32:40 +00:00
mpv/video
wm4 7fb972fd39 vo_gpu: EGL: fix transparency on X11/EGL/Mesa
Transparent windows on X11/EGL/native Mesa GL didn't work for various
reasons. From what I remember, the current code did work with nvidia at
least. Mesa has made attempts to fix this, but they never really made it
in.

But it turns out you can make EGL/Mesa list the EGLConfigs that use X11
RGBA visuals, and context_x11egl.c contains code that explicitly selects
them if alpha is requested (see pick_xrgba_config()).

The reason EGL/Mesa did not list them (and thus breaking transparency)
is because we requested a EGL_ALPHA_SIZE != 0 if alpha is requested. But
the transparent EGLConfigs use EGL_ALPHA_SIZE == 0. That's because EGL
doesn't actually support the concept of transparent windows; the alpha
size parameter is something else (memory rendering without FBOs or
something, I don't care enough to look up the real reasons).

This still won't work on Wayland. Every EGL backend needs platform
specific code. (Good job, EGL, such an awesome platform independent
standard.)

Fixes: #6590
2020-08-27 11:55:20 +02:00
..
decode options: make imgfmt options always accept "no" 2020-04-09 11:20:45 +02:00
filter draw_bmp: rewrite 2020-05-09 18:02:57 +02:00
out vo_gpu: EGL: fix transparency on X11/EGL/Mesa 2020-08-27 11:55:20 +02:00
csputils.c vo_gpu: reinterpret SDR white levels based on ITU-R BT.2408 2020-06-15 01:24:04 +02:00
csputils.h vo_gpu: reinterpret SDR white levels based on ITU-R BT.2408 2020-06-15 01:24:04 +02:00
cuda.c video: cuda: add explicit context creation for copy hwaccels 2019-12-29 14:32:47 -08:00
d3d.c
d3d.h
fmt-conversion.c video: alias IMGFMT_RGB30 to AV_PIX_FMT_X2RGB10 2020-06-17 19:43:09 +02:00
fmt-conversion.h
hwdec.c video: cuda: add explicit context creation for copy hwaccels 2019-12-29 14:32:47 -08:00
hwdec.h video: cuda: add explicit context creation for copy hwaccels 2019-12-29 14:32:47 -08:00
image_loader.c screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
image_loader.h
image_writer.c video: clean up some imgfmt related stuff 2020-05-18 01:54:59 +02:00
image_writer.h screenshot, vo_image: use global swscale/zimg parameters 2019-10-31 15:44:09 +01:00
img_format.c video: some concessions to big endian hosts 2020-06-17 19:44:45 +02:00
img_format.h img_format: expose another helper 2020-05-21 02:29:05 +02:00
mp_image_pool.c
mp_image_pool.h
mp_image.c mp_image: add helper for clearing regions outside of a rectangle 2020-05-22 14:18:35 +02:00
mp_image.h mp_image: add helper for clearing regions outside of a rectangle 2020-05-22 14:18:35 +02:00
repack.c repack: handle endian in a more general way 2020-06-17 19:43:09 +02:00
repack.h repack: add support for converting from/to float formats 2020-05-09 18:02:57 +02:00
sws_utils.c sws_utils: do not mutate src/dst parameters 2020-07-08 22:45:12 +02:00
sws_utils.h sws_utils: allow setting zimg options directly 2020-05-09 18:02:57 +02:00
vaapi.c vaapi: correct broken NULL check 2020-06-03 15:12:08 +02:00
vaapi.h
vdpau_functions.inc
vdpau_mixer.c
vdpau_mixer.h
vdpau.c video: remove RGB32/BGR32 aliases 2020-05-11 19:57:34 +02:00
vdpau.h
zimg.c zimg: add slice threading and use it by default 2020-07-15 22:59:17 +02:00
zimg.h zimg: add slice threading and use it by default 2020-07-15 22:59:17 +02:00