mpv/video/out
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
..
cocoa cocoa: apply the more invasive constraining only with cmd+1/2/3 2013-10-28 09:08:08 +01:00
aspect.c aspect: mp_msg conversion 2013-09-12 01:34:42 +02:00
aspect.h video: simplify aspect calculation stuff 2013-03-17 22:07:13 +01:00
bitmap_packer.c core: move contents to mpvcore (2/2) 2013-08-06 22:52:31 +02:00
bitmap_packer.h
cocoa_common.h cocoa_common: call gl_clear indirectly 2013-09-28 15:08:40 +02:00
cocoa_common.m cocoa: set and clear gl context inside of sync sections 2013-10-20 21:25:55 +02:00
d3d_shader_yuv.h
d3d_shader_yuv.hlsl vo_direct3d: remove 2ch hack for 10 bit playback 2013-01-13 20:04:14 +01:00
dither.c dither: don't use long double 2013-07-05 20:26:32 +02:00
dither.h gl_video: improve dithering 2013-05-26 16:44:20 +02:00
filter_kernels.c
filter_kernels.h
gl_cocoa.c cocoa_common: call gl_clear indirectly 2013-09-28 15:08:40 +02:00
gl_common.c vo_opengl: fix alpha values written to the framebuffer 2013-11-10 03:14:38 +01:00
gl_common.h vo_opengl: fix alpha values written to the framebuffer 2013-11-10 03:14:38 +01:00
gl_header_fixes.h gl_header_fixes: fix inverted condition 2013-11-05 22:39:19 +01:00
gl_hwdec_vaglx.c vo_opengl: redo aspects of initialization, change hwdec API 2013-11-05 22:05:23 +01:00
gl_hwdec_vdpau.c gl_hwdec_vdpau: silence warning caused by buggy GL_NV_vdpau_interop spec 2013-11-09 23:32:58 +01:00
gl_lcms.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
gl_lcms.h gl_lcms: mp_msg conversion 2013-09-12 01:34:42 +02:00
gl_osd.c vo_opengl: fix alpha values written to the framebuffer 2013-11-10 03:14:38 +01:00
gl_osd.h gl_osd: mp_msg conversion 2013-09-12 01:34:42 +02:00
gl_video.c vo_opengl: redo aspects of initialization, change hwdec API 2013-11-05 22:05:23 +01:00
gl_video.h vo_opengl: add infrastructure for hardware decoding OpenGL interop 2013-11-04 00:11:07 +01:00
gl_video_shaders.glsl vo_opengl: blend alpha components by default 2013-09-19 17:03:03 +02:00
gl_w32.c gl_common: complete mp_msg conversion 2013-09-12 01:34:42 +02:00
gl_wayland.c wayland/egl: use wayland log 2013-09-12 16:36:52 +02:00
gl_x11.c gl_x11: change error message when GL3 context creation fails 2013-10-28 23:54:02 +01:00
pnm_loader.c
pnm_loader.h
vo.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
vo.h command: add property to scale window size 2013-10-31 23:30:14 +01:00
vo_caca.c video/out: remove useless info struct and redundant fields 2013-10-23 19:30:01 +02:00
vo_corevideo.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
vo_direct3d.c m_config: refactor option defaults handling 2013-10-24 22:50:13 +02:00
vo_image.c video/out: remove useless info struct and redundant fields 2013-10-23 19:30:01 +02:00
vo_lavc.c video/out: remove useless info struct and redundant fields 2013-10-23 19:30:01 +02:00
vo_null.c video/out: remove useless info struct and redundant fields 2013-10-23 19:30:01 +02:00
vo_opengl.c vo_opengl: add infrastructure for hardware decoding OpenGL interop 2013-11-04 00:11:07 +01:00
vo_opengl_old.c video/out: remove useless info struct and redundant fields 2013-10-23 19:30:01 +02:00
vo_sdl.c video/out: remove useless info struct and redundant fields 2013-10-23 19:30:01 +02:00
vo_vaapi.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
vo_vdpau.c vdpau: move device and video surface management from vo_vdpau.c to vdpau.c 2013-11-05 22:13:05 +01:00
vo_wayland.c Adjust wayland defines 2013-11-04 21:28:34 +01:00
vo_x11.c configure: uniform the defines to #define HAVE_xxx (0|1) 2013-11-03 21:59:54 +01:00
vo_xv.c vo_xv: fix compilation of SHM not available 2013-11-05 22:05:22 +01:00
w32_common.c w32: implement functionality required for window-scale 2013-11-02 17:54:46 +01:00
w32_common.h input: deal with spurious X11 LeaveNotify events 2013-09-01 20:17:51 +02:00
wayland_common.c wayland: better name for mouse coordinates 2013-10-25 10:30:12 +02:00
wayland_common.h wayland: better name for mouse coordinates 2013-10-25 10:30:12 +02:00
x11_common.c fix weird DPMS->EXT replacement 2013-11-04 00:43:27 +01:00
x11_common.h x11: fix border toggling 2013-10-27 23:22:46 +01:00
x11_icon.bin x11: add window icon 2013-09-01 23:27:33 +02:00