trunk/src/emu/emupal.h
| r248614 | r248615 | |
| 122 | 122 | // standard 2-2-2-2 formats |
| 123 | 123 | #define PALETTE_FORMAT_BBGGRRII raw_to_rgb_converter(1, &raw_to_rgb_converter::BBGGRRII_decoder) |
| 124 | 124 | |
| 125 | // standard 3-3-3 formats |
| 126 | #define PALETTE_FORMAT_xxxxxxxBBBGGGRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 0,3,6>) |
| 127 | #define PALETTE_FORMAT_xxxxxxxRRRBBBGGG raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 6,0,3>) |
| 128 | #define PALETTE_FORMAT_xxxxxxxRRRGGGBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<3,3,3, 6,3,0>) |
| 129 | |
| 125 | 130 | // standard 4-4-4 formats |
| 126 | 131 | #define PALETTE_FORMAT_xxxxBBBBGGGGRRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<4,4,4, 0,4,8>) |
| 127 | 132 | #define PALETTE_FORMAT_xxxxBBBBRRRRGGGG raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<4,4,4, 4,0,8>) |
| r248614 | r248615 | |
| 146 | 151 | #define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit0 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit0_decoder) |
| 147 | 152 | #define PALETTE_FORMAT_xRGBRRRRGGGGBBBB_bit4 raw_to_rgb_converter(2, &raw_to_rgb_converter::xRGBRRRRGGGGBBBB_bit4_decoder) |
| 148 | 153 | |
| 154 | // data-inverted 5-5-5 formats |
| 155 | #define PALETTE_FORMAT_xRRRRRBBBBBGGGGG_inverted raw_to_rgb_converter(2, &raw_to_rgb_converter::inverted_rgb_decoder<5,5,5, 10,0,5>) |
| 156 | |
| 149 | 157 | // standard 5-6-5 formats |
| 150 | 158 | #define PALETTE_FORMAT_RRRRRGGGGGGBBBBB raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,6,5, 11,5,0>) |
| 151 | 159 | #define PALETTE_FORMAT_BBBBBGGGGGGRRRRR raw_to_rgb_converter(2, &raw_to_rgb_converter::standard_rgb_decoder<5,6,5, 0,5,11>) |
| r248614 | r248615 | |
| 318 | 326 | UINT8 b = palexpand<_BlueBits>(raw >> _BlueShift); |
| 319 | 327 | return rgb_t(r, g, b); |
| 320 | 328 | } |
| 329 | |
| 330 | // data-inverted generic raw-to-RGB conversion helpers |
| 331 | template<int _RedBits, int _GreenBits, int _BlueBits, int _RedShift, int _GreenShift, int _BlueShift> |
| 332 | static rgb_t inverted_rgb_decoder(UINT32 raw) |
| 333 | { |
| 334 | UINT8 r = palexpand<_RedBits>(~raw >> _RedShift); |
| 335 | UINT8 g = palexpand<_GreenBits>(~raw >> _GreenShift); |
| 336 | UINT8 b = palexpand<_BlueBits>(~raw >> _BlueShift); |
| 337 | return rgb_t(r, g, b); |
| 338 | } |
| 339 | |
| 321 | 340 | template<int _IntBits, int _RedBits, int _GreenBits, int _BlueBits, int _IntShift, int _RedShift, int _GreenShift, int _BlueShift> |
| 322 | 341 | static rgb_t standard_irgb_decoder(UINT32 raw) |
| 323 | 342 | { |