Initial revision
[ssr] / StraySrc / Libraries / Steel / h / colourtran
1 /****************************************************************************
2 * This source file was written by Acorn Computers Limited. It is part of *
3 * the RISCOS library for writing applications in C for RISC OS. It may be *
4 * used freely in the creation of programs for Archimedes. It should be *
5 * used with Acorn's C Compiler Release 3 or later. *
6 * *
7 ***************************************************************************/
8
9 /*
10 * Title: colourtran.h
11 * Purpose: C interface to the ColourTrans SWIs
12 *
13 */
14
15 #ifndef __colourtran_h
16 #define __colourtran_h
17
18 #ifndef __os_h
19 #include "os.h"
20 #endif
21
22 #ifndef __wimp_h
23 #include "wimp.h"
24 #endif
25
26 #ifndef __font_h
27 #include "font.h"
28 #endif
29
30
31 /* ----------------------- colourtran_select_table -------------------------
32 * Description: Sets up a translation table in a buffer, given a source
33 * mode and palette, and a destination mode and palette.
34 *
35 * Parameters: int source_mode -- source mode
36 * wimp_paletteword *source_palette -- source palette
37 * int dest_mode -- destination mode
38 * wimp_paletteword *dest_palette -- destination palette
39 * void *buffer -- pointer to store for the table.
40 * Returns: possible error condition.
41 * Other Info: none.
42 *
43 */
44
45 os_error *colourtran_select_table (int source_mode,
46 wimp_paletteword *source_palette,
47 int dest_mode,
48 wimp_paletteword *dest_palette,
49 void *buffer);
50
51
52 /* ---------------------- colourtran_select_GCOLtable ----------------------
53 * Description: Sets up a list of GCOLs in a buffer, given a source
54 * mode and palette, and a destination mode and palette.
55 *
56 * Parameters: int source_mode -- source mode
57 * wimp_paletteword *source_palette -- source palette
58 * int dest_mode -- destination mode
59 * wimp_paletteword *dest_palette -- destination palette
60 * void *buffer -- pointer to store for the list of GCOLs.
61 * Returns: possible error condition.
62 * Other Info: none.
63 *
64 */
65
66 os_error *colourtran_select_GCOLtable (int source_mode,
67 wimp_paletteword *source_palette,
68 int dest_mode,
69 wimp_paletteword *dest_palette,
70 void *buffer);
71
72
73 /* ------------------------- colourtran_returnGCOL -------------------------
74 * Description: Informs caller of the closest GCOL in the current mode
75 * to a given palette entry.
76 *
77 * Parameters: wimp_paletteword entry -- the palette entry
78 * int *gcol -- returned GCOL value.
79 * Returns: possible error condition.
80 * Other Info: none.
81 *
82 */
83
84 os_error *colourtran_returnGCOL (wimp_paletteword entry, int *gcol);
85
86
87 /* ------------------------ colourtran_setGCOL -----------------------------
88 * Description: Informs caller of the closest GCOL in the current mode
89 * to a given palette entry, and also sets the GCOL.
90 *
91 * Parameters: wimp_paletteword entry -- the palette entry
92 * int fore_back -- set to 0 for foreground,
93 * set to 128 for background
94 * int gcol_in -- GCOL action
95 * int *gcol_out -- returned closest GCOL.
96 * Returns: possible error condition.
97 * Other Info: none.
98 *
99 */
100
101 os_error *colourtran_setGCOL (wimp_paletteword entry, int fore_back,
102 int gcol_in, int *gcol_out);
103
104
105 /* ---------------------- colourtran_return_colournumber -------------------
106 * Description: Informs caller of the closeset colour number to a given
107 * palette entry, in the current mode and palette
108 *
109 * Parameters: wimp_paletteword entry -- the palette entry
110 * int *col -- returned colour number.
111 * Returns: possible error condition.
112 * Other Info: none.
113 *
114 */
115
116 os_error *colourtran_return_colournumber (wimp_paletteword entry, int *col);
117
118
119 /* --------------------- colourtran_return_GCOLformode ---------------------
120 * Description: Informs caller of the closest GCOL to a given palette
121 * entry, destination mode and destination palette.
122 *
123 * Parameters: wimp_paletteword entry -- the palette entry
124 * int dest_mode -- destination mode
125 * wimp_paletteword *dest_palette -- destination palette
126 * int *gcol -- returned closest GCOL.
127 * Returns: possible error condition.
128 * Other Info: none.
129 *
130 */
131
132 os_error *colourtran_return_GCOLformode (wimp_paletteword entry,
133 int dest_mode,
134 wimp_paletteword *dest_palette,
135 int *gcol);
136
137
138 /* ------------------ colourtran_return_colourformode ----------------------
139 * Description: Informs caller of the closest colour number to a given
140 * palette entry, destination mode and destination palette.
141 *
142 * Parameters: wimp_paletteword entry -- the palette entry
143 * int dest_mode -- destination mode
144 * wimp_paletteword *dest_palette -- destination palette
145 * int *col -- returned closest colour number.
146 * Returns: possible error condition.
147 * Other Info: none.
148 *
149 */
150
151 os_error *colourtran_return_colourformode (wimp_paletteword entry,
152 int dest_mode,
153 wimp_paletteword *dest_palette,
154 int *col);
155
156
157 /* ----------------------- colourtran_return_OppGCOL -----------------------
158 * Description: Informs caller of the furthest GCOL in the current mode
159 * from a given palette entry.
160 *
161 * Parameters: wimp_paletteword entry -- the palette entry
162 * int *gcol -- returned GCOL value.
163 * Returns: possible error condition.
164 * Other Info: none.
165 *
166 */
167
168 os_error *colourtran_return_OppGCOL (wimp_paletteword entry, int *gcol);
169
170
171 /* ------------------------ colourtran_setOppGCOL --------------------------
172 * Description: Informs caller of the furthest GCOL in the current mode
173 * from a given palette entry, and also sets the GCOL.
174 *
175 * Parameters: wimp_paletteword entry -- the palette entry
176 * int fore_back -- set to 0 for foreground,
177 * set to 128 for background
178 * int gcol_in -- GCOL action
179 * int *gcol_out -- returned furthest GCOL.
180 * Returns: possible error condition.
181 * Other Info: none.
182 *
183 */
184
185 os_error *colourtran_setOppGCOL (wimp_paletteword entry, int fore_back,
186 int gcol_in, int *gcol_out);
187
188
189 /* ---------------------- colourtran_return_Oppcolournumber ----------------
190 * Description: Informs caller of the furthest colour number from a given
191 * palette entry, in the current mode and palette
192 *
193 * Parameters: wimp_paletteword -- the palette entry
194 * int *col -- returned colour number.
195 * Returns: possible error condition.
196 * Other Info: none.
197 *
198 */
199
200 os_error *colourtran_return_Oppcolournumber (wimp_paletteword entry,
201 int *col);
202
203
204 /* --------------------- colourtran_return_OppGCOLformode ------------------
205 * Description: Informs caller of the furthest GCOL from a given palette
206 * entry, destination mode and destination palette.
207 *
208 * Parameters: wimp_paletteword entry -- the palette entry
209 * int dest_mode -- destination mode
210 * wimp_paletteword *dest_palette -- destination palette
211 * int *gcol -- returned furthest GCOL.
212 * Returns: possible error condition.
213 * Other Info: none.
214 *
215 */
216
217 os_error *colourtran_return_OppGCOLformode (wimp_paletteword entry,
218 int dest_mode,
219 wimp_paletteword *dest_palette,
220 int *gcol);
221
222
223 /* ------------------ colourtran_return_Oppcolourformode -------------------
224 * Description: Informs caller of the furthest colour number from a given
225 * palette entry, destination mode and destination palette.
226 *
227 * Parameters: wimp_paletteword entry -- the palette entry
228 * int dest_mode -- destination mode
229 * wimp_paletteword *dest_palette -- destination palette
230 * int *col -- returned furthest colour number.
231 * Returns: possible error condition.
232 * Other Info: none.
233 *
234 */
235
236 os_error *colourtran_return_Oppcolourformode (wimp_paletteword entry,
237 int dest_mode,
238 wimp_paletteword *dest_palette,
239 int *col);
240
241
242 /* ---------------------- colourtran_GCOL_tocolournumber -------------------
243 * Description: Translates a GCOL to a colournumber (assuming 256-colour
244 * mode).
245 *
246 * Parameters: int gcol -- the GCOL
247 * int *col -- returned colour number.
248 * Returns: possible error condition.
249 * Other Info: none.
250 *
251 */
252
253 os_error *colourtran_GCOL_tocolournumber (int gcol, int *col);
254
255
256 /* ----------------- colourtran_colournumbertoGCOL -------------------------
257 * Description: Translates a colour number to a GCOL (assuming 256-colour
258 * mode).
259 *
260 * Parameters: int col -- the colour number
261 * int *gcol -- the returned GCOL.
262 * Returns: possible error condition.
263 * Other Info: none.
264 *
265 */
266
267 os_error *colourtran_colournumbertoGCOL (int col, int *gcol);
268
269
270 /* ------------------ colourtran_returnfontcolours -------------------------
271 * Description: Informs caller of font colours to match given colours.
272 *
273 * Parameters: font *handle -- the font's handle
274 * wimp_paletteword *backgnd -- background palette entry
275 * wimp_paletteword *foregnd -- foreground palette entry
276 * int *max_offset
277 * Returns: possible error condition.
278 * Other Info: Closest approximations to fore/background colours will be
279 * set, and as many intermediate colours as possible (up to
280 * a maximum of *max_offset). Values are returned through
281 * the parameters.
282 *
283 */
284
285 os_error *colourtran_returnfontcolours (font *handle,
286 wimp_paletteword *backgnd,
287 wimp_paletteword *foregnd,
288 int *max_offset);
289
290
291 /* -------------------- colourtran_setfontcolours --------------------------
292 * Description: Informs caller of font colours to match given colours, and
293 * calls font_setfontcolour() to set them.
294 *
295 * Parameters: font *handle -- the font's handle
296 * wimp_paletteword *backgnd -- background palette entry
297 * wimp_paletteword *foregnd -- foreground palette entry
298 * int *max_offset
299 * Returns: possible error condition.
300 * Other Info: Closest approximations to fore/background colours will be
301 * set, and as many intermediate colours as possible (up to
302 * a maximum of *max_offset). Values are returned through
303 * the parameters. Font_setfontcolours() is then called with
304 * these as parameters.
305 *
306 */
307 os_error *colourtran_setfontcolours (font *handle,
308 wimp_paletteword *backgnd,
309 wimp_paletteword *foregnd,
310 int *max_offset);
311
312
313 /* ----------------------- colourtran_invalidate_cache ---------------------
314 * Description: To be called when the palette has changed since a call was
315 * last made to a function in this module.
316 *
317 * Parameters: void.
318 * Returns: possible error condition.
319 * Other Info: none.
320 *
321 */
322
323 os_error *colourtran_invalidate_cache (void);
324
325
326 /* new SWIs */
327
328 /* ----------------------- colourtran_convert_device_colour ----------------
329 * Description: Convert from a device colour to a standard RGB colour
330 *
331 * Parameters: wimp_paletteword device colour
332 wimp_paletteword *rgb colour
333 * Returns: possible error condition.
334 * Other Info: Uses the current calibration to convert from a device
335 * colour to a standard RGB palette entry
336 *
337 */
338
339 os_error *colourtran_convert_device_colour ( wimp_paletteword device,
340 wimp_paletteword *rgb );
341
342 #endif
343 /* end colourtran.h */