4 ; ColourTrans interface
6 ; © 1994-1998 Straylight
9 ;----- Licensing note -------------------------------------------------------
11 ; This file is part of Straylight's Steel library.
13 ; Steel is free software; you can redistribute it and/or modify
14 ; it under the terms of the GNU General Public License as published by
15 ; the Free Software Foundation; either version 2, or (at your option)
18 ; Steel is distributed in the hope that it will be useful,
19 ; but WITHOUT ANY WARRANTY; without even the implied warranty of
20 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 ; GNU General Public License for more details.
23 ; You should have received a copy of the GNU General Public License
24 ; along with Steel. If not, write to the Free Software Foundation,
25 ; 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
27 ;----- Standard header ------------------------------------------------------
32 ;----- Main code ------------------------------------------------------------
34 AREA |C$$Code|,CODE,READONLY
36 ; --- colourtran_select_table ---
38 ; On entry: a1 == source mode
39 ; a2 == pointer to source palette
40 ; a3 == destination mode
41 ; a4 == pointer to destination palette
42 ; [sp,#0] == pointer to buffer to fill with table
43 ; [sp,#4] == flags word
45 ; We don't support the transfer function, because it's not APCS.
47 EXPORT colourtran_select_table
48 colourtran_select_table
54 SWI XColourTrans_SelectTable
58 ; --- colourtran_select_GCOLtable ---
60 ; On entry: a1 == source mode
61 ; a2 == pointer to source palette
62 ; a3 == destination mode
63 ; a4 == pointer to destination palette
64 ; [sp,#0] == pointer to buffer to fill in
65 ; [sp,#4] == flags word
67 EXPORT colourtran_select_GCOLtable
68 colourtran_select_GCOLtable
74 SWI XColourTrans_SelectGCOLTable
78 ; --- colourtran_returnGCOL ---
80 ; On entry: a1 == palette entry
81 ; a2 == pointer to GCOL word to store
83 EXPORT colourtran_returnGCOL
85 SWI XColourTrans_ReturnGCOL
90 ; --- colourtran_setGCOL ---
92 ; On entry: a1 == palette entry
94 ; a3 == GCOL action to set
95 ; a4 == pointer to where to store the output
97 EXPORT colourtran_setGCOL
102 SWI XColourTrans_SetGCOL
108 ; --- colourtran_return_colournumber ---
110 ; On entry: a1 == palette entry
111 ; a2 == pointer to where to put the colour
113 EXPORT colourtran_return_colournumber
114 colourtran_return_colournumber
115 SWI XColourTrans_ReturnColourNumber
120 ; --- colourtran_return_GCOLformode ---
122 ; On entry: a1 == palette entry
123 ; a2 == destination mode number
124 ; a3 == pointer to destination palette
125 ; a4 == pointer to where to store the colour
127 EXPORT colourtran_return_GCOLformode
128 colourtran_return_GCOLformode
129 SWI XColourTrans_ReturnGCOLForMode
134 ; --- colourtran_return_colourformode ---
136 ; On entry: a1 == palette entry to set
137 ; a2 == destination mode number
138 ; a3 == pointer to destination palette
139 ; a4 == pointer to where to store the number
141 EXPORT colourtran_return_colourformode
142 colourtran_return_colourformode
143 SWI XColourTrans_ReturnColourNumberForMode
148 ; --- colourtran_return_OppGCOL ---
150 ; On entry: a1 == palette entry
151 ; a2 == pointer to where to store the GCOL
153 EXPORT colourtran_return_OppGCOL
154 colourtran_return_OppGCOL
155 SWI XColourTrans_ReturnOppGCOL
160 ; --- colourtran_setOppGCOL ---
162 ; On entry: a1 == palette entry
164 ; a3 == GCOL action to set
165 ; a4 == pointer to where to store the output
167 EXPORT colourtran_setOppGCOL
168 colourtran_setOppGCOL
172 SWI XColourTrans_SetOppGCOL
178 ; --- colourtran_return_Oppcolournumber ---
180 ; On entry: a1 == palette entry
181 ; a2 == pointer to where to store the colour
183 EXPORT colourtran_return_Oppcolournumber
184 colourtran_return_Oppcolournumber
185 SWI XColourTrans_ReturnOppColourNumber
190 ; --- colourtran_return_OppGCOLformode ---
192 ; On entry: a1 == a1 == palette entry
193 ; a2 == destination mode number
194 ; a3 == pointer to destination palette
195 ; a4 == pointer to where to store the colour
197 EXPORT colourtran_return_OppGCOLformode
198 colourtran_return_OppGCOLformode
199 SWI XColourTrans_ReturnOppGCOLForMode
204 ; --- colourtran_return_Oppcolourformode ---
206 ; On entry: a1 == palette entry to set
207 ; a2 == destination mode number
208 ; a3 == pointer to destination palette
209 ; a4 == pointer to where to store the number
211 EXPORT colourtran_return_Oppcolourformode
212 colourtran_return_Oppcolourformode
213 SWI XColourTrans_ReturnOppColourNumberForMode
218 ; --- colourtran_GCOL_tocolournumber ---
220 ; On entry: a1 == GCOL to convert
221 ; a2 == pointer to where to put colour number
223 EXPORT colourtran_GCOL_tocolournumber
224 colourtran_GCOL_tocolournumber
225 SWI XColourTrans_GCOLToColourNumber
230 ; --- colourtran_colournumbertoGCOL ---
232 ; On entry: a1 == colour number to convert
233 ; a2 == pointer to where to put GCOL
235 EXPORT colourtran_colournumbertoGCOL
236 colourtran_colournumbertoGCOL
237 SWI XColourTrans_ColourNumberToGCOL
242 ; --- colourtran_returnfontcolours ---
244 ; On entry: a1 == pointer to font handle
245 ; a2 == pointer to background palette entry
246 ; a3 == pointer to foreground palette entry
247 ; a4 == pointer to amount of antialiasing to do
249 ; Christ knows what all this is about. Well, I hope so, 'cos I haven't got
250 ; a clue. For a start, ColourTrans_ReturnFontColours preserves R0, so
251 ; passing the font handle through a pointer is really silly. For seconds,
252 ; the output R1 and R2 values aren't palette entries at all. My verdict:
253 ; someone at Acorn doesn't have a clue. But then again, what do you expect
254 ; from SWI veneers written in C?
256 EXPORT colourtran_returnfontcolours
257 colourtran_returnfontcolours
263 SWI XColourTrans_ReturnFontColours
275 ; --- colourtran_setfontcolours ---
277 ; On entry: The same braindead pointers as the last one
279 EXPORT colourtran_setfontcolours
280 colourtran_setfontcolours
286 SWI XColourTrans_SetFontColours
298 ; --- colourtran_invalidate_cache ---
302 EXPORT colourtran_invalidate_cache
303 colourtran_invalidate_cache
304 SWI ColourTrans_InvalidateCache
308 ; --- Omitted veneers ---
310 ; Setting and reading calibration tables is not supported. Applications
311 ; probably shouldn't be doing this sort of thing anyway.
313 ; --- colourtran_convert_device_colour ---
315 ; On entry: a1 == palette entry to convert
316 ; a2 == pointer to where to store the standard colour
318 EXPORT colourtran_convert_device_colour
319 colourtran_convert_device_colour
323 SWI XColourTrans_ConvertDeviceColour
329 ; --- colourtran_convertRGBToCIE ---
331 ; On entry: a1 == pointer to RGB block
332 ; a2 == pointer to CIE block
334 EXPORT colourtran_convertRGBToCIE
335 colourtran_convertRGBToCIE
338 SWI XColourTrans_ConvertRGBToCIE
344 ; --- colourtran_convertCIEToRGB ---
346 ; On entry: a1 == pointer to CIE block
347 ; a2 == pointer to RGB block
349 EXPORT colourtran_convertCIEToRGB
350 colourtran_convertCIEToRGB
353 SWI XColourTrans_ConvertCIEToRGB
359 ; --- colourtran_convertRGBToHSV ---
361 ; On entry: a1 == pointer to RGB block
362 ; a2 == pointer to CIE block
364 EXPORT colourtran_convertRGBToHSV
365 colourtran_convertRGBToHSV
368 SWI XColourTrans_ConvertRGBToHSV
374 ; --- colourtran_convertHSVToRGB ---
376 ; On entry: a1 == pointer to CIE block
377 ; a2 == pointer to RGB block
379 EXPORT colourtran_convertHSVToRGB
380 colourtran_convertHSVToRGB
383 SWI XColourTrans_ConvertHSVToRGB
389 ; --- colourtran_convertRGBToCMYK ---
391 ; On entry: a1 == pointer to RGB block
392 ; a2 == pointer to CIE block
394 EXPORT colourtran_convertRGBToCMYK
395 colourtran_convertRGBToCMYK
398 SWI XColourTrans_ConvertRGBToCMYK
404 ; --- colourtran_convertCMYKToRGB ---
406 ; On entry: a1 == pointer to CIE block
407 ; a2 == pointer to RGB block
409 EXPORT colourtran_convertCMYKToRGB
410 colourtran_convertCMYKToRGB
413 SWI XColourTrans_ConvertCMYKToRGB
419 ;----- That's all, folks ----------------------------------------------------