diff options
author | wm4 <wm4@nowhere> | 2016-03-29 21:56:38 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-03-29 21:56:38 +0200 |
commit | dae23fff09337992f9773557a3ba41ffb1311b32 (patch) | |
tree | 2a9d7a56c6c844395986b7093da27012eb9cc7c6 /video | |
parent | b95a10c2dd9d73d13375de1c802c2124478f6d88 (diff) | |
download | mpv-dae23fff09337992f9773557a3ba41ffb1311b32.tar.bz2 mpv-dae23fff09337992f9773557a3ba41ffb1311b32.tar.xz |
vo_opengl: always premultiply alpha
Until now, we've let the windowing backend decide. But since they
usually require premultiplied alpha, and premultiplied alpha is easier
to handle, hardcode it.
Diffstat (limited to 'video')
-rw-r--r-- | video/out/opengl/common.h | 1 | ||||
-rw-r--r-- | video/out/opengl/context_cocoa.c | 1 | ||||
-rw-r--r-- | video/out/opengl/context_x11.c | 1 | ||||
-rw-r--r-- | video/out/opengl/video.c | 3 |
4 files changed, 1 insertions, 5 deletions
diff --git a/video/out/opengl/common.h b/video/out/opengl/common.h index 9236ce1d6f..f790dcb166 100644 --- a/video/out/opengl/common.h +++ b/video/out/opengl/common.h @@ -89,7 +89,6 @@ struct GL { int mpgl_caps; // Bitfield of MPGL_CAP_* constants bool debug_context; // use of e.g. GLX_CONTEXT_DEBUG_BIT_ARB int fb_r, fb_g, fb_b; // frame buffer bit depth (0 if unknown) - bool fb_premultiplied; // assumption about FB alpha compositor usage void (GLAPIENTRY *Viewport)(GLint, GLint, GLsizei, GLsizei); void (GLAPIENTRY *Clear)(GLbitfield); diff --git a/video/out/opengl/context_cocoa.c b/video/out/opengl/context_cocoa.c index e48472ff46..271bdb7444 100644 --- a/video/out/opengl/context_cocoa.c +++ b/video/out/opengl/context_cocoa.c @@ -124,7 +124,6 @@ static bool create_gl_context(struct MPGLContext *ctx, int vo_flags) mpgl_load_functions(ctx->gl, (void *)cocoa_glgetaddr, NULL, ctx->vo->log); ctx->gl->fb_r = ctx->gl->fb_g = ctx->gl->fb_b = cgl_color_size(ctx); - ctx->gl->fb_premultiplied = true; CGLReleasePixelFormat(p->pix); diff --git a/video/out/opengl/context_x11.c b/video/out/opengl/context_x11.c index c02730c729..d9a584e87c 100644 --- a/video/out/opengl/context_x11.c +++ b/video/out/opengl/context_x11.c @@ -274,7 +274,6 @@ static int glx_init(struct MPGLContext *ctx, int flags) glXGetFBConfigAttrib(vo->x11->display, fbc, GLX_RED_SIZE, &ctx->gl->fb_r); glXGetFBConfigAttrib(vo->x11->display, fbc, GLX_GREEN_SIZE, &ctx->gl->fb_g); glXGetFBConfigAttrib(vo->x11->display, fbc, GLX_BLUE_SIZE, &ctx->gl->fb_b); - ctx->gl->fb_premultiplied = true; return 0; diff --git a/video/out/opengl/video.c b/video/out/opengl/video.c index de9fdd2814..6b46c1fb42 100644 --- a/video/out/opengl/video.c +++ b/video/out/opengl/video.c @@ -1736,8 +1736,7 @@ static void pass_convert_yuv(struct gl_video *p) GLSL(color.rgb = color.rgb * color.a + background * (1.0 - color.a);) } else { // alpha present in image p->components = 4; - if (p->gl->fb_premultiplied) - GLSL(color = vec4(color.rgb * color.a, color.a);) + GLSL(color = vec4(color.rgb * color.a, color.a);) } } |