/** * \file canvas_imp_rgb.h * * \brief eine Canvas Implementation für ein rgb Canvas. * * \author Georg Steffers [gs] * * \date 04.12.2003 * * \version ..2002 [gs]: erste funktionierende Implementation * \version 22.12.2003 [gs]: */ /* * Copyright (C)2003 Georg Steffers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #ifndef __canvas_imp_rgb_h__ #define __canvas_imp_rgb_h__ #include "canvas_imp.h" class canvas_imp_rgb : public canvas_imp { private: enum rgb_e_t { red=0, green, blue }; unsigned* light_table[3]; unsigned* fog_table[3]; char bytes_per_rgb; unsigned long col_mask[3]; unsigned col_shift[3]; unsigned col_max[3]; void compute_color_resolution(void); void compute_light_table(void); void compute_fog_table(void); public: canvas_imp_rgb(unsigned long, unsigned long, unsigned long, char, char); virtual ~canvas_imp_rgb() {} unsigned long ext_to_native(unsigned, unsigned, unsigned); void light_native(unsigned long* col, unsigned intense); // und wieder fehlt alles für light und fog. }; #endif // __canvas_imp_rgb_h__