From: Grigori Goronzy Date: Fri, 2 Oct 2009 02:12:03 +0000 (+0200) Subject: Fix alpha calculation in some cases X-Git-Tag: 0.9.9~30 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=caa7eb70c4d5c71bfdb879e95285bdbe680a0458;p=libass Fix alpha calculation in some cases Picked up from XBMC svn. This should especially fix MPlayer's direct3d video output (untested). --- diff --git a/libass/ass_parse.c b/libass/ass_parse.c index 535e16f..8c43d0b 100644 --- a/libass/ass_parse.c +++ b/libass/ass_parse.c @@ -163,8 +163,8 @@ static void change_color(uint32_t *var, uint32_t new, double pwr) inline void change_alpha(uint32_t *var, uint32_t new, double pwr) { *var = - (_r(*var) << 24) + (_g(*var) << 16) + (_b(*var) << 8) + - (_a(*var) * (1 - pwr) + _a(new) * pwr); + (uint32_t) (_r(*var) << 24) + (_g(*var) << 16) + (_b(*var) << 8) + + (uint32_t) (_a(*var) * (1 - pwr) + _a(new) * pwr); } /**