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 #define GD_DEFAULT_COLOR_TYPE GD_COLOR_TYPE_RGB
43 // traditional c64 color indexes.
44 #define GD_COLOR_INDEX_BLACK 0
45 #define GD_COLOR_INDEX_WHITE 1
46 #define GD_COLOR_INDEX_RED 2
47 #define GD_COLOR_INDEX_CYAN 3
48 #define GD_COLOR_INDEX_PURPLE 4
49 #define GD_COLOR_INDEX_GREEN 5
50 #define GD_COLOR_INDEX_BLUE 6
51 #define GD_COLOR_INDEX_YELLOW 7
52 #define GD_COLOR_INDEX_ORANGE 8
53 #define GD_COLOR_INDEX_BROWN 9
54 #define GD_COLOR_INDEX_LIGHTRED 10
55 #define GD_COLOR_INDEX_GRAY1 11
56 #define GD_COLOR_INDEX_GRAY2 12
57 #define GD_COLOR_INDEX_LIGHTGREEN 13
58 #define GD_COLOR_INDEX_LIGHTBLUE 14
59 #define GD_COLOR_INDEX_GRAY3 15
61 #define GD_GDASH_BLACK gd_gdash_color(GD_COLOR_INDEX_BLACK)
62 #define GD_GDASH_WHITE gd_gdash_color(GD_COLOR_INDEX_WHITE)
63 #define GD_GDASH_RED gd_gdash_color(GD_COLOR_INDEX_RED)
64 #define GD_GDASH_CYAN gd_gdash_color(GD_COLOR_INDEX_CYAN)
65 #define GD_GDASH_PURPLE gd_gdash_color(GD_COLOR_INDEX_PURPLE)
66 #define GD_GDASH_GREEN gd_gdash_color(GD_COLOR_INDEX_GREEN)
67 #define GD_GDASH_BLUE gd_gdash_color(GD_COLOR_INDEX_BLUE)
68 #define GD_GDASH_YELLOW gd_gdash_color(GD_COLOR_INDEX_YELLOW)
69 #define GD_GDASH_ORANGE gd_gdash_color(GD_COLOR_INDEX_ORANGE)
70 #define GD_GDASH_BROWN gd_gdash_color(GD_COLOR_INDEX_BROWN)
71 #define GD_GDASH_LIGHTRED gd_gdash_color(GD_COLOR_INDEX_LIGHTRED)
72 #define GD_GDASH_GRAY1 gd_gdash_color(GD_COLOR_INDEX_GRAY1)
73 #define GD_GDASH_GRAY2 gd_gdash_color(GD_COLOR_INDEX_GRAY2)
74 #define GD_GDASH_LIGHTGREEN gd_gdash_color(GD_COLOR_INDEX_LIGHTGREEN)
75 #define GD_GDASH_LIGHTBLUE gd_gdash_color(GD_COLOR_INDEX_LIGHTBLUE)
76 #define GD_GDASH_GRAY3 gd_gdash_color(GD_COLOR_INDEX_GRAY3)
78 #define GD_GDASH_MIDDLEBLUE gd_gdash_color(16)
80 #define GD_COLOR_INVALID 0xFFFFFFFF
82 #define GD_C64_COLOR(index) ((GD_COLOR_TYPE_C64 << 24) + (index))
84 // palette numbers must match pointer array positions in source file
85 #define GD_PALETTE_C64_VICE_NEW 0
86 #define GD_PALETTE_C64_VICE_OLD 1
87 #define GD_PALETTE_C64_VIDE_DEFAULT 2
88 #define GD_PALETTE_C64_C64HQ 3
89 #define GD_PALETTE_C64_C64S 4
90 #define GD_PALETTE_C64_CCS64 5
91 #define GD_PALETTE_C64_FRODO 6
92 #define GD_PALETTE_C64_GODOT 7
93 #define GD_PALETTE_C64_PC64 8
94 #define GD_PALETTE_C64_RTADASH 9
96 #define GD_DEFAULT_PALETTE_C64 GD_PALETTE_C64_VICE_NEW
98 // palette numbers must match pointer array positions in source file
99 #define GD_PALETTE_C64DTV_SPIFF 0
100 #define GD_PALETTE_C64DTV_MURRAY 1
102 #define GD_DEFAULT_PALETTE_C64DTV GD_PALETTE_C64DTV_SPIFF
104 // palette numbers must match pointer array positions in source file
105 #define GD_PALETTE_ATARI_BUILTIN 0
106 #define GD_PALETTE_ATARI_BUILTIN_CONTRAST 1
107 #define GD_PALETTE_ATARI_DEFAULT 2
108 #define GD_PALETTE_ATARI_JAKUB 3
109 #define GD_PALETTE_ATARI_JAKUB_CONTRAST 4
110 #define GD_PALETTE_ATARI_REAL 5
111 #define GD_PALETTE_ATARI_REAL_CONTRAST 6
112 #define GD_PALETTE_ATARI_XFORMER 7
114 #define GD_DEFAULT_PALETTE_ATARI GD_PALETTE_ATARI_BUILTIN
118 GdColor gd_c64_color(int index);
119 GdColor gd_atari_color(int index);
120 GdColor gd_c64dtv_color(int index);
122 GdColor gd_atari_color_huesat(int hue, int sat);
123 GdColor gd_c64dtv_color_huesat(int hue, int sat);
125 unsigned int gd_color_get_r(GdColor color);
126 unsigned int gd_color_get_g(GdColor color);
127 unsigned int gd_color_get_b(GdColor color);
129 GdColor gd_color_get_rgb(GdColor color);
130 GdColor gd_color_get_from_rgb(int r, int g, int b);
131 GdColor gd_color_get_from_hsv(double h, double s, double v);
132 GdColor gd_color_get_from_string(const char *color);
133 const char *gd_color_get_string(GdColor color);
135 boolean gd_color_is_c64(GdColor color);
136 boolean gd_color_is_atari(GdColor color);
137 boolean gd_color_is_dtv(GdColor color);
138 boolean gd_color_is_unknown(GdColor color);
140 GdColor gd_gdash_color(int c);
142 #endif // BD_COLORS_H