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#include "LoadPalette.h" 17#include <GraphicsDefs.h> 18#include <ByteOrder.h> 19 20LoadPalette::LoadPalette() { 21 backgroundindex = 0; 22 usetransparent = false; 23 transparentindex = 0; 24 size = size_in_bits = 0; 25} 26 27// Never index into pal directly - this function is safe 28uint32 LoadPalette::ColorForIndex(int index) { 29 if (index >= 0 && index <= size) { 30 if (usetransparent && index == transparentindex) return B_TRANSPARENT_MAGIC_RGBA32; 31 else return data[index]; 32 } else { 33 return B_BENDIAN_TO_HOST_INT32(0x000000ff); 34 } 35} 36 37void LoadPalette::SetColor(int index, uint8 red, uint8 green, uint8 blue) { 38 if (index < 0 || index > 255) return; 39 data[index] = (blue << 24) + (green << 16) + (red << 8) + 0xff; 40 data[index] = B_BENDIAN_TO_HOST_INT32(data[index]); 41} 42 43