~ubuntu-branches/debian/lenny/fpc/lenny

« back to all changes in this revision

Viewing changes to rtl/inc/graph/palette.inc

  • Committer: Bazaar Package Importer
  • Author(s): Mazen Neifer, Torsten Werner, Mazen Neifer
  • Date: 2008-05-17 17:12:11 UTC
  • mfrom: (3.1.9 intrepid)
  • Revision ID: james.westby@ubuntu.com-20080517171211-9qi33xhd9evfa0kg
Tags: 2.2.0-dfsg1-9
[ Torsten Werner ]
* Add Mazen Neifer to Uploaders field.

[ Mazen Neifer ]
* Moved FPC sources into a version dependent directory from /usr/share/fpcsrc
  to /usr/share/fpcsrc/${FPCVERSION}. This allow installing more than on FPC
  release.
* Fixed far call issue in compiler preventing building huge binearies.
  (closes: #477743)
* Updated building dependencies, recomennded and suggested packages.
* Moved fppkg to fp-utils as it is just a helper tool and is not required by
  compiler.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{
2
 
    $Id: palette.inc,v 1.4 2002/09/07 15:07:47 peter Exp $
3
 
 
4
 
    This file is part of the Free Pascal run time library.
5
 
    Copyright (c) 1999-2000 by the Free Pascal development team
6
 
 
7
 
    This include implements the different palette manipulation
8
 
    routines.
9
 
 
10
 
    See the file COPYING.FPC, included in this distribution,
11
 
    for details about the copyright.
12
 
 
13
 
    This program is distributed in the hope that it will be useful,
14
 
    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
 
 
17
 
 **********************************************************************}
18
 
 
19
 
CONST
20
 
 { This is the standard VGA palette for the first 256 colors }
21
 
 { at 6 bpp for each RG and B component.                     }
22
 
 DefaultColors: Array[0..255] of RGBRec = (
23
 
  (Red:   0;Green:   0;Blue:   0),
24
 
  (Red:   0;Green:   0;Blue: 168),
25
 
  (Red:   0;Green: 168;Blue:   0),
26
 
  (Red:   0;Green: 168;Blue: 168),
27
 
  (Red: 168;Green:   0;Blue:   0),
28
 
  (Red: 168;Green:   0;Blue: 168),
29
 
  (Red: 168;Green:  84;Blue:   0),
30
 
  (Red: 168;Green: 168;Blue: 168),
31
 
  (Red:  84;Green:  84;Blue:  84),
32
 
  (Red:  84;Green:  84;Blue: 252),
33
 
  (Red:  84;Green: 252;Blue:  84),
34
 
  (Red:  84;Green: 252;Blue: 252),
35
 
  (Red: 252;Green:  84;Blue:  84),
36
 
  (Red: 252;Green:  84;Blue: 252),
37
 
  (Red: 252;Green: 252;Blue:  84),
38
 
  (Red: 252;Green: 252;Blue: 252),
39
 
  (Red:   0;Green:   0;Blue:   0),
40
 
  (Red:  20;Green:  20;Blue:  20),
41
 
  (Red:  32;Green:  32;Blue:  32),
42
 
  (Red:  44;Green:  44;Blue:  44),
43
 
  (Red:  56;Green:  56;Blue:  56),
44
 
  (Red:  68;Green:  68;Blue:  68),
45
 
  (Red:  80;Green:  80;Blue:  80),
46
 
  (Red:  96;Green:  96;Blue:  96),
47
 
  (Red: 112;Green: 112;Blue: 112),
48
 
  (Red: 128;Green: 128;Blue: 128),
49
 
  (Red: 144;Green: 144;Blue: 144),
50
 
  (Red: 160;Green: 160;Blue: 160),
51
 
  (Red: 180;Green: 180;Blue: 180),
52
 
  (Red: 200;Green: 200;Blue: 200),
53
 
  (Red: 224;Green: 224;Blue: 224),
54
 
  (Red: 252;Green: 252;Blue: 252),
55
 
  (Red:   0;Green:   0;Blue: 252),
56
 
  (Red:  64;Green:   0;Blue: 252),
57
 
  (Red: 124;Green:   0;Blue: 252),
58
 
  (Red: 188;Green:   0;Blue: 252),
59
 
  (Red: 252;Green:   0;Blue: 252),
60
 
  (Red: 252;Green:   0;Blue: 188),
61
 
  (Red: 252;Green:   0;Blue: 124),
62
 
  (Red: 252;Green:   0;Blue:  64),
63
 
  (Red: 252;Green:   0;Blue:   0),
64
 
  (Red: 252;Green:  64;Blue:   0),
65
 
  (Red: 252;Green: 124;Blue:   0),
66
 
  (Red: 252;Green: 188;Blue:   0),
67
 
  (Red: 252;Green: 252;Blue:   0),
68
 
  (Red: 188;Green: 252;Blue:   0),
69
 
  (Red: 124;Green: 252;Blue:   0),
70
 
  (Red:  64;Green: 252;Blue:   0),
71
 
  (Red:   0;Green: 252;Blue:   0),
72
 
  (Red:   0;Green: 252;Blue:  64),
73
 
  (Red:   0;Green: 252;Blue: 124),
74
 
  (Red:   0;Green: 252;Blue: 188),
75
 
  (Red:   0;Green: 252;Blue: 252),
76
 
  (Red:   0;Green: 188;Blue: 252),
77
 
  (Red:   0;Green: 124;Blue: 252),
78
 
  (Red:   0;Green:  64;Blue: 252),
79
 
  (Red: 124;Green: 124;Blue: 252),
80
 
  (Red: 156;Green: 124;Blue: 252),
81
 
  (Red: 188;Green: 124;Blue: 252),
82
 
  (Red: 220;Green: 124;Blue: 252),
83
 
  (Red: 252;Green: 124;Blue: 252),
84
 
  (Red: 252;Green: 124;Blue: 220),
85
 
  (Red: 252;Green: 124;Blue: 188),
86
 
  (Red: 252;Green: 124;Blue: 156),
87
 
  (Red: 252;Green: 124;Blue: 124),
88
 
  (Red: 252;Green: 156;Blue: 124),
89
 
  (Red: 252;Green: 188;Blue: 124),
90
 
  (Red: 252;Green: 220;Blue: 124),
91
 
  (Red: 252;Green: 252;Blue: 124),
92
 
  (Red: 220;Green: 252;Blue: 124),
93
 
  (Red: 188;Green: 252;Blue: 124),
94
 
  (Red: 156;Green: 252;Blue: 124),
95
 
  (Red: 124;Green: 252;Blue: 124),
96
 
  (Red: 124;Green: 252;Blue: 156),
97
 
  (Red: 124;Green: 252;Blue: 188),
98
 
  (Red: 124;Green: 252;Blue: 220),
99
 
  (Red: 124;Green: 252;Blue: 252),
100
 
  (Red: 124;Green: 220;Blue: 252),
101
 
  (Red: 124;Green: 188;Blue: 252),
102
 
  (Red: 124;Green: 156;Blue: 252),
103
 
  (Red: 180;Green: 180;Blue: 252),
104
 
  (Red: 196;Green: 180;Blue: 252),
105
 
  (Red: 216;Green: 180;Blue: 252),
106
 
  (Red: 232;Green: 180;Blue: 252),
107
 
  (Red: 252;Green: 180;Blue: 252),
108
 
  (Red: 252;Green: 180;Blue: 232),
109
 
  (Red: 252;Green: 180;Blue: 216),
110
 
  (Red: 252;Green: 180;Blue: 196),
111
 
  (Red: 252;Green: 180;Blue: 180),
112
 
  (Red: 252;Green: 196;Blue: 180),
113
 
  (Red: 252;Green: 216;Blue: 180),
114
 
  (Red: 252;Green: 232;Blue: 180),
115
 
  (Red: 252;Green: 252;Blue: 180),
116
 
  (Red: 232;Green: 252;Blue: 180),
117
 
  (Red: 216;Green: 252;Blue: 180),
118
 
  (Red: 196;Green: 252;Blue: 180),
119
 
  (Red: 180;Green: 252;Blue: 180),
120
 
  (Red: 180;Green: 252;Blue: 196),
121
 
  (Red: 180;Green: 252;Blue: 216),
122
 
  (Red: 180;Green: 252;Blue: 232),
123
 
  (Red: 180;Green: 252;Blue: 252),
124
 
  (Red: 180;Green: 232;Blue: 252),
125
 
  (Red: 180;Green: 216;Blue: 252),
126
 
  (Red: 180;Green: 196;Blue: 252),
127
 
  (Red:   0;Green:   0;Blue: 112),
128
 
  (Red:  28;Green:   0;Blue: 112),
129
 
  (Red:  56;Green:   0;Blue: 112),
130
 
  (Red:  84;Green:   0;Blue: 112),
131
 
  (Red: 112;Green:   0;Blue: 112),
132
 
  (Red: 112;Green:   0;Blue:  84),
133
 
  (Red: 112;Green:   0;Blue:  56),
134
 
  (Red: 112;Green:   0;Blue:  28),
135
 
  (Red: 112;Green:   0;Blue:   0),
136
 
  (Red: 112;Green:  28;Blue:   0),
137
 
  (Red: 112;Green:  56;Blue:   0),
138
 
  (Red: 112;Green:  84;Blue:   0),
139
 
  (Red: 112;Green: 112;Blue:   0),
140
 
  (Red:  84;Green: 112;Blue:   0),
141
 
  (Red:  56;Green: 112;Blue:   0),
142
 
  (Red:  28;Green: 112;Blue:   0),
143
 
  (Red:   0;Green: 112;Blue:   0),
144
 
  (Red:   0;Green: 112;Blue:  28),
145
 
  (Red:   0;Green: 112;Blue:  56),
146
 
  (Red:   0;Green: 112;Blue:  84),
147
 
  (Red:   0;Green: 112;Blue: 112),
148
 
  (Red:   0;Green:  84;Blue: 112),
149
 
  (Red:   0;Green:  56;Blue: 112),
150
 
  (Red:   0;Green:  28;Blue: 112),
151
 
  (Red:  56;Green:  56;Blue: 112),
152
 
  (Red:  68;Green:  56;Blue: 112),
153
 
  (Red:  84;Green:  56;Blue: 112),
154
 
  (Red:  96;Green:  56;Blue: 112),
155
 
  (Red: 112;Green:  56;Blue: 112),
156
 
  (Red: 112;Green:  56;Blue:  96),
157
 
  (Red: 112;Green:  56;Blue:  84),
158
 
  (Red: 112;Green:  56;Blue:  68),
159
 
  (Red: 112;Green:  56;Blue:  56),
160
 
  (Red: 112;Green:  68;Blue:  56),
161
 
  (Red: 112;Green:  84;Blue:  56),
162
 
  (Red: 112;Green:  96;Blue:  56),
163
 
  (Red: 112;Green: 112;Blue:  56),
164
 
  (Red:  96;Green: 112;Blue:  56),
165
 
  (Red:  84;Green: 112;Blue:  56),
166
 
  (Red:  68;Green: 112;Blue:  56),
167
 
  (Red:  56;Green: 112;Blue:  56),
168
 
  (Red:  56;Green: 112;Blue:  68),
169
 
  (Red:  56;Green: 112;Blue:  84),
170
 
  (Red:  56;Green: 112;Blue:  96),
171
 
  (Red:  56;Green: 112;Blue: 112),
172
 
  (Red:  56;Green:  96;Blue: 112),
173
 
  (Red:  56;Green:  84;Blue: 112),
174
 
  (Red:  56;Green:  68;Blue: 112),
175
 
  (Red:  80;Green:  80;Blue: 112),
176
 
  (Red:  88;Green:  80;Blue: 112),
177
 
  (Red:  96;Green:  80;Blue: 112),
178
 
  (Red: 104;Green:  80;Blue: 112),
179
 
  (Red: 112;Green:  80;Blue: 112),
180
 
  (Red: 112;Green:  80;Blue: 104),
181
 
  (Red: 112;Green:  80;Blue:  96),
182
 
  (Red: 112;Green:  80;Blue:  88),
183
 
  (Red: 112;Green:  80;Blue:  80),
184
 
  (Red: 112;Green:  88;Blue:  80),
185
 
  (Red: 112;Green:  96;Blue:  80),
186
 
  (Red: 112;Green: 104;Blue:  80),
187
 
  (Red: 112;Green: 112;Blue:  80),
188
 
  (Red: 104;Green: 112;Blue:  80),
189
 
  (Red:  96;Green: 112;Blue:  80),
190
 
  (Red:  88;Green: 112;Blue:  80),
191
 
  (Red:  80;Green: 112;Blue:  80),
192
 
  (Red:  80;Green: 112;Blue:  88),
193
 
  (Red:  80;Green: 112;Blue:  96),
194
 
  (Red:  80;Green: 112;Blue: 104),
195
 
  (Red:  80;Green: 112;Blue: 112),
196
 
  (Red:  80;Green: 104;Blue: 112),
197
 
  (Red:  80;Green:  96;Blue: 112),
198
 
  (Red:  80;Green:  88;Blue: 112),
199
 
  (Red:   0;Green:   0;Blue:  64),
200
 
  (Red:  16;Green:   0;Blue:  64),
201
 
  (Red:  32;Green:   0;Blue:  64),
202
 
  (Red:  48;Green:   0;Blue:  64),
203
 
  (Red:  64;Green:   0;Blue:  64),
204
 
  (Red:  64;Green:   0;Blue:  48),
205
 
  (Red:  64;Green:   0;Blue:  32),
206
 
  (Red:  64;Green:   0;Blue:  16),
207
 
  (Red:  64;Green:   0;Blue:   0),
208
 
  (Red:  64;Green:  16;Blue:   0),
209
 
  (Red:  64;Green:  32;Blue:   0),
210
 
  (Red:  64;Green:  48;Blue:   0),
211
 
  (Red:  64;Green:  64;Blue:   0),
212
 
  (Red:  48;Green:  64;Blue:   0),
213
 
  (Red:  32;Green:  64;Blue:   0),
214
 
  (Red:  16;Green:  64;Blue:   0),
215
 
  (Red:   0;Green:  64;Blue:   0),
216
 
  (Red:   0;Green:  64;Blue:  16),
217
 
  (Red:   0;Green:  64;Blue:  32),
218
 
  (Red:   0;Green:  64;Blue:  48),
219
 
  (Red:   0;Green:  64;Blue:  64),
220
 
  (Red:   0;Green:  48;Blue:  64),
221
 
  (Red:   0;Green:  32;Blue:  64),
222
 
  (Red:   0;Green:  16;Blue:  64),
223
 
  (Red:  32;Green:  32;Blue:  64),
224
 
  (Red:  40;Green:  32;Blue:  64),
225
 
  (Red:  48;Green:  32;Blue:  64),
226
 
  (Red:  56;Green:  32;Blue:  64),
227
 
  (Red:  64;Green:  32;Blue:  64),
228
 
  (Red:  64;Green:  32;Blue:  56),
229
 
  (Red:  64;Green:  32;Blue:  48),
230
 
  (Red:  64;Green:  32;Blue:  40),
231
 
  (Red:  64;Green:  32;Blue:  32),
232
 
  (Red:  64;Green:  40;Blue:  32),
233
 
  (Red:  64;Green:  48;Blue:  32),
234
 
  (Red:  64;Green:  56;Blue:  32),
235
 
  (Red:  64;Green:  64;Blue:  32),
236
 
  (Red:  56;Green:  64;Blue:  32),
237
 
  (Red:  48;Green:  64;Blue:  32),
238
 
  (Red:  40;Green:  64;Blue:  32),
239
 
  (Red:  32;Green:  64;Blue:  32),
240
 
  (Red:  32;Green:  64;Blue:  40),
241
 
  (Red:  32;Green:  64;Blue:  48),
242
 
  (Red:  32;Green:  64;Blue:  56),
243
 
  (Red:  32;Green:  64;Blue:  64),
244
 
  (Red:  32;Green:  56;Blue:  64),
245
 
  (Red:  32;Green:  48;Blue:  64),
246
 
  (Red:  32;Green:  40;Blue:  64),
247
 
  (Red:  44;Green:  44;Blue:  64),
248
 
  (Red:  48;Green:  44;Blue:  64),
249
 
  (Red:  52;Green:  44;Blue:  64),
250
 
  (Red:  60;Green:  44;Blue:  64),
251
 
  (Red:  64;Green:  44;Blue:  64),
252
 
  (Red:  64;Green:  44;Blue:  60),
253
 
  (Red:  64;Green:  44;Blue:  52),
254
 
  (Red:  64;Green:  44;Blue:  48),
255
 
  (Red:  64;Green:  44;Blue:  44),
256
 
  (Red:  64;Green:  48;Blue:  44),
257
 
  (Red:  64;Green:  52;Blue:  44),
258
 
  (Red:  64;Green:  60;Blue:  44),
259
 
  (Red:  64;Green:  64;Blue:  44),
260
 
  (Red:  60;Green:  64;Blue:  44),
261
 
  (Red:  52;Green:  64;Blue:  44),
262
 
  (Red:  48;Green:  64;Blue:  44),
263
 
  (Red:  44;Green:  64;Blue:  44),
264
 
  (Red:  44;Green:  64;Blue:  48),
265
 
  (Red:  44;Green:  64;Blue:  52),
266
 
  (Red:  44;Green:  64;Blue:  60),
267
 
  (Red:  44;Green:  64;Blue:  64),
268
 
  (Red:  44;Green:  60;Blue:  64),
269
 
  (Red:  44;Green:  52;Blue:  64),
270
 
  (Red:  44;Green:  48;Blue:  64),
271
 
  (Red:   0;Green:   0;Blue:   0),
272
 
  (Red:   0;Green:   0;Blue:   0),
273
 
  (Red:   0;Green:   0;Blue:   0),
274
 
  (Red:   0;Green:   0;Blue:   0),
275
 
  (Red:   0;Green:   0;Blue:   0),
276
 
  (Red:   0;Green:   0;Blue:   0),
277
 
  (Red:   0;Green:   0;Blue:   0),
278
 
  (Red:   0;Green:   0;Blue:   0));
279
 
 
280
 
  procedure SetAllPaletteDefault(const Palette:PaletteType);
281
 
   var
282
 
    i: longint;
283
 
    Size: longint;
284
 
   begin
285
 
     { palette routines do not work in DirectColor mode }
286
 
     if DirectColor then
287
 
       begin
288
 
         _GraphResult := grError;
289
 
         exit;
290
 
       end;
291
 
     Size:=Palette.Size;  { number of entries...}
292
 
     { first determine if we are not trying to }
293
 
     { change too much colors...               }
294
 
     if Palette.Size > PaletteSize then
295
 
      begin
296
 
        _GraphResult := grError;
297
 
        exit;
298
 
      end;
299
 
     Dec(Size); { Color arrays are indexed according to zero }
300
 
     for i:=0 to Size do
301
 
      begin
302
 
        { skip if RGB values are -1 , as stated in the TP manual }
303
 
        if (Palette.Colors[i].Red <> -1) and (Palette.Colors[i].Green <> -1)
304
 
           and (Palette.Colors[i].Blue <> -1) then
305
 
              SetRGBPalette(i,
306
 
                Palette.Colors[i].Red,
307
 
                Palette.Colors[i].Green,
308
 
                Palette.Colors[i].Blue);
309
 
      end;
310
 
   end;
311
 
 
312
 
  {********************************************************}
313
 
  { Procedure SetPalette()                                 }
314
 
  {--------------------------------------------------------}
315
 
  { This routine changes the colorNum to the default       }
316
 
  { palette entry specified in the second parameter.       }
317
 
  { For example, SetPalette(0, Lightcyan) makes the        }
318
 
  { 0th palette entry to the default Light Cyan Color .    }
319
 
  {********************************************************}
320
 
   Procedure SetPalette(ColorNum: word; Color: shortint);
321
 
    begin
322
 
     { palette routines do not work in DirectColor mode }
323
 
     if DirectColor then
324
 
       begin
325
 
         _GraphResult := grError;
326
 
         exit;
327
 
       end;
328
 
      { Check if we can actually change that palette color }
329
 
      if ColorNum > PaletteSize then
330
 
        Begin
331
 
          _GraphResult := grError;
332
 
          exit;
333
 
        end
334
 
      else
335
 
      { Check if the max. default color is reached...}
336
 
      { no, this disables palette setting for 256 color modes! (JM) }
337
 
{      if Color > EGAWhite then
338
 
        begin
339
 
          _GraphResult := grError;
340
 
          exit;
341
 
        end;}
342
 
      SetRGBPalette(ColorNum,
343
 
          DefaultColors[Color].Red,
344
 
          DefaultColors[Color].Green,
345
 
          DefaultColors[Color].Blue);
346
 
    end;
347
 
 
348
 
 
349
 
    procedure GetPalette(var Palette: PaletteType);
350
 
      var
351
 
        i: longint;
352
 
        size : longint;
353
 
      begin
354
 
        { palette routines do not work in DirectColor mode }
355
 
        if DirectColor then
356
 
         begin
357
 
           _GraphResult := grError;
358
 
           exit;
359
 
         end;
360
 
        Palette.Size := PaletteSize;
361
 
        { index at zero }
362
 
        size := PaletteSize - 1;
363
 
        for i:=0 to size do
364
 
          GetRGBPalette(i,
365
 
             Palette.Colors[i].Red,
366
 
             Palette.Colors[i].Green,
367
 
             Palette.Colors[i].Blue);
368
 
      end;
369
 
 
370
 
    function GetPaletteSize: smallint;
371
 
     begin
372
 
       GetPaletteSize := PaletteSize;
373
 
     end;
374
 
 
375
 
    procedure GetDefaultPalette(var Palette: PaletteType);
376
 
      begin
377
 
        move(DefaultColors, Palette.Colors, sizeof(DefaultColors));
378
 
        { The default palette always has 256 entries, but in reality }
379
 
        { it depends on the number of colors possible.               }
380
 
        Palette.Size := PaletteSize;
381
 
        if PaletteSize > 256 then Palette.Size := 256;
382
 
      end;
383
 
 
384
 
{
385
 
  $Log: palette.inc,v $
386
 
  Revision 1.4  2002/09/07 15:07:47  peter
387
 
    * old logs removed and tabs fixed
388
 
 
389
 
}