From aeff4a76860cdb40bcc886b006a05182bff78cbf Mon Sep 17 00:00:00 2001 From: Oleg Oshmyan Date: Sun, 24 May 2015 14:47:37 +0300 Subject: Simplify change_alpha and change_color --- libass/ass_parse.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'libass') diff --git a/libass/ass_parse.c b/libass/ass_parse.c index 63bce2b..b99ed48 100644 --- a/libass/ass_parse.c +++ b/libass/ass_parse.c @@ -178,17 +178,15 @@ void change_border(ASS_Renderer *render_priv, double border_x, double border_y) */ static void change_color(uint32_t *var, uint32_t new, double pwr) { - (*var) = ((uint32_t) (_r(*var) * (1 - pwr) + _r(new) * pwr) << 24) + - ((uint32_t) (_g(*var) * (1 - pwr) + _g(new) * pwr) << 16) + - ((uint32_t) (_b(*var) * (1 - pwr) + _b(new) * pwr) << 8) + _a(*var); + (*var) = ((uint32_t) (_r(*var) * (1 - pwr) + _r(new) * pwr) << 24) | + ((uint32_t) (_g(*var) * (1 - pwr) + _g(new) * pwr) << 16) | + ((uint32_t) (_b(*var) * (1 - pwr) + _b(new) * pwr) << 8) | _a(*var); } // like change_color, but for alpha component only inline void change_alpha(uint32_t *var, int32_t new, double pwr) { - *var = - (_r(*var) << 24) + (_g(*var) << 16) + (_b(*var) << 8) + - (uint8_t) (_a(*var) * (1 - pwr) + new * pwr); + *var = (*var & 0xFFFFFF00) | (uint8_t) (_a(*var) * (1 - pwr) + new * pwr); } /** -- cgit v1.2.3