From 820871e92b549c23ca645f1c959cc5aeb8b19fe5 Mon Sep 17 00:00:00 2001 From: jacksonmj Date: Mon, 26 Sep 2011 05:16:08 +0800 Subject: [PATCH] Fix lighten/darken tools so they work with different display pixel formats --- src/graphics.c | 16 ++++++++-------- src/interface.c | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/graphics.c b/src/graphics.c index 8b63dc5d9..152a09969 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -3968,19 +3968,19 @@ void create_decoration(int x, int y, int r, int g, int b, int click, int tool) {//maybe get a better lighten/darken? if (parts[rp>>8].dcolour == 0) return; - tr = PIXR(parts[rp>>8].dcolour)&0xFF; - tg = PIXG(parts[rp>>8].dcolour); - tb = PIXB(parts[rp>>8].dcolour); - parts[rp>>8].dcolour = ((255<<24)|(clamp_flt(tr+(255-tr)*0.02+1, 0,255)<<16)|(clamp_flt(tg+(255-tg)*0.02+1, 0,255)<<8)|clamp_flt(tb+(255-tb)*0.02+1, 0,255)); + tr = (parts[rp>>8].dcolour>>16)&0xFF; + tg = (parts[rp>>8].dcolour>>8)&0xFF; + tb = (parts[rp>>8].dcolour)&0xFF; + parts[rp>>8].dcolour = ((parts[rp>>8].dcolour&0xFF000000)|(clamp_flt(tr+(255-tr)*0.02+1, 0,255)<<16)|(clamp_flt(tg+(255-tg)*0.02+1, 0,255)<<8)|clamp_flt(tb+(255-tb)*0.02+1, 0,255)); } else if (tool == DECO_DARKEN) { if (parts[rp>>8].dcolour == 0) return; - tr = PIXR(parts[rp>>8].dcolour)&0xFF; - tg = PIXG(parts[rp>>8].dcolour); - tb = PIXB(parts[rp>>8].dcolour); - parts[rp>>8].dcolour = ((255<<24)|(clamp_flt(tr-(tr)*0.02, 0,255)<<16)|(clamp_flt(tg-(tg)*0.02, 0,255)<<8)|clamp_flt(tb-(tb)*0.02, 0,255)); + tr = (parts[rp>>8].dcolour>>16)&0xFF; + tg = (parts[rp>>8].dcolour>>8)&0xFF; + tb = (parts[rp>>8].dcolour)&0xFF; + parts[rp>>8].dcolour = ((parts[rp>>8].dcolour&0xFF000000)|(clamp_flt(tr-(tr)*0.02, 0,255)<<16)|(clamp_flt(tg-(tg)*0.02, 0,255)<<8)|clamp_flt(tb-(tb)*0.02, 0,255)); } } void line_decorations(int x1, int y1, int x2, int y2, int rx, int ry, int r, int g, int b, int click, int tool) diff --git a/src/interface.c b/src/interface.c index d15eb9b30..8bfaa3b3c 100644 --- a/src/interface.c +++ b/src/interface.c @@ -2229,9 +2229,9 @@ int color_menu_ui(pixel *vid_buf, int i, int *cr, int *cg, int *cb, int b, int b for (c=1; c<27; c++) { if (n == DECO_LIGHTEN) - vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = toollist[n].colour - a*0x0A0A0A; + vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = PIXRGB(PIXR(toollist[n].colour)-10*a, PIXG(toollist[n].colour)-10*a, PIXB(toollist[n].colour)-10*a); else if (n == DECO_DARKEN) - vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = toollist[n].colour + a*0x0A0A0A; + vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = PIXRGB(PIXR(toollist[n].colour)+10*a, PIXG(toollist[n].colour)+10*a, PIXB(toollist[n].colour)+10*a); else if (n == DECO_DRAW) vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = PIXRGB(*cr,*cg,*cb); else