1 //////////////////////////////////////////////////////////////////////////////// 2 // 3 // File: LoadPalette.cpp 4 // 5 // Date: December 1999 6 // 7 // Author: Daniel Switkin 8 // 9 // Copyright 2003 (c) by Daniel Switkin. This file is made publically available 10 // under the BSD license, with the stipulations that this complete header must 11 // remain at the top of the file indefinitely, and credit must be given to the 12 // original author in any about box using this software. 13 // 14 //////////////////////////////////////////////////////////////////////////////// 15 16 // Additional authors: John Scipione, <jscipione@gmail.com> 17 18 19 #include "LoadPalette.h" 20 21 #include <GraphicsDefs.h> 22 #include <ByteOrder.h> 23 24 LoadPalette()25LoadPalette::LoadPalette() { 26 backgroundindex = 0; 27 usetransparent = false; 28 transparentindex = 0; 29 size = size_in_bits = 0; 30 } 31 32 33 uint32 ColorForIndex(int index)34LoadPalette::ColorForIndex(int index) 35 { 36 // never index into pal directly - this function is safe 37 if (index >= 0 && index <= size) { 38 if (usetransparent && index == transparentindex) 39 return B_TRANSPARENT_MAGIC_RGBA32; 40 else 41 return data[index]; 42 } else 43 return B_BENDIAN_TO_HOST_INT32(0x000000ff); 44 } 45 46 47 void SetColor(int index,uint8 red,uint8 green,uint8 blue)48LoadPalette::SetColor(int index, uint8 red, uint8 green, uint8 blue) 49 { 50 if (index < 0 || index > 255) 51 return; 52 53 data[index] = (blue << 24) + (green << 16) + (red << 8) + 0xff; 54 data[index] = B_BENDIAN_TO_HOST_INT32(data[index]); 55 } 56