Fix lighten/darken tools so they work with different display pixel formats
This commit is contained in:
parent
1be8ce6c5d
commit
820871e92b
@ -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?
|
{//maybe get a better lighten/darken?
|
||||||
if (parts[rp>>8].dcolour == 0)
|
if (parts[rp>>8].dcolour == 0)
|
||||||
return;
|
return;
|
||||||
tr = PIXR(parts[rp>>8].dcolour)&0xFF;
|
tr = (parts[rp>>8].dcolour>>16)&0xFF;
|
||||||
tg = PIXG(parts[rp>>8].dcolour);
|
tg = (parts[rp>>8].dcolour>>8)&0xFF;
|
||||||
tb = PIXB(parts[rp>>8].dcolour);
|
tb = (parts[rp>>8].dcolour)&0xFF;
|
||||||
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));
|
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)
|
else if (tool == DECO_DARKEN)
|
||||||
{
|
{
|
||||||
if (parts[rp>>8].dcolour == 0)
|
if (parts[rp>>8].dcolour == 0)
|
||||||
return;
|
return;
|
||||||
tr = PIXR(parts[rp>>8].dcolour)&0xFF;
|
tr = (parts[rp>>8].dcolour>>16)&0xFF;
|
||||||
tg = PIXG(parts[rp>>8].dcolour);
|
tg = (parts[rp>>8].dcolour>>8)&0xFF;
|
||||||
tb = PIXB(parts[rp>>8].dcolour);
|
tb = (parts[rp>>8].dcolour)&0xFF;
|
||||||
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));
|
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)
|
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)
|
||||||
|
@ -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++)
|
for (c=1; c<27; c++)
|
||||||
{
|
{
|
||||||
if (n == DECO_LIGHTEN)
|
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)
|
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)
|
else if (n == DECO_DRAW)
|
||||||
vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = PIXRGB(*cr,*cg,*cb);
|
vid_buf[(XRES+BARSIZE)*(y+a)+((x-xoff)+c)] = PIXRGB(*cr,*cg,*cb);
|
||||||
else
|
else
|
||||||
|
Reference in New Issue
Block a user