diff options
-rw-r--r-- | spuencoder.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/spuencoder.c b/spuencoder.c index 1ddb186..dc2f852 100644 --- a/spuencoder.c +++ b/spuencoder.c @@ -238,8 +238,16 @@ void cSpuEncoder::generateColorPalette() for (int i = 0; i < numColors; i++) { // separate AA and RRGGBB values - opacity[i] = (colors[i] & 0xff000000) >> 24; - palcolors[i] = Tools::Rgb2YCrCb(colors[i] & 0x00ffffff); + tColor opac = (colors[i] & 0xff000000) >> 24; + tColor color = (colors[i] & 0x00ffffff); + + opacity[i] = opac * 0xf / 0xff; + + // convert RRGGBB to BBGGRR + color = ((color & 0x0000ff) << 16) | (color & 0x00ff00) | ((color & 0xff0000) >> 16); + + // convert to YCrCb + palcolors[i] = Tools::Rgb2YCrCb(color); } // upload color palette |