Logo Search packages:      
Sourcecode: scummvm version File versions  Download package

void OSystem_Dreamcast::setPalette ( const byte *  colors,
uint  start,
uint  num 
) [protected, virtual]

Replace the specified range of the palette with new colors. The palette entries from 'start' till (start+num-1) will be replaced - so a full palette update is accomplished via start=0, num=256.

The palette data is specified in interleaved RGB format. That is, the first byte of the memory block 'colors' points at is the red component of the first new color; the second byte the green component of the first new color; the third byte the blue component, the last byte to the alpha (transparency) value. Then the second color starts, and so on. So memory looks like this: R1-G1-B1-R2-G2-B2-R3-...

colorsthe new palette data, in interleaved RGB format
startthe first palette entry to be updated
numthe number of palette entries to be updated
It is an error if start+num exceeds 256, behaviour is undefined in that case (the backend may ignore it silently or assert).
It is an error if this function gets called when the pixel format in use (the return value of getScreenFormat) has more than one byte per pixel.
See also:

Implements PaletteManager.

Definition at line 151 of file display.cpp.

  unsigned short *dst = palette + start;
  if (num>0)
    while ( num-- ) {
      *dst++ = ((colors[0]<<7)&0x7c00)|
      colors += 3;
  _screen_dirty = true;

Generated by  Doxygen 1.6.0   Back to index