Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

Palette.cc

Go to the documentation of this file.
00001 /*
00002 
00003     RGB palette class
00004     Copyright (C) 2000-2002 Jussi Laako
00005 
00006     This program is free software; you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation; either version 2 of the License, or
00009     (at your option) any later version.
00010 
00011     This program is distributed in the hope that it will be useful,
00012     but WITHOUT ANY WARRANTY; without even the implied warranty of
00013     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014     GNU General Public License for more details.
00015 
00016     You should have received a copy of the GNU General Public License
00017     along with this program; if not, write to the Free Software
00018     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 
00020 */
00021 
00022 
00023 #include "Palette.hh"
00024 
00025 
00026 clPalette::clPalette ()
00027 {
00028     iPalSize = 0;
00029     upPalette = NULL;
00030 }
00031 
00032 
00033 clPalette::~clPalette ()
00034 {
00035 }
00036 
00037 
00038 void clPalette::GenBW()
00039 {
00040     unsigned int uIdxCntr;
00041 
00042     iPalSize = 256;
00043     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00044     for (uIdxCntr = 0; uIdxCntr < (unsigned int) iPalSize; uIdxCntr++)
00045     {
00046         upPalette[uIdxCntr] =
00047             (((0xff - uIdxCntr) << 16) |
00048             ((0xff - uIdxCntr) << 8) |
00049             0xff - uIdxCntr);
00050     }
00051 }
00052 
00053 
00054 void clPalette::GenHSV()
00055 {
00056     int iIdxCntr;
00057     unsigned int uColCntr;
00058 
00059     iPalSize = 256 * 5;
00060     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00061     iIdxCntr = 0;
00062     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00063     {
00064         upPalette[iIdxCntr++] = (uColCntr << 16);
00065     }
00066     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00067     {
00068         upPalette[iIdxCntr++] = (0x00ff0000 | (uColCntr << 8));
00069     }
00070     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00071     {
00072         upPalette[iIdxCntr++] = (((0xff - uColCntr) << 16) | 0x0000ff00);
00073     }
00074     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00075     {
00076         upPalette[iIdxCntr++] = (0x0000ff00 | uColCntr);
00077     }
00078     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00079     {
00080         upPalette[iIdxCntr++] = (((0xff - uColCntr) << 8) | 0x000000ff);
00081     }
00082 }
00083 
00084 
00085 void clPalette::GenLight()
00086 {
00087     int iIdxCntr;
00088     unsigned int uColCntr;
00089 
00090     iPalSize = 256 * 4;
00091     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00092     iIdxCntr = 0;
00093     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00094     {
00095         upPalette[iIdxCntr++] = ((uColCntr << 8) | 0x000000ff);
00096     }
00097     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00098     {
00099         upPalette[iIdxCntr++] = (0x0000ff00 | (0xff - uColCntr));
00100     }
00101     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00102     {
00103         upPalette[iIdxCntr++] = ((uColCntr << 16) | ((0xff - uColCntr) << 8));
00104     }
00105     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00106     {
00107         upPalette[iIdxCntr++] = (0x00ff0000 | uColCntr);
00108     }
00109 }
00110 
00111 
00112 void clPalette::GenTemp()
00113 {
00114     int iIdxCntr;
00115     unsigned int uColCntr;
00116 
00117     iPalSize = 256 * 3;
00118     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00119     iIdxCntr = 0;
00120     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00121     {
00122         upPalette[iIdxCntr++] = uColCntr;
00123     }
00124     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00125     {
00126         upPalette[iIdxCntr++] = (0x000000ff | (uColCntr << 8));
00127     }
00128     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00129     {
00130         upPalette[iIdxCntr++] = (0x0000ffff | (uColCntr << 16));
00131     }
00132 }
00133 
00134 
00135 void clPalette::GenDir()
00136 {
00137     int iIdxCntr;
00138     unsigned int uColCntr;
00139 
00140     iPalSize = 256 + 2;
00141     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00142     iIdxCntr = 0;
00143     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00144     {
00145         upPalette[iIdxCntr++] = (uColCntr | (uColCntr << 8) |
00146             (uColCntr << 16));
00147     }
00148     upPalette[iIdxCntr++] = 0x007f7fff;
00149     upPalette[iIdxCntr++] = 0x000000ff;
00150 }
00151 
00152 
00153 void clPalette::GenGreen()
00154 {
00155     int iIdxCntr;
00156     unsigned int uColCntr;
00157 
00158     iPalSize = 256 * 2;
00159     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00160     iIdxCntr = 0;
00161     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00162     {
00163         upPalette[iIdxCntr++] = (uColCntr << 8);
00164     }
00165     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00166     {
00167         upPalette[iIdxCntr++] = (((0xff - uColCntr) << 8) | uColCntr);
00168     }
00169 }
00170 
00171 
00172 void clPalette::GenGreen2()
00173 {
00174     int iIdxCntr;
00175     unsigned int uColCntr;
00176 
00177     iPalSize = 256 * 2;
00178     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00179     iIdxCntr = 0;
00180     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00181     {
00182         upPalette[iIdxCntr++] = (uColCntr << 8);
00183     }
00184     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00185     {
00186         upPalette[iIdxCntr++] = ((uColCntr << 16) | 0xff00 | uColCntr);
00187     }
00188 }
00189 
00190 
00191 void clPalette::GenGreen3 ()
00192 {
00193     int iIdxCntr;
00194     unsigned int uColCntr;
00195     
00196     iPalSize = 256 * 2;
00197     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00198     iIdxCntr = 0;
00199     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00200     {
00201         upPalette[iIdxCntr++] = (uColCntr << 8);
00202     }
00203     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00204     {
00205         upPalette[iIdxCntr++] = (0xff00 | uColCntr);
00206     }
00207 }
00208 
00209 
00210 void clPalette::GenGreen4 ()
00211 {
00212     int iIdxCntr;
00213     unsigned int uColCntr;
00214     
00215     iPalSize = 256 * 3;
00216     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00217     iIdxCntr = 0;
00218     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00219     {
00220         upPalette[iIdxCntr++] = (uColCntr << 8);
00221     }
00222     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00223     {
00224         upPalette[iIdxCntr++] = (((0xff - uColCntr) << 8) | uColCntr);
00225     }
00226     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00227     {
00228         upPalette[iIdxCntr++] = ((uColCntr << 8) | 0xff);
00229     }
00230 }
00231 
00232 
00233 void clPalette::GenPureGreen()
00234 {
00235     int iIdxCntr;
00236     unsigned int uColCntr;
00237 
00238     iPalSize = 256;
00239     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00240     iIdxCntr = 0;
00241     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00242     {
00243         upPalette[iIdxCntr++] = (uColCntr << 8);
00244     }
00245 }
00246 
00247 
00248 void clPalette::GenWB()
00249 {
00250     int iIdxCntr;
00251     unsigned int uColCntr;
00252 
00253     iPalSize = 256;
00254     upPalette = (unsigned int *) Palette.Size(iPalSize * sizeof(unsigned int));
00255     iIdxCntr = 0;
00256     for (uColCntr = 0; uColCntr < 256; uColCntr++)
00257     {
00258         upPalette[iIdxCntr++] =
00259             ((uColCntr << 16) | (uColCntr << 8) | uColCntr);
00260     }
00261 }
00262 

Generated on Sun Oct 26 19:11:21 2003 for HASAS by doxygen 1.3.3