- playing a bit with the fill drawers

This commit is contained in:
Rachael Alexanderson 2016-12-18 08:34:33 -05:00
parent 9fbd9985c8
commit e4e0f0bcd9
3 changed files with 10 additions and 13 deletions

View file

@ -1183,14 +1183,17 @@ namespace swrenderer
dest = thread->dest_for_thread(_dest_y, pitch, dest); dest = thread->dest_for_thread(_dest_y, pitch, dest);
pitch *= thread->num_cores; pitch *= thread->num_cores;
const PalEntry* pal = GPalette.BaseColors;
int _srcalpha = 32768, _destalpha = 32768;
do do
{ {
const PalEntry* pal = GPalette.BaseColors; int src_r = ((_srccolor << 3) & 0x78) * _srcalpha;
// *** [SP] this is incomplete, not sure what to do here. int src_g = ((_srccolor >> 17) & 0x78) * _srcalpha;
/*int r = clamp((int)pal[_srccolor].r, 0, 255) >> 2; int src_b = ((_srccolor >> 7) & 0x78) * _srcalpha;
int g = clamp((int)pal[_srccolor].g, 0, 255) >> 2; int r = clamp((src_r + pal[*dest].r * _destalpha)>>18, 0, 255);
int b = clamp((int)pal[_srccolor].b, 0, 255) >> 2; int g = clamp((src_g + pal[*dest].g * _destalpha)>>18, 0, 255);
*dest = RGB256k.RGB[r][g][b];*/ int b = clamp((src_b + pal[*dest].b * _destalpha)>>18, 0, 255);
*dest = RGB256k.RGB[r][g][b];
dest += pitch; dest += pitch;
} while (--count); } while (--count);

View file

@ -144,9 +144,7 @@ DWORD Col2RGB8[65][256];
DWORD *Col2RGB8_LessPrecision[65]; DWORD *Col2RGB8_LessPrecision[65];
DWORD Col2RGB8_Inverse[65][256]; DWORD Col2RGB8_Inverse[65][256];
ColorTable32k RGB32k; ColorTable32k RGB32k;
#ifndef NO_RGB666
ColorTable256k RGB256k; ColorTable256k RGB256k;
#endif
} }
@ -666,14 +664,12 @@ static void BuildTransTable (const PalEntry *palette)
for (g = 0; g < 32; g++) for (g = 0; g < 32; g++)
for (b = 0; b < 32; b++) for (b = 0; b < 32; b++)
//RGB32k.RGB[r][g][b] = ColorMatcher.Pick ((r<<3)|(r>>2), (g<<3)|(g>>2), (b<<3)|(b>>2)); //RGB32k.RGB[r][g][b] = ColorMatcher.Pick ((r<<3)|(r>>2), (g<<3)|(g>>2), (b<<3)|(b>>2));
RGB32k.RGB[r][g][b] = 2; RGB32k.RGB[r][g][b] = 4;
#ifndef NO_RGB666
// create the RGB666 lookup table // create the RGB666 lookup table
for (r = 0; r < 64; r++) for (r = 0; r < 64; r++)
for (g = 0; g < 64; g++) for (g = 0; g < 64; g++)
for (b = 0; b < 64; b++) for (b = 0; b < 64; b++)
RGB256k.RGB[r][g][b] = ColorMatcher.Pick ((r<<2)|(r>>4), (g<<2)|(g>>4), (b<<2)|(b>>4)); RGB256k.RGB[r][g][b] = ColorMatcher.Pick ((r<<2)|(r>>4), (g<<2)|(g>>4), (b<<2)|(b>>4));
#endif
int x, y; int x, y;

View file

@ -463,14 +463,12 @@ union ColorTable32k
extern "C" ColorTable32k RGB32k; extern "C" ColorTable32k RGB32k;
// [SP] RGB666 support // [SP] RGB666 support
#ifndef NO_RGB666
union ColorTable256k union ColorTable256k
{ {
BYTE RGB[64][64][64]; BYTE RGB[64][64][64];
BYTE All[64 *64 *64]; BYTE All[64 *64 *64];
}; };
extern "C" ColorTable256k RGB256k; extern "C" ColorTable256k RGB256k;
#endif
// Col2RGB8 is a pre-multiplied palette for color lookup. It is stored in a // Col2RGB8 is a pre-multiplied palette for color lookup. It is stored in a
// special R10B10G10 format for efficient blending computation. // special R10B10G10 format for efficient blending computation.