diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-02-11 19:00:01 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-02-11 19:00:01 +0000 |
commit | 2d79c4c10923b2395cd59a7c5cc0fbb20dfb0419 (patch) | |
tree | a5d13999fec19c50e6cdd062fe543a26d05dfdf3 | |
parent | 875d963649e2244a0927aacb7d38d6bb1d9b223b (diff) | |
download | mpv-2d79c4c10923b2395cd59a7c5cc0fbb20dfb0419.tar.bz2 mpv-2d79c4c10923b2395cd59a7c5cc0fbb20dfb0419.tar.xz |
Support alpha for vo gl osdcolor
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25983 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libvo/vo_gl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/libvo/vo_gl.c b/libvo/vo_gl.c index f61239eaec..fb8ad7e50f 100644 --- a/libvo/vo_gl.c +++ b/libvo/vo_gl.c @@ -544,7 +544,7 @@ static void create_osd_texture(int x0, int y0, int w, int h, // convert alpha from weird MPlayer scale. // in-place is not possible since it is reused for future OSDs for (i = h * stride - 1; i >= 0; i--) - tmp[i] = srca[i] - 1; + tmp[i] = -srca[i]; glUploadTex(gl_target, GL_ALPHA, GL_UNSIGNED_BYTE, tmp, stride, 0, 0, w, h, 0); free(tmp); @@ -615,13 +615,13 @@ flip_page(void) glCallList(eosdDispList); } if (osdtexCnt > 0) { - glColor4ub((osd_color >> 16) & 0xff, (osd_color >> 8) & 0xff, osd_color & 0xff, 0xff); + glColor4ub((osd_color >> 16) & 0xff, (osd_color >> 8) & 0xff, osd_color & 0xff, 0xff - (osd_color >> 24)); // draw OSD #ifndef FAST_OSD - glBlendFunc(GL_ZERO, GL_SRC_ALPHA); + glBlendFunc(GL_ZERO, GL_ONE_MINUS_SRC_ALPHA); glCallLists(osdtexCnt, GL_UNSIGNED_INT, osdaDispList); #endif - glBlendFunc(GL_ONE, GL_ONE); + glBlendFunc(GL_SRC_ALPHA, GL_ONE); glCallLists(osdtexCnt, GL_UNSIGNED_INT, osdDispList); } // set rendering parameters back to defaults |