From: giwoong.kim Date: Mon, 6 Aug 2012 08:45:37 +0000 (+0900) Subject: [Title] modified zoom filter mask in maru_rotozoom X-Git-Tag: Tizen_Studio_1.3_Release_p2.3.1~1528^2~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8e1c4d233fe9920be677e148727229a9574f685c;p=sdk%2Femulator%2Fqemu.git [Title] modified zoom filter mask in maru_rotozoom [Type] feauture [Module] Emulator / skin [Priority] major [Jira#] [Redmine#] [Problem] [Cause] [Solution] c00 c01 c10 c11 [TestCase] --- diff --git a/tizen/src/maru_sdl_rotozoom.h b/tizen/src/maru_sdl_rotozoom.h index d4c747fbfc..7f7888d24a 100644 --- a/tizen/src/maru_sdl_rotozoom.h +++ b/tizen/src/maru_sdl_rotozoom.h @@ -74,6 +74,7 @@ static void interpolate_pixel_cpy(unsigned int *dst, unsigned int *src_addr, uns (((unsigned int) round(sum_b)) & 0x000000ff); #endif +#if 0 unsigned int sum_r = 0; //0x00ff0000 unsigned int sum_g = 0; //0x0000ff00 unsigned int sum_b = 0; //0x000000ff @@ -97,6 +98,28 @@ static void interpolate_pixel_cpy(unsigned int *dst, unsigned int *src_addr, uns (src_addr[index_n] & B_CHANNEL_MASK) + (src_addr[index_s] & B_CHANNEL_MASK); *dst = 0xff000000 | ((sum_r / 5) & R_CHANNEL_MASK) | ((sum_g / 5) & G_CHANNEL_MASK) | ((sum_b / 5) & B_CHANNEL_MASK); +#endif + + unsigned int sum_r = 0; //0x00ff0000 + unsigned int sum_g = 0; //0x0000ff00 + unsigned int sum_b = 0; //0x000000ff + + unsigned int c00 = (x * src_w) + y; + unsigned int c01 = (y + 1 > src_w) ? c00 : c00 + 1; + unsigned int c10 = (x + 1 > src_h) ? c00 : ((x + 1) * src_w) + y; + unsigned int c11 = (y + 1 > src_w) ? c00 : c10 + 1; + + sum_r = (src_addr[c00] & R_CHANNEL_MASK) + (src_addr[c01] & R_CHANNEL_MASK) + + (src_addr[c10] & R_CHANNEL_MASK) + (src_addr[c11] & R_CHANNEL_MASK); + + sum_g = (src_addr[c00] & G_CHANNEL_MASK) + (src_addr[c01] & G_CHANNEL_MASK) + + (src_addr[c10] & G_CHANNEL_MASK) + (src_addr[c11] & G_CHANNEL_MASK); + + sum_b = (src_addr[c00] & B_CHANNEL_MASK) + (src_addr[c01] & B_CHANNEL_MASK) + + (src_addr[c10] & B_CHANNEL_MASK) + (src_addr[c11] & B_CHANNEL_MASK); + + *dst = 0xff000000 | ((sum_r / 4) & R_CHANNEL_MASK) | + ((sum_g / 4) & G_CHANNEL_MASK) | ((sum_b / 4) & B_CHANNEL_MASK); } //TODO: optimization