2 * Copyright (c) 2007, 2008, 2009, Czirkos Zoltan <cirix@fw.hu>
4 * Permission to use, copy, modify, and distribute this software for any
5 * purpose with or without fee is hereby granted, provided that the above
6 * copyright notice and this permission notice appear in all copies.
8 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21 typedef unsigned int GdColor;
26 1 for c64 colors (bb=index)
27 3 for c64dtv (bb=index)
28 2 for atari colors (bb=index)
31 typedef enum _color_type
33 GD_COLOR_TYPE_RGB = 0,
34 GD_COLOR_TYPE_C64 = 1,
35 GD_COLOR_TYPE_C64DTV = 2,
36 GD_COLOR_TYPE_ATARI = 3,
38 GD_COLOR_TYPE_UNKNOWN // should be the last one
41 // traditional c64 color indexes.
42 #define GD_COLOR_INDEX_BLACK 0
43 #define GD_COLOR_INDEX_WHITE 1
44 #define GD_COLOR_INDEX_RED 2
45 #define GD_COLOR_INDEX_CYAN 3
46 #define GD_COLOR_INDEX_PURPLE 4
47 #define GD_COLOR_INDEX_GREEN 5
48 #define GD_COLOR_INDEX_BLUE 6
49 #define GD_COLOR_INDEX_YELLOW 7
50 #define GD_COLOR_INDEX_ORANGE 8
51 #define GD_COLOR_INDEX_BROWN 9
52 #define GD_COLOR_INDEX_LIGHTRED 10
53 #define GD_COLOR_INDEX_GRAY1 11
54 #define GD_COLOR_INDEX_GRAY2 12
55 #define GD_COLOR_INDEX_LIGHTGREEN 13
56 #define GD_COLOR_INDEX_LIGHTBLUE 14
57 #define GD_COLOR_INDEX_GRAY3 15
59 #define GD_GDASH_BLACK gd_gdash_color(GD_COLOR_INDEX_BLACK)
60 #define GD_GDASH_WHITE gd_gdash_color(GD_COLOR_INDEX_WHITE)
61 #define GD_GDASH_RED gd_gdash_color(GD_COLOR_INDEX_RED)
62 #define GD_GDASH_CYAN gd_gdash_color(GD_COLOR_INDEX_CYAN)
63 #define GD_GDASH_PURPLE gd_gdash_color(GD_COLOR_INDEX_PURPLE)
64 #define GD_GDASH_GREEN gd_gdash_color(GD_COLOR_INDEX_GREEN)
65 #define GD_GDASH_BLUE gd_gdash_color(GD_COLOR_INDEX_BLUE)
66 #define GD_GDASH_YELLOW gd_gdash_color(GD_COLOR_INDEX_YELLOW)
67 #define GD_GDASH_ORANGE gd_gdash_color(GD_COLOR_INDEX_ORANGE)
68 #define GD_GDASH_BROWN gd_gdash_color(GD_COLOR_INDEX_BROWN)
69 #define GD_GDASH_LIGHTRED gd_gdash_color(GD_COLOR_INDEX_LIGHTRED)
70 #define GD_GDASH_GRAY1 gd_gdash_color(GD_COLOR_INDEX_GRAY1)
71 #define GD_GDASH_GRAY2 gd_gdash_color(GD_COLOR_INDEX_GRAY2)
72 #define GD_GDASH_LIGHTGREEN gd_gdash_color(GD_COLOR_INDEX_LIGHTGREEN)
73 #define GD_GDASH_LIGHTBLUE gd_gdash_color(GD_COLOR_INDEX_LIGHTBLUE)
74 #define GD_GDASH_GRAY3 gd_gdash_color(GD_COLOR_INDEX_GRAY3)
76 #define GD_GDASH_MIDDLEBLUE gd_gdash_color(16)
78 #define GD_COLOR_INVALID 0xFFFFFFFF
80 #define GD_C64_COLOR(index) ((GD_COLOR_TYPE_C64 << 24) + (index))
82 // palette numbers must match pointer array positions in source file
83 #define GD_PALETTE_C64_VICE_NEW 0
84 #define GD_PALETTE_C64_VICE_OLD 1
85 #define GD_PALETTE_C64_VIDE_DEFAULT 2
86 #define GD_PALETTE_C64_C64HQ 3
87 #define GD_PALETTE_C64_C64S 4
88 #define GD_PALETTE_C64_CCS64 5
89 #define GD_PALETTE_C64_FRODO 6
90 #define GD_PALETTE_C64_GODOT 7
91 #define GD_PALETTE_C64_PC64 8
92 #define GD_PALETTE_C64_RTADASH 9
94 // palette numbers must match pointer array positions in source file
95 #define GD_PALETTE_C64DTV_SPIFF 0
96 #define GD_PALETTE_C64DTV_MURRAY 1
98 // palette numbers must match pointer array positions in source file
99 #define GD_PALETTE_ATARI_BUILTIN 0
100 #define GD_PALETTE_ATARI_BUILTIN_CONTRAST 1
101 #define GD_PALETTE_ATARI_DEFAULT 2
102 #define GD_PALETTE_ATARI_JAKUB 3
103 #define GD_PALETTE_ATARI_JAKUB_CONTRAST 4
104 #define GD_PALETTE_ATARI_REAL 5
105 #define GD_PALETTE_ATARI_REAL_CONTRAST 6
106 #define GD_PALETTE_ATARI_XFORMER 7
110 GdColor gd_c64_color(int index);
111 GdColor gd_atari_color(int index);
112 GdColor gd_c64dtv_color(int index);
114 GdColor gd_atari_color_huesat(int hue, int sat);
115 GdColor gd_c64dtv_color_huesat(int hue, int sat);
117 unsigned int gd_color_get_r(GdColor color);
118 unsigned int gd_color_get_g(GdColor color);
119 unsigned int gd_color_get_b(GdColor color);
121 GdColor gd_color_get_rgb(GdColor color);
122 GdColor gd_color_get_from_rgb(int r, int g, int b);
123 GdColor gd_color_get_from_hsv(double h, double s, double v);
124 GdColor gd_color_get_from_string(const char *color);
125 const char *gd_color_get_string(GdColor color);
127 boolean gd_color_is_c64(GdColor color);
128 boolean gd_color_is_atari(GdColor color);
129 boolean gd_color_is_dtv(GdColor color);
130 boolean gd_color_is_unknown(GdColor color);
132 GdColor gd_gdash_color(int c);
134 #endif // BD_COLORS_H