Initial revision
[ssr] / StraySrc / Libraries / Steel / h / colourtran
CommitLineData
2ee739cc 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
45os_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
66os_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
84os_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
101os_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
116os_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
132os_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
151os_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
168os_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
185os_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
200os_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
217os_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
236os_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
253os_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
267os_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
285os_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 */
307os_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
323os_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
339os_error *colourtran_convert_device_colour ( wimp_paletteword device,
340 wimp_paletteword *rgb );
341
342#endif
343/* end colourtran.h */