diff options
| author | jacksonmj <mj-pt@jacksonmj.co.uk> | 2011-09-25 21:16:08 (GMT) |
|---|---|---|
| committer | Simon Robertshaw <simon@hardwired.org.uk> | 2011-09-26 15:53:37 (GMT) |
| commit | 820871e92b549c23ca645f1c959cc5aeb8b19fe5 (patch) | |
| tree | 2370e2d1ee53df1e9a795305e575eca58729c071 /src/graphics.c | |
| parent | 1be8ce6c5d4f2da653f4331584f0edcd2ab3abde (diff) | |
| download | powder-820871e92b549c23ca645f1c959cc5aeb8b19fe5.zip powder-820871e92b549c23ca645f1c959cc5aeb8b19fe5.tar.gz | |
Fix lighten/darken tools so they work with different display pixel formats
Diffstat (limited to 'src/graphics.c')
| -rw-r--r-- | src/graphics.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/graphics.c b/src/graphics.c index 8b63dc5..152a099 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) |
