1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-25 00:02:13 +00:00
mpv/video
wm4 775e08ba65 vo_opengl: fix alpha values written to the framebuffer
When blending OSD and subtitles onto the video, we write bogus alpha
values. This doesn't normally matter, because these values are normally
unused and discarded. But at least on Wayland, the alpha values are used
by the compositor and leads to transparent windows even with opaque
video on places where the OSD happens to use transparency.

(Also see github issue #338.)

Until now, the alpha basically contained garbage. The source factor
GL_SRC_ALPHA meant that alpha was multiplied with itself. Use GL_ONE
instead (which is why we have to use glBlendFuncSeparate()). This should
give correct results, even with video that has alpha. (Or at least it's
something close to correct, I haven't thought too hard how the
compositor will blend it, and in fact I couldn't manage to test it.)

If glBlendFuncSeparate() is not available, fall back to glBlendFunc(),
which does the same as the code did before this commit. Technically, we
support GL 1.1, but glBlendFuncSeparate is 1.4, and I guess we should
try not to crash if vo_opengl_old runs on a system with GL 1.1 drivers
only.
2013-11-10 03:14:38 +01:00
..
decode vdpau: unbreak 2013-11-09 01:27:03 +01:00
filter configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
out vo_opengl: fix alpha values written to the framebuffer 2013-11-10 03:14:38 +01:00
csputils.c video: support setting libswscale chroma position 2013-07-25 23:03:20 +02:00
csputils.h video: support setting libswscale chroma position 2013-07-25 23:03:20 +02:00
fmt-conversion.c video: make IMGFMT_RGB0 etc. exist even if libavutil doesn't support it 2013-11-05 22:05:23 +01:00
fmt-conversion.h
image_writer.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
image_writer.h
img_format.c video: make IMGFMT_RGB0 etc. exist even if libavutil doesn't support it 2013-11-05 22:05:23 +01:00
img_format.h video: make IMGFMT_RGB0 etc. exist even if libavutil doesn't support it 2013-11-05 22:05:23 +01:00
img_fourcc.h
memcpy_pic.h memcpy_pic: reformat 2013-11-06 20:27:13 +01:00
mp_image_pool.c talloc: change talloc destructor signature 2013-10-13 01:16:30 +02:00
mp_image_pool.h mp_image_pool: make reference counting thread-safe 2013-07-28 19:25:07 +02:00
mp_image.c mp_image: add helper for copying image attributes 2013-11-03 23:55:16 +01:00
mp_image.h mp_image: add helper for copying image attributes 2013-11-03 23:55:16 +01:00
sws_utils.c Fix some more -Wshadow warnings 2013-11-01 17:35:38 +01:00
sws_utils.h Fix some more -Wshadow warnings 2013-11-01 17:35:38 +01:00
vaapi.c video/out: always support redrawing VO window at any point 2013-10-02 00:36:26 +02:00
vaapi.h vaapi: check image format in va_surface_upload() 2013-09-27 18:00:03 +02:00
vdpau_functions.inc video: check profiles with hardware decoding 2013-11-01 17:33:33 +01:00
vdpau.c vdpau: move device and video surface management from vo_vdpau.c to vdpau.c 2013-11-05 22:13:05 +01:00
vdpau.h vdpau: move device and video surface management from vo_vdpau.c to vdpau.c 2013-11-05 22:13:05 +01:00
vfcap.h