blob: eabc0db49485b369ac09b5babb0a8821734cc563 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26#include <stdlib.h>
27#include <string.h>
28#include <sys/utsname.h>
29#include "GraphicsPrimitiveMgr.h"
30#include "java2d_Mlib.h"
31
32typedef struct {
33 AnyFunc *func_c;
34 AnyFunc *func_vis;
35} AnyFunc_pair;
36
37#define DEF_FUNC(x) \
38 void x(); \
39 void ADD_SUFF(x)();
40
41#define ADD_FUNC(x) \
42 { & x, & ADD_SUFF(x) }
43
44/***************************************************************/
45
46DEF_FUNC(AnyByteDrawGlyphList)
47DEF_FUNC(AnyByteDrawGlyphListXor)
48DEF_FUNC(AnyByteIsomorphicCopy)
49DEF_FUNC(AnyByteIsomorphicScaleCopy)
50DEF_FUNC(AnyByteIsomorphicXorCopy)
51DEF_FUNC(AnyByteSetLine)
52DEF_FUNC(AnyByteSetRect)
53DEF_FUNC(AnyByteSetSpans)
54DEF_FUNC(AnyByteXorLine)
55DEF_FUNC(AnyByteXorRect)
56DEF_FUNC(AnyByteXorSpans)
57DEF_FUNC(AnyShortDrawGlyphList)
58DEF_FUNC(AnyShortDrawGlyphListXor)
59DEF_FUNC(AnyShortIsomorphicCopy)
60DEF_FUNC(AnyShortIsomorphicScaleCopy)
61DEF_FUNC(AnyShortIsomorphicXorCopy)
62DEF_FUNC(AnyShortSetLine)
63DEF_FUNC(AnyShortSetRect)
64DEF_FUNC(AnyShortSetSpans)
65DEF_FUNC(AnyShortXorLine)
66DEF_FUNC(AnyShortXorRect)
67DEF_FUNC(AnyShortXorSpans)
68DEF_FUNC(Any3ByteDrawGlyphList)
69DEF_FUNC(Any3ByteDrawGlyphListXor)
70DEF_FUNC(Any3ByteIsomorphicCopy)
71DEF_FUNC(Any3ByteIsomorphicScaleCopy)
72DEF_FUNC(Any3ByteIsomorphicXorCopy)
73DEF_FUNC(Any3ByteSetLine)
74DEF_FUNC(Any3ByteSetRect)
75DEF_FUNC(Any3ByteSetSpans)
76DEF_FUNC(Any3ByteXorLine)
77DEF_FUNC(Any3ByteXorRect)
78DEF_FUNC(Any3ByteXorSpans)
79DEF_FUNC(Any4ByteDrawGlyphList)
80DEF_FUNC(Any4ByteDrawGlyphListXor)
81DEF_FUNC(Any4ByteIsomorphicCopy)
82DEF_FUNC(Any4ByteIsomorphicScaleCopy)
83DEF_FUNC(Any4ByteIsomorphicXorCopy)
84DEF_FUNC(Any4ByteSetLine)
85DEF_FUNC(Any4ByteSetRect)
86DEF_FUNC(Any4ByteSetSpans)
87DEF_FUNC(Any4ByteXorLine)
88DEF_FUNC(Any4ByteXorRect)
89DEF_FUNC(Any4ByteXorSpans)
90DEF_FUNC(AnyIntDrawGlyphList)
91DEF_FUNC(AnyIntDrawGlyphListXor)
92DEF_FUNC(AnyIntIsomorphicCopy)
93DEF_FUNC(AnyIntIsomorphicScaleCopy)
94DEF_FUNC(AnyIntIsomorphicXorCopy)
95DEF_FUNC(AnyIntSetLine)
96DEF_FUNC(AnyIntSetRect)
97DEF_FUNC(AnyIntSetSpans)
98DEF_FUNC(AnyIntXorLine)
99DEF_FUNC(AnyIntXorRect)
100DEF_FUNC(AnyIntXorSpans)
101DEF_FUNC(ByteGrayAlphaMaskFill)
102DEF_FUNC(ByteGrayDrawGlyphListAA)
103DEF_FUNC(ByteGraySrcMaskFill)
104DEF_FUNC(ByteGraySrcOverMaskFill)
105DEF_FUNC(ByteGrayToIntArgbConvert)
106DEF_FUNC(ByteGrayToIntArgbScaleConvert)
107DEF_FUNC(ByteIndexedBmToByteGrayScaleXparOver)
108DEF_FUNC(ByteIndexedBmToByteGrayXparBgCopy)
109DEF_FUNC(ByteIndexedBmToByteGrayXparOver)
110DEF_FUNC(ByteIndexedToByteGrayConvert)
111DEF_FUNC(ByteIndexedToByteGrayScaleConvert)
112DEF_FUNC(Index12GrayToByteGrayConvert)
113DEF_FUNC(Index12GrayToByteGrayScaleConvert)
114DEF_FUNC(Index8GrayToByteGrayConvert)
115DEF_FUNC(Index8GrayToByteGrayScaleConvert)
116DEF_FUNC(IntArgbBmToByteGrayScaleXparOver)
117DEF_FUNC(IntArgbBmToByteGrayXparBgCopy)
118DEF_FUNC(IntArgbBmToByteGrayXparOver)
119DEF_FUNC(IntArgbToByteGrayAlphaMaskBlit)
120DEF_FUNC(IntArgbToByteGrayConvert)
121DEF_FUNC(IntArgbToByteGrayScaleConvert)
122DEF_FUNC(IntArgbToByteGraySrcOverMaskBlit)
123DEF_FUNC(IntArgbToByteGrayXorBlit)
124DEF_FUNC(IntRgbToByteGrayAlphaMaskBlit)
125DEF_FUNC(ThreeByteBgrToByteGrayConvert)
126DEF_FUNC(ThreeByteBgrToByteGrayScaleConvert)
127DEF_FUNC(UshortGrayToByteGrayConvert)
128DEF_FUNC(UshortGrayToByteGrayScaleConvert)
129DEF_FUNC(ByteGrayToUshortGrayConvert)
130DEF_FUNC(ByteGrayToUshortGrayScaleConvert)
131DEF_FUNC(ByteIndexedBmToUshortGrayScaleXparOver)
132DEF_FUNC(ByteIndexedBmToUshortGrayXparBgCopy)
133DEF_FUNC(ByteIndexedBmToUshortGrayXparOver)
134DEF_FUNC(ByteIndexedToUshortGrayConvert)
135DEF_FUNC(ByteIndexedToUshortGrayScaleConvert)
136DEF_FUNC(IntArgbBmToUshortGrayScaleXparOver)
137DEF_FUNC(IntArgbToUshortGrayAlphaMaskBlit)
138DEF_FUNC(IntArgbToUshortGrayConvert)
139DEF_FUNC(IntArgbToUshortGrayScaleConvert)
140DEF_FUNC(IntArgbToUshortGraySrcOverMaskBlit)
141DEF_FUNC(IntArgbToUshortGrayXorBlit)
142DEF_FUNC(IntRgbToUshortGrayAlphaMaskBlit)
143DEF_FUNC(ThreeByteBgrToUshortGrayConvert)
144DEF_FUNC(ThreeByteBgrToUshortGrayScaleConvert)
145DEF_FUNC(UshortGrayAlphaMaskFill)
146DEF_FUNC(UshortGrayDrawGlyphListAA)
147DEF_FUNC(UshortGraySrcMaskFill)
148DEF_FUNC(UshortGraySrcOverMaskFill)
149DEF_FUNC(UshortGrayToIntArgbConvert)
150DEF_FUNC(UshortGrayToIntArgbScaleConvert)
151DEF_FUNC(ByteGrayToByteIndexedConvert)
152DEF_FUNC(ByteGrayToByteIndexedScaleConvert)
153DEF_FUNC(ByteIndexedAlphaMaskFill)
154DEF_FUNC(ByteIndexedBmToByteIndexedScaleXparOver)
155DEF_FUNC(ByteIndexedBmToByteIndexedXparBgCopy)
156DEF_FUNC(ByteIndexedBmToByteIndexedXparOver)
157DEF_FUNC(ByteIndexedDrawGlyphListAA)
158DEF_FUNC(ByteIndexedToByteIndexedConvert)
159DEF_FUNC(ByteIndexedToByteIndexedScaleConvert)
160DEF_FUNC(Index12GrayToByteIndexedConvert)
161DEF_FUNC(Index12GrayToByteIndexedScaleConvert)
162DEF_FUNC(IntArgbBmToByteIndexedScaleXparOver)
163DEF_FUNC(IntArgbBmToByteIndexedXparBgCopy)
164DEF_FUNC(IntArgbBmToByteIndexedXparOver)
165DEF_FUNC(IntArgbToByteIndexedAlphaMaskBlit)
166DEF_FUNC(IntArgbToByteIndexedConvert)
167DEF_FUNC(IntArgbToByteIndexedScaleConvert)
168DEF_FUNC(IntArgbToByteIndexedXorBlit)
169DEF_FUNC(IntRgbToByteIndexedAlphaMaskBlit)
170DEF_FUNC(ThreeByteBgrToByteIndexedConvert)
171DEF_FUNC(ThreeByteBgrToByteIndexedScaleConvert)
172DEF_FUNC(ByteGrayToFourByteAbgrConvert)
173DEF_FUNC(ByteGrayToFourByteAbgrScaleConvert)
174DEF_FUNC(ByteIndexedBmToFourByteAbgrScaleXparOver)
175DEF_FUNC(ByteIndexedBmToFourByteAbgrXparBgCopy)
176DEF_FUNC(ByteIndexedBmToFourByteAbgrXparOver)
177DEF_FUNC(ByteIndexedToFourByteAbgrConvert)
178DEF_FUNC(ByteIndexedToFourByteAbgrScaleConvert)
179DEF_FUNC(FourByteAbgrAlphaMaskFill)
180DEF_FUNC(FourByteAbgrDrawGlyphListAA)
181DEF_FUNC(FourByteAbgrSrcMaskFill)
182DEF_FUNC(FourByteAbgrSrcOverMaskFill)
183DEF_FUNC(FourByteAbgrToIntArgbConvert)
184DEF_FUNC(FourByteAbgrToIntArgbScaleConvert)
185DEF_FUNC(IntArgbBmToFourByteAbgrScaleXparOver)
186DEF_FUNC(IntArgbToFourByteAbgrAlphaMaskBlit)
187DEF_FUNC(IntArgbToFourByteAbgrConvert)
188DEF_FUNC(IntArgbToFourByteAbgrScaleConvert)
189DEF_FUNC(IntArgbToFourByteAbgrSrcOverMaskBlit)
190DEF_FUNC(IntArgbToFourByteAbgrXorBlit)
191DEF_FUNC(IntRgbToFourByteAbgrAlphaMaskBlit)
192DEF_FUNC(IntRgbToFourByteAbgrConvert)
193DEF_FUNC(IntRgbToFourByteAbgrScaleConvert)
194DEF_FUNC(ThreeByteBgrToFourByteAbgrConvert)
195DEF_FUNC(ThreeByteBgrToFourByteAbgrScaleConvert)
196DEF_FUNC(ByteGrayToFourByteAbgrPreConvert)
197DEF_FUNC(ByteGrayToFourByteAbgrPreScaleConvert)
198DEF_FUNC(ByteIndexedBmToFourByteAbgrPreScaleXparOver)
199DEF_FUNC(ByteIndexedBmToFourByteAbgrPreXparBgCopy)
200DEF_FUNC(ByteIndexedBmToFourByteAbgrPreXparOver)
201DEF_FUNC(ByteIndexedToFourByteAbgrPreConvert)
202DEF_FUNC(ByteIndexedToFourByteAbgrPreScaleConvert)
203DEF_FUNC(FourByteAbgrPreAlphaMaskFill)
204DEF_FUNC(FourByteAbgrPreDrawGlyphListAA)
205DEF_FUNC(FourByteAbgrPreSrcMaskFill)
206DEF_FUNC(FourByteAbgrPreSrcOverMaskFill)
207DEF_FUNC(FourByteAbgrPreToIntArgbConvert)
208DEF_FUNC(FourByteAbgrPreToIntArgbScaleConvert)
209DEF_FUNC(IntArgbBmToFourByteAbgrPreScaleXparOver)
210DEF_FUNC(IntArgbToFourByteAbgrPreAlphaMaskBlit)
211DEF_FUNC(IntArgbToFourByteAbgrPreConvert)
212DEF_FUNC(IntArgbToFourByteAbgrPreScaleConvert)
213DEF_FUNC(IntArgbToFourByteAbgrPreSrcOverMaskBlit)
214DEF_FUNC(IntArgbToFourByteAbgrPreXorBlit)
215DEF_FUNC(IntRgbToFourByteAbgrPreAlphaMaskBlit)
216DEF_FUNC(IntRgbToFourByteAbgrPreConvert)
217DEF_FUNC(IntRgbToFourByteAbgrPreScaleConvert)
218DEF_FUNC(ThreeByteBgrToFourByteAbgrPreConvert)
219DEF_FUNC(ThreeByteBgrToFourByteAbgrPreScaleConvert)
220DEF_FUNC(ByteIndexedBmToIntArgbScaleXparOver)
221DEF_FUNC(ByteIndexedBmToIntArgbXparBgCopy)
222DEF_FUNC(ByteIndexedBmToIntArgbXparOver)
223DEF_FUNC(ByteIndexedToIntArgbConvert)
224DEF_FUNC(ByteIndexedToIntArgbScaleConvert)
225DEF_FUNC(Index12GrayToIntArgbConvert)
226DEF_FUNC(IntArgbAlphaMaskFill)
227DEF_FUNC(IntArgbBmToIntArgbScaleXparOver)
228DEF_FUNC(IntArgbDrawGlyphListAA)
229DEF_FUNC(IntArgbSrcMaskFill)
230DEF_FUNC(IntArgbSrcOverMaskFill)
231DEF_FUNC(IntArgbToIntArgbAlphaMaskBlit)
232DEF_FUNC(IntArgbToIntArgbSrcOverMaskBlit)
233DEF_FUNC(IntArgbToIntArgbXorBlit)
234DEF_FUNC(IntRgbToIntArgbAlphaMaskBlit)
235DEF_FUNC(ByteIndexedBmToIntArgbBmScaleXparOver)
236DEF_FUNC(ByteIndexedBmToIntArgbBmXparBgCopy)
237DEF_FUNC(ByteIndexedBmToIntArgbBmXparOver)
238DEF_FUNC(ByteIndexedToIntArgbBmConvert)
239DEF_FUNC(ByteIndexedToIntArgbBmScaleConvert)
240DEF_FUNC(IntArgbBmAlphaMaskFill)
241DEF_FUNC(IntArgbBmDrawGlyphListAA)
242DEF_FUNC(IntArgbBmToIntArgbConvert)
243DEF_FUNC(IntArgbToIntArgbBmAlphaMaskBlit)
244DEF_FUNC(IntArgbToIntArgbBmConvert)
245DEF_FUNC(IntArgbToIntArgbBmScaleConvert)
246DEF_FUNC(IntArgbToIntArgbBmXorBlit)
247DEF_FUNC(ByteGrayToIntArgbPreConvert)
248DEF_FUNC(ByteGrayToIntArgbPreScaleConvert)
249DEF_FUNC(ByteIndexedBmToIntArgbPreScaleXparOver)
250DEF_FUNC(ByteIndexedBmToIntArgbPreXparBgCopy)
251DEF_FUNC(ByteIndexedBmToIntArgbPreXparOver)
252DEF_FUNC(ByteIndexedToIntArgbPreConvert)
253DEF_FUNC(ByteIndexedToIntArgbPreScaleConvert)
254DEF_FUNC(IntArgbPreAlphaMaskFill)
255DEF_FUNC(IntArgbPreDrawGlyphListAA)
256DEF_FUNC(IntArgbPreSrcMaskFill)
257DEF_FUNC(IntArgbPreSrcOverMaskFill)
258DEF_FUNC(IntArgbPreToIntArgbConvert)
259DEF_FUNC(IntArgbPreToIntArgbScaleConvert)
260DEF_FUNC(IntArgbToIntArgbPreAlphaMaskBlit)
261DEF_FUNC(IntArgbToIntArgbPreConvert)
262DEF_FUNC(IntArgbToIntArgbPreScaleConvert)
263DEF_FUNC(IntArgbToIntArgbPreSrcOverMaskBlit)
264DEF_FUNC(IntArgbToIntArgbPreXorBlit)
265DEF_FUNC(IntRgbToIntArgbPreAlphaMaskBlit)
266DEF_FUNC(IntRgbToIntArgbPreConvert)
267DEF_FUNC(IntRgbToIntArgbPreScaleConvert)
268DEF_FUNC(ThreeByteBgrToIntArgbPreConvert)
269DEF_FUNC(ThreeByteBgrToIntArgbPreScaleConvert)
270DEF_FUNC(ByteIndexedBmToIntBgrScaleXparOver)
271DEF_FUNC(ByteIndexedBmToIntBgrXparBgCopy)
272DEF_FUNC(ByteIndexedBmToIntBgrXparOver)
273DEF_FUNC(ByteIndexedToIntBgrConvert)
274DEF_FUNC(ByteIndexedToIntBgrScaleConvert)
275DEF_FUNC(IntArgbBmToIntBgrScaleXparOver)
276DEF_FUNC(IntArgbBmToIntBgrXparBgCopy)
277DEF_FUNC(IntArgbBmToIntBgrXparOver)
278DEF_FUNC(IntArgbToIntBgrAlphaMaskBlit)
279DEF_FUNC(IntArgbToIntBgrConvert)
280DEF_FUNC(IntArgbToIntBgrScaleConvert)
281DEF_FUNC(IntArgbToIntBgrSrcOverMaskBlit)
282DEF_FUNC(IntArgbToIntBgrXorBlit)
283DEF_FUNC(IntBgrAlphaMaskFill)
284DEF_FUNC(IntBgrDrawGlyphListAA)
285DEF_FUNC(IntBgrSrcMaskFill)
286DEF_FUNC(IntBgrSrcOverMaskFill)
287DEF_FUNC(IntBgrToIntArgbConvert)
288DEF_FUNC(IntBgrToIntArgbScaleConvert)
289DEF_FUNC(IntBgrToIntBgrAlphaMaskBlit)
290DEF_FUNC(IntRgbToIntBgrAlphaMaskBlit)
291DEF_FUNC(ThreeByteBgrToIntBgrConvert)
292DEF_FUNC(ThreeByteBgrToIntBgrScaleConvert)
293DEF_FUNC(ByteGrayToIntRgbConvert)
294DEF_FUNC(ByteGrayToIntRgbScaleConvert)
295DEF_FUNC(IntArgbBmToIntRgbXparBgCopy)
296DEF_FUNC(IntArgbBmToIntRgbXparOver)
297DEF_FUNC(IntArgbToIntRgbAlphaMaskBlit)
298DEF_FUNC(IntArgbToIntRgbSrcOverMaskBlit)
299DEF_FUNC(IntArgbToIntRgbXorBlit)
300DEF_FUNC(IntRgbAlphaMaskFill)
301DEF_FUNC(IntRgbDrawGlyphListAA)
302DEF_FUNC(IntRgbSrcMaskFill)
303DEF_FUNC(IntRgbSrcOverMaskFill)
304DEF_FUNC(IntRgbToIntArgbConvert)
305DEF_FUNC(IntRgbToIntArgbScaleConvert)
306DEF_FUNC(IntRgbToIntRgbAlphaMaskBlit)
307DEF_FUNC(ThreeByteBgrToIntRgbConvert)
308DEF_FUNC(ThreeByteBgrToIntRgbScaleConvert)
309DEF_FUNC(ByteGrayToIntRgbxConvert)
310DEF_FUNC(ByteGrayToIntRgbxScaleConvert)
311DEF_FUNC(ByteIndexedBmToIntRgbxScaleXparOver)
312DEF_FUNC(ByteIndexedBmToIntRgbxXparBgCopy)
313DEF_FUNC(ByteIndexedBmToIntRgbxXparOver)
314DEF_FUNC(ByteIndexedToIntRgbxConvert)
315DEF_FUNC(ByteIndexedToIntRgbxScaleConvert)
316DEF_FUNC(IntArgbBmToIntRgbxScaleXparOver)
317DEF_FUNC(IntArgbToIntRgbxConvert)
318DEF_FUNC(IntArgbToIntRgbxScaleConvert)
319DEF_FUNC(IntArgbToIntRgbxXorBlit)
320DEF_FUNC(IntRgbxDrawGlyphListAA)
321DEF_FUNC(IntRgbxToIntArgbConvert)
322DEF_FUNC(IntRgbxToIntArgbScaleConvert)
323DEF_FUNC(ThreeByteBgrToIntRgbxConvert)
324DEF_FUNC(ThreeByteBgrToIntRgbxScaleConvert)
325DEF_FUNC(ByteGrayToThreeByteBgrConvert)
326DEF_FUNC(ByteGrayToThreeByteBgrScaleConvert)
327DEF_FUNC(ByteIndexedBmToThreeByteBgrScaleXparOver)
328DEF_FUNC(ByteIndexedBmToThreeByteBgrXparBgCopy)
329DEF_FUNC(ByteIndexedBmToThreeByteBgrXparOver)
330DEF_FUNC(ByteIndexedToThreeByteBgrConvert)
331DEF_FUNC(ByteIndexedToThreeByteBgrScaleConvert)
332DEF_FUNC(IntArgbBmToThreeByteBgrScaleXparOver)
333DEF_FUNC(IntArgbBmToThreeByteBgrXparBgCopy)
334DEF_FUNC(IntArgbBmToThreeByteBgrXparOver)
335DEF_FUNC(IntArgbToThreeByteBgrAlphaMaskBlit)
336DEF_FUNC(IntArgbToThreeByteBgrConvert)
337DEF_FUNC(IntArgbToThreeByteBgrScaleConvert)
338DEF_FUNC(IntArgbToThreeByteBgrSrcOverMaskBlit)
339DEF_FUNC(IntArgbToThreeByteBgrXorBlit)
340DEF_FUNC(IntRgbToThreeByteBgrAlphaMaskBlit)
341DEF_FUNC(ThreeByteBgrAlphaMaskFill)
342DEF_FUNC(ThreeByteBgrDrawGlyphListAA)
343DEF_FUNC(ThreeByteBgrSrcMaskFill)
344DEF_FUNC(ThreeByteBgrSrcOverMaskFill)
345DEF_FUNC(ThreeByteBgrToIntArgbConvert)
346DEF_FUNC(ThreeByteBgrToIntArgbScaleConvert)
347DEF_FUNC(ByteGrayToIndex8GrayConvert)
348DEF_FUNC(ByteGrayToIndex8GrayScaleConvert)
349DEF_FUNC(ByteIndexedBmToIndex8GrayXparBgCopy)
350DEF_FUNC(ByteIndexedBmToIndex8GrayXparOver)
351DEF_FUNC(ByteIndexedToIndex8GrayConvert)
352DEF_FUNC(ByteIndexedToIndex8GrayScaleConvert)
353DEF_FUNC(Index12GrayToIndex8GrayConvert)
354DEF_FUNC(Index12GrayToIndex8GrayScaleConvert)
355DEF_FUNC(Index8GrayAlphaMaskFill)
356DEF_FUNC(Index8GrayDrawGlyphListAA)
357DEF_FUNC(Index8GraySrcOverMaskFill)
358DEF_FUNC(Index8GrayToIndex8GrayConvert)
359DEF_FUNC(Index8GrayToIndex8GrayScaleConvert)
360DEF_FUNC(IntArgbToIndex8GrayAlphaMaskBlit)
361DEF_FUNC(IntArgbToIndex8GrayConvert)
362DEF_FUNC(IntArgbToIndex8GrayScaleConvert)
363DEF_FUNC(IntArgbToIndex8GraySrcOverMaskBlit)
364DEF_FUNC(IntArgbToIndex8GrayXorBlit)
365DEF_FUNC(IntRgbToIndex8GrayAlphaMaskBlit)
366DEF_FUNC(ThreeByteBgrToIndex8GrayConvert)
367DEF_FUNC(ThreeByteBgrToIndex8GrayScaleConvert)
368DEF_FUNC(UshortGrayToIndex8GrayScaleConvert)
369DEF_FUNC(ByteGrayToIndex12GrayConvert)
370DEF_FUNC(ByteGrayToIndex12GrayScaleConvert)
371DEF_FUNC(ByteIndexedBmToIndex12GrayXparBgCopy)
372DEF_FUNC(ByteIndexedBmToIndex12GrayXparOver)
373DEF_FUNC(ByteIndexedToIndex12GrayConvert)
374DEF_FUNC(ByteIndexedToIndex12GrayScaleConvert)
375DEF_FUNC(Index12GrayAlphaMaskFill)
376DEF_FUNC(Index12GrayDrawGlyphListAA)
377DEF_FUNC(Index12GraySrcOverMaskFill)
378DEF_FUNC(Index12GrayToIndex12GrayConvert)
379DEF_FUNC(Index12GrayToIndex12GrayScaleConvert)
380DEF_FUNC(Index12GrayToIntArgbScaleConvert)
381DEF_FUNC(Index8GrayToIndex12GrayConvert)
382DEF_FUNC(Index8GrayToIndex12GrayScaleConvert)
383DEF_FUNC(IntArgbToIndex12GrayAlphaMaskBlit)
384DEF_FUNC(IntArgbToIndex12GrayConvert)
385DEF_FUNC(IntArgbToIndex12GrayScaleConvert)
386DEF_FUNC(IntArgbToIndex12GraySrcOverMaskBlit)
387DEF_FUNC(IntArgbToIndex12GrayXorBlit)
388DEF_FUNC(IntRgbToIndex12GrayAlphaMaskBlit)
389DEF_FUNC(ThreeByteBgrToIndex12GrayConvert)
390DEF_FUNC(ThreeByteBgrToIndex12GrayScaleConvert)
391DEF_FUNC(UshortGrayToIndex12GrayScaleConvert)
392DEF_FUNC(ByteBinary1BitAlphaMaskFill)
393DEF_FUNC(ByteBinary1BitDrawGlyphList)
394DEF_FUNC(ByteBinary1BitDrawGlyphListAA)
395DEF_FUNC(ByteBinary1BitDrawGlyphListXor)
396DEF_FUNC(ByteBinary1BitSetLine)
397DEF_FUNC(ByteBinary1BitSetRect)
398DEF_FUNC(ByteBinary1BitSetSpans)
399DEF_FUNC(ByteBinary1BitToByteBinary1BitConvert)
400DEF_FUNC(ByteBinary1BitToIntArgbAlphaMaskBlit)
401DEF_FUNC(ByteBinary1BitToIntArgbConvert)
402DEF_FUNC(ByteBinary1BitXorLine)
403DEF_FUNC(ByteBinary1BitXorRect)
404DEF_FUNC(ByteBinary1BitXorSpans)
405DEF_FUNC(IntArgbToByteBinary1BitAlphaMaskBlit)
406DEF_FUNC(IntArgbToByteBinary1BitConvert)
407DEF_FUNC(IntArgbToByteBinary1BitXorBlit)
408DEF_FUNC(ByteBinary2BitAlphaMaskFill)
409DEF_FUNC(ByteBinary2BitDrawGlyphList)
410DEF_FUNC(ByteBinary2BitDrawGlyphListAA)
411DEF_FUNC(ByteBinary2BitDrawGlyphListXor)
412DEF_FUNC(ByteBinary2BitSetLine)
413DEF_FUNC(ByteBinary2BitSetRect)
414DEF_FUNC(ByteBinary2BitSetSpans)
415DEF_FUNC(ByteBinary2BitToByteBinary2BitConvert)
416DEF_FUNC(ByteBinary2BitToIntArgbAlphaMaskBlit)
417DEF_FUNC(ByteBinary2BitToIntArgbConvert)
418DEF_FUNC(ByteBinary2BitXorLine)
419DEF_FUNC(ByteBinary2BitXorRect)
420DEF_FUNC(ByteBinary2BitXorSpans)
421DEF_FUNC(IntArgbToByteBinary2BitAlphaMaskBlit)
422DEF_FUNC(IntArgbToByteBinary2BitConvert)
423DEF_FUNC(IntArgbToByteBinary2BitXorBlit)
424DEF_FUNC(ByteBinary4BitAlphaMaskFill)
425DEF_FUNC(ByteBinary4BitDrawGlyphList)
426DEF_FUNC(ByteBinary4BitDrawGlyphListAA)
427DEF_FUNC(ByteBinary4BitDrawGlyphListXor)
428DEF_FUNC(ByteBinary4BitSetLine)
429DEF_FUNC(ByteBinary4BitSetRect)
430DEF_FUNC(ByteBinary4BitSetSpans)
431DEF_FUNC(ByteBinary4BitToByteBinary4BitConvert)
432DEF_FUNC(ByteBinary4BitToIntArgbAlphaMaskBlit)
433DEF_FUNC(ByteBinary4BitToIntArgbConvert)
434DEF_FUNC(ByteBinary4BitXorLine)
435DEF_FUNC(ByteBinary4BitXorRect)
436DEF_FUNC(ByteBinary4BitXorSpans)
437DEF_FUNC(IntArgbToByteBinary4BitAlphaMaskBlit)
438DEF_FUNC(IntArgbToByteBinary4BitConvert)
439DEF_FUNC(IntArgbToByteBinary4BitXorBlit)
440DEF_FUNC(ByteGrayToUshort555RgbConvert)
441DEF_FUNC(ByteGrayToUshort555RgbScaleConvert)
442DEF_FUNC(ByteIndexedBmToUshort555RgbScaleXparOver)
443DEF_FUNC(ByteIndexedBmToUshort555RgbXparBgCopy)
444DEF_FUNC(ByteIndexedBmToUshort555RgbXparOver)
445DEF_FUNC(ByteIndexedToUshort555RgbConvert)
446DEF_FUNC(ByteIndexedToUshort555RgbScaleConvert)
447DEF_FUNC(IntArgbBmToUshort555RgbScaleXparOver)
448DEF_FUNC(IntArgbBmToUshort555RgbXparBgCopy)
449DEF_FUNC(IntArgbBmToUshort555RgbXparOver)
450DEF_FUNC(IntArgbToUshort555RgbAlphaMaskBlit)
451DEF_FUNC(IntArgbToUshort555RgbConvert)
452DEF_FUNC(IntArgbToUshort555RgbScaleConvert)
453DEF_FUNC(IntArgbToUshort555RgbSrcOverMaskBlit)
454DEF_FUNC(IntArgbToUshort555RgbXorBlit)
455DEF_FUNC(IntRgbToUshort555RgbAlphaMaskBlit)
456DEF_FUNC(ThreeByteBgrToUshort555RgbConvert)
457DEF_FUNC(ThreeByteBgrToUshort555RgbScaleConvert)
458DEF_FUNC(Ushort555RgbAlphaMaskFill)
459DEF_FUNC(Ushort555RgbDrawGlyphListAA)
460DEF_FUNC(Ushort555RgbSrcMaskFill)
461DEF_FUNC(Ushort555RgbSrcOverMaskFill)
462DEF_FUNC(Ushort555RgbToIntArgbConvert)
463DEF_FUNC(Ushort555RgbToIntArgbScaleConvert)
464DEF_FUNC(ByteGrayToUshort555RgbxConvert)
465DEF_FUNC(ByteGrayToUshort555RgbxScaleConvert)
466DEF_FUNC(ByteIndexedBmToUshort555RgbxScaleXparOver)
467DEF_FUNC(ByteIndexedBmToUshort555RgbxXparBgCopy)
468DEF_FUNC(ByteIndexedBmToUshort555RgbxXparOver)
469DEF_FUNC(ByteIndexedToUshort555RgbxConvert)
470DEF_FUNC(ByteIndexedToUshort555RgbxScaleConvert)
471DEF_FUNC(IntArgbBmToUshort555RgbxScaleXparOver)
472DEF_FUNC(IntArgbToUshort555RgbxConvert)
473DEF_FUNC(IntArgbToUshort555RgbxScaleConvert)
474DEF_FUNC(IntArgbToUshort555RgbxXorBlit)
475DEF_FUNC(ThreeByteBgrToUshort555RgbxConvert)
476DEF_FUNC(ThreeByteBgrToUshort555RgbxScaleConvert)
477DEF_FUNC(Ushort555RgbxDrawGlyphListAA)
478DEF_FUNC(Ushort555RgbxToIntArgbConvert)
479DEF_FUNC(Ushort555RgbxToIntArgbScaleConvert)
480DEF_FUNC(ByteGrayToUshort565RgbConvert)
481DEF_FUNC(ByteGrayToUshort565RgbScaleConvert)
482DEF_FUNC(ByteIndexedBmToUshort565RgbScaleXparOver)
483DEF_FUNC(ByteIndexedBmToUshort565RgbXparBgCopy)
484DEF_FUNC(ByteIndexedBmToUshort565RgbXparOver)
485DEF_FUNC(ByteIndexedToUshort565RgbConvert)
486DEF_FUNC(ByteIndexedToUshort565RgbScaleConvert)
487DEF_FUNC(IntArgbBmToUshort565RgbScaleXparOver)
488DEF_FUNC(IntArgbBmToUshort565RgbXparBgCopy)
489DEF_FUNC(IntArgbBmToUshort565RgbXparOver)
490DEF_FUNC(IntArgbToUshort565RgbAlphaMaskBlit)
491DEF_FUNC(IntArgbToUshort565RgbConvert)
492DEF_FUNC(IntArgbToUshort565RgbScaleConvert)
493DEF_FUNC(IntArgbToUshort565RgbSrcOverMaskBlit)
494DEF_FUNC(IntArgbToUshort565RgbXorBlit)
495DEF_FUNC(IntRgbToUshort565RgbAlphaMaskBlit)
496DEF_FUNC(ThreeByteBgrToUshort565RgbConvert)
497DEF_FUNC(ThreeByteBgrToUshort565RgbScaleConvert)
498DEF_FUNC(Ushort565RgbAlphaMaskFill)
499DEF_FUNC(Ushort565RgbDrawGlyphListAA)
500DEF_FUNC(Ushort565RgbSrcMaskFill)
501DEF_FUNC(Ushort565RgbSrcOverMaskFill)
502DEF_FUNC(Ushort565RgbToIntArgbConvert)
503DEF_FUNC(Ushort565RgbToIntArgbScaleConvert)
504
505/***************************************************************/
506
507static AnyFunc_pair vis_func_pair_array[] = {
508 ADD_FUNC(AnyByteDrawGlyphList),
509 ADD_FUNC(AnyByteDrawGlyphListXor),
510 ADD_FUNC(AnyByteIsomorphicCopy),
511 ADD_FUNC(AnyByteIsomorphicScaleCopy),
512 ADD_FUNC(AnyByteIsomorphicXorCopy),
513 ADD_FUNC(AnyByteSetLine),
514 ADD_FUNC(AnyByteSetRect),
515 ADD_FUNC(AnyByteSetSpans),
516 ADD_FUNC(AnyByteXorLine),
517 ADD_FUNC(AnyByteXorRect),
518 ADD_FUNC(AnyByteXorSpans),
519 ADD_FUNC(AnyShortDrawGlyphList),
520 ADD_FUNC(AnyShortDrawGlyphListXor),
521 ADD_FUNC(AnyShortIsomorphicCopy),
522 ADD_FUNC(AnyShortIsomorphicScaleCopy),
523 ADD_FUNC(AnyShortIsomorphicXorCopy),
524 ADD_FUNC(AnyShortSetLine),
525 ADD_FUNC(AnyShortSetRect),
526 ADD_FUNC(AnyShortSetSpans),
527 ADD_FUNC(AnyShortXorLine),
528 ADD_FUNC(AnyShortXorRect),
529 ADD_FUNC(AnyShortXorSpans),
530 ADD_FUNC(Any3ByteIsomorphicCopy),
531 ADD_FUNC(Any3ByteIsomorphicScaleCopy),
532 ADD_FUNC(Any3ByteIsomorphicXorCopy),
533 ADD_FUNC(Any3ByteSetLine),
534 ADD_FUNC(Any3ByteSetRect),
535 ADD_FUNC(Any3ByteSetSpans),
536 ADD_FUNC(Any3ByteXorLine),
537 ADD_FUNC(Any3ByteXorRect),
538 ADD_FUNC(Any3ByteXorSpans),
539 ADD_FUNC(Any4ByteDrawGlyphList),
540 ADD_FUNC(Any4ByteDrawGlyphListXor),
541 ADD_FUNC(Any4ByteIsomorphicCopy),
542 ADD_FUNC(Any4ByteIsomorphicScaleCopy),
543 ADD_FUNC(Any4ByteIsomorphicXorCopy),
544 ADD_FUNC(Any4ByteSetLine),
545 ADD_FUNC(Any4ByteSetRect),
546 ADD_FUNC(Any4ByteSetSpans),
547 ADD_FUNC(Any4ByteXorLine),
548 ADD_FUNC(Any4ByteXorRect),
549 ADD_FUNC(Any4ByteXorSpans),
550 ADD_FUNC(AnyIntDrawGlyphList),
551 ADD_FUNC(AnyIntDrawGlyphListXor),
552 ADD_FUNC(AnyIntIsomorphicCopy),
553 ADD_FUNC(AnyIntIsomorphicScaleCopy),
554 ADD_FUNC(AnyIntIsomorphicXorCopy),
555 ADD_FUNC(AnyIntSetLine),
556 ADD_FUNC(AnyIntSetRect),
557 ADD_FUNC(AnyIntSetSpans),
558 ADD_FUNC(AnyIntXorLine),
559 ADD_FUNC(AnyIntXorRect),
560 ADD_FUNC(AnyIntXorSpans),
561 ADD_FUNC(ByteGrayAlphaMaskFill),
562 ADD_FUNC(ByteGrayDrawGlyphListAA),
563 ADD_FUNC(ByteGraySrcMaskFill),
564 ADD_FUNC(ByteGraySrcOverMaskFill),
565 ADD_FUNC(ByteGrayToIntArgbConvert),
566 ADD_FUNC(ByteGrayToIntArgbScaleConvert),
567 ADD_FUNC(ByteIndexedBmToByteGrayScaleXparOver),
568 ADD_FUNC(ByteIndexedBmToByteGrayXparBgCopy),
569 ADD_FUNC(ByteIndexedBmToByteGrayXparOver),
570 ADD_FUNC(ByteIndexedToByteGrayConvert),
571 ADD_FUNC(ByteIndexedToByteGrayScaleConvert),
572 ADD_FUNC(Index12GrayToByteGrayConvert),
573 ADD_FUNC(Index12GrayToByteGrayScaleConvert),
574 ADD_FUNC(Index8GrayToByteGrayConvert),
575 ADD_FUNC(Index8GrayToByteGrayScaleConvert),
576 ADD_FUNC(IntArgbBmToByteGrayScaleXparOver),
577 ADD_FUNC(IntArgbBmToByteGrayXparBgCopy),
578 ADD_FUNC(IntArgbBmToByteGrayXparOver),
579 ADD_FUNC(IntArgbToByteGrayAlphaMaskBlit),
580 ADD_FUNC(IntArgbToByteGrayConvert),
581 ADD_FUNC(IntArgbToByteGrayScaleConvert),
582 ADD_FUNC(IntArgbToByteGraySrcOverMaskBlit),
583 ADD_FUNC(IntArgbToByteGrayXorBlit),
584 ADD_FUNC(IntRgbToByteGrayAlphaMaskBlit),
585 ADD_FUNC(ThreeByteBgrToByteGrayConvert),
586 ADD_FUNC(ThreeByteBgrToByteGrayScaleConvert),
587 ADD_FUNC(UshortGrayToByteGrayConvert),
588 ADD_FUNC(UshortGrayToByteGrayScaleConvert),
589 ADD_FUNC(ByteGrayToUshortGrayConvert),
590 ADD_FUNC(ByteGrayToUshortGrayScaleConvert),
591 ADD_FUNC(ByteIndexedBmToUshortGrayScaleXparOver),
592 ADD_FUNC(ByteIndexedBmToUshortGrayXparBgCopy),
593 ADD_FUNC(ByteIndexedBmToUshortGrayXparOver),
594 ADD_FUNC(ByteIndexedToUshortGrayConvert),
595 ADD_FUNC(ByteIndexedToUshortGrayScaleConvert),
596 ADD_FUNC(IntArgbBmToUshortGrayScaleXparOver),
597 ADD_FUNC(IntArgbToUshortGrayConvert),
598 ADD_FUNC(IntArgbToUshortGrayScaleConvert),
599 ADD_FUNC(ThreeByteBgrToUshortGrayConvert),
600 ADD_FUNC(ThreeByteBgrToUshortGrayScaleConvert),
601 ADD_FUNC(UshortGrayToIntArgbConvert),
602 ADD_FUNC(UshortGrayToIntArgbScaleConvert),
603 ADD_FUNC(ByteGrayToByteIndexedConvert),
604 ADD_FUNC(ByteGrayToByteIndexedScaleConvert),
605 ADD_FUNC(ByteIndexedBmToByteIndexedScaleXparOver),
606 ADD_FUNC(ByteIndexedBmToByteIndexedXparBgCopy),
607 ADD_FUNC(ByteIndexedBmToByteIndexedXparOver),
608 ADD_FUNC(ByteIndexedToByteIndexedConvert),
609 ADD_FUNC(ByteIndexedToByteIndexedScaleConvert),
610 ADD_FUNC(Index12GrayToByteIndexedConvert),
611 ADD_FUNC(Index12GrayToByteIndexedScaleConvert),
612 ADD_FUNC(IntArgbBmToByteIndexedScaleXparOver),
613 ADD_FUNC(IntArgbBmToByteIndexedXparBgCopy),
614 ADD_FUNC(IntArgbBmToByteIndexedXparOver),
615 ADD_FUNC(IntArgbToByteIndexedConvert),
616 ADD_FUNC(IntArgbToByteIndexedScaleConvert),
617 ADD_FUNC(IntArgbToByteIndexedXorBlit),
618 ADD_FUNC(ThreeByteBgrToByteIndexedConvert),
619 ADD_FUNC(ThreeByteBgrToByteIndexedScaleConvert),
620 ADD_FUNC(ByteGrayToFourByteAbgrConvert),
621 ADD_FUNC(ByteGrayToFourByteAbgrScaleConvert),
622 ADD_FUNC(ByteIndexedBmToFourByteAbgrScaleXparOver),
623 ADD_FUNC(ByteIndexedBmToFourByteAbgrXparBgCopy),
624 ADD_FUNC(ByteIndexedBmToFourByteAbgrXparOver),
625 ADD_FUNC(ByteIndexedToFourByteAbgrConvert),
626 ADD_FUNC(ByteIndexedToFourByteAbgrScaleConvert),
627 ADD_FUNC(FourByteAbgrAlphaMaskFill),
628 ADD_FUNC(FourByteAbgrDrawGlyphListAA),
629 ADD_FUNC(FourByteAbgrSrcMaskFill),
630 ADD_FUNC(FourByteAbgrSrcOverMaskFill),
631 ADD_FUNC(FourByteAbgrToIntArgbConvert),
632 ADD_FUNC(FourByteAbgrToIntArgbScaleConvert),
633 ADD_FUNC(IntArgbBmToFourByteAbgrScaleXparOver),
634 ADD_FUNC(IntArgbToFourByteAbgrAlphaMaskBlit),
635 ADD_FUNC(IntArgbToFourByteAbgrConvert),
636 ADD_FUNC(IntArgbToFourByteAbgrScaleConvert),
637 ADD_FUNC(IntArgbToFourByteAbgrSrcOverMaskBlit),
638 ADD_FUNC(IntArgbToFourByteAbgrXorBlit),
639 ADD_FUNC(IntRgbToFourByteAbgrAlphaMaskBlit),
640 ADD_FUNC(IntRgbToFourByteAbgrConvert),
641 ADD_FUNC(IntRgbToFourByteAbgrScaleConvert),
642 ADD_FUNC(ThreeByteBgrToFourByteAbgrConvert),
643 ADD_FUNC(ThreeByteBgrToFourByteAbgrScaleConvert),
644 ADD_FUNC(ByteGrayToFourByteAbgrPreConvert),
645 ADD_FUNC(ByteGrayToFourByteAbgrPreScaleConvert),
646 ADD_FUNC(ByteIndexedBmToFourByteAbgrPreScaleXparOver),
647 ADD_FUNC(ByteIndexedBmToFourByteAbgrPreXparBgCopy),
648 ADD_FUNC(ByteIndexedBmToFourByteAbgrPreXparOver),
649 ADD_FUNC(ByteIndexedToFourByteAbgrPreConvert),
650 ADD_FUNC(ByteIndexedToFourByteAbgrPreScaleConvert),
651 ADD_FUNC(FourByteAbgrPreAlphaMaskFill),
652 ADD_FUNC(FourByteAbgrPreDrawGlyphListAA),
653 ADD_FUNC(FourByteAbgrPreSrcMaskFill),
654 ADD_FUNC(FourByteAbgrPreSrcOverMaskFill),
655 ADD_FUNC(FourByteAbgrPreToIntArgbConvert),
656 ADD_FUNC(FourByteAbgrPreToIntArgbScaleConvert),
657 ADD_FUNC(IntArgbBmToFourByteAbgrPreScaleXparOver),
658 ADD_FUNC(IntArgbToFourByteAbgrPreAlphaMaskBlit),
659 ADD_FUNC(IntArgbToFourByteAbgrPreConvert),
660 ADD_FUNC(IntArgbToFourByteAbgrPreScaleConvert),
661 ADD_FUNC(IntArgbToFourByteAbgrPreSrcOverMaskBlit),
662 ADD_FUNC(IntArgbToFourByteAbgrPreXorBlit),
663 ADD_FUNC(IntRgbToFourByteAbgrPreAlphaMaskBlit),
664 ADD_FUNC(IntRgbToFourByteAbgrPreConvert),
665 ADD_FUNC(IntRgbToFourByteAbgrPreScaleConvert),
666 ADD_FUNC(ThreeByteBgrToFourByteAbgrPreConvert),
667 ADD_FUNC(ThreeByteBgrToFourByteAbgrPreScaleConvert),
668 ADD_FUNC(ByteIndexedBmToIntArgbScaleXparOver),
669 ADD_FUNC(ByteIndexedBmToIntArgbXparBgCopy),
670 ADD_FUNC(ByteIndexedBmToIntArgbXparOver),
671 ADD_FUNC(ByteIndexedToIntArgbConvert),
672 ADD_FUNC(ByteIndexedToIntArgbScaleConvert),
673 ADD_FUNC(Index12GrayToIntArgbConvert),
674 ADD_FUNC(IntArgbAlphaMaskFill),
675 ADD_FUNC(IntArgbBmToIntArgbScaleXparOver),
676 ADD_FUNC(IntArgbDrawGlyphListAA),
677 ADD_FUNC(IntArgbSrcMaskFill),
678 ADD_FUNC(IntArgbSrcOverMaskFill),
679 ADD_FUNC(IntArgbToIntArgbAlphaMaskBlit),
680 ADD_FUNC(IntArgbToIntArgbSrcOverMaskBlit),
681 ADD_FUNC(IntArgbToIntArgbXorBlit),
682 ADD_FUNC(IntRgbToIntArgbAlphaMaskBlit),
683 ADD_FUNC(ByteIndexedBmToIntArgbBmScaleXparOver),
684 ADD_FUNC(ByteIndexedBmToIntArgbBmXparBgCopy),
685 ADD_FUNC(ByteIndexedBmToIntArgbBmXparOver),
686 ADD_FUNC(ByteIndexedToIntArgbBmConvert),
687 ADD_FUNC(ByteIndexedToIntArgbBmScaleConvert),
688 ADD_FUNC(IntArgbBmDrawGlyphListAA),
689 ADD_FUNC(IntArgbBmToIntArgbConvert),
690 ADD_FUNC(IntArgbToIntArgbBmConvert),
691 ADD_FUNC(IntArgbToIntArgbBmScaleConvert),
692 ADD_FUNC(IntArgbToIntArgbBmXorBlit),
693 ADD_FUNC(ByteGrayToIntArgbPreConvert),
694 ADD_FUNC(ByteGrayToIntArgbPreScaleConvert),
695 ADD_FUNC(ByteIndexedBmToIntArgbPreScaleXparOver),
696 ADD_FUNC(ByteIndexedBmToIntArgbPreXparBgCopy),
697 ADD_FUNC(ByteIndexedBmToIntArgbPreXparOver),
698 ADD_FUNC(ByteIndexedToIntArgbPreConvert),
699 ADD_FUNC(ByteIndexedToIntArgbPreScaleConvert),
700 ADD_FUNC(IntArgbPreAlphaMaskFill),
701 ADD_FUNC(IntArgbPreDrawGlyphListAA),
702 ADD_FUNC(IntArgbPreSrcMaskFill),
703 ADD_FUNC(IntArgbPreSrcOverMaskFill),
704 ADD_FUNC(IntArgbPreToIntArgbConvert),
705 ADD_FUNC(IntArgbPreToIntArgbScaleConvert),
706 ADD_FUNC(IntArgbToIntArgbPreAlphaMaskBlit),
707 ADD_FUNC(IntArgbToIntArgbPreConvert),
708 ADD_FUNC(IntArgbToIntArgbPreScaleConvert),
709 ADD_FUNC(IntArgbToIntArgbPreSrcOverMaskBlit),
710 ADD_FUNC(IntArgbToIntArgbPreXorBlit),
711 ADD_FUNC(IntRgbToIntArgbPreAlphaMaskBlit),
712 ADD_FUNC(IntRgbToIntArgbPreConvert),
713 ADD_FUNC(IntRgbToIntArgbPreScaleConvert),
714 ADD_FUNC(ThreeByteBgrToIntArgbPreConvert),
715 ADD_FUNC(ThreeByteBgrToIntArgbPreScaleConvert),
716 ADD_FUNC(ByteIndexedBmToIntBgrScaleXparOver),
717 ADD_FUNC(ByteIndexedBmToIntBgrXparBgCopy),
718 ADD_FUNC(ByteIndexedBmToIntBgrXparOver),
719 ADD_FUNC(ByteIndexedToIntBgrConvert),
720 ADD_FUNC(ByteIndexedToIntBgrScaleConvert),
721 ADD_FUNC(IntArgbBmToIntBgrScaleXparOver),
722 ADD_FUNC(IntArgbBmToIntBgrXparBgCopy),
723 ADD_FUNC(IntArgbBmToIntBgrXparOver),
724 ADD_FUNC(IntArgbToIntBgrAlphaMaskBlit),
725 ADD_FUNC(IntArgbToIntBgrConvert),
726 ADD_FUNC(IntArgbToIntBgrScaleConvert),
727 ADD_FUNC(IntArgbToIntBgrSrcOverMaskBlit),
728 ADD_FUNC(IntArgbToIntBgrXorBlit),
729 ADD_FUNC(IntBgrAlphaMaskFill),
730 ADD_FUNC(IntBgrDrawGlyphListAA),
731 ADD_FUNC(IntBgrSrcMaskFill),
732 ADD_FUNC(IntBgrSrcOverMaskFill),
733 ADD_FUNC(IntBgrToIntArgbConvert),
734 ADD_FUNC(IntBgrToIntArgbScaleConvert),
735 ADD_FUNC(IntBgrToIntBgrAlphaMaskBlit),
736 ADD_FUNC(IntRgbToIntBgrAlphaMaskBlit),
737 ADD_FUNC(ThreeByteBgrToIntBgrConvert),
738 ADD_FUNC(ThreeByteBgrToIntBgrScaleConvert),
739 ADD_FUNC(ByteGrayToIntRgbConvert),
740 ADD_FUNC(ByteGrayToIntRgbScaleConvert),
741 ADD_FUNC(IntArgbBmToIntRgbXparBgCopy),
742 ADD_FUNC(IntArgbBmToIntRgbXparOver),
743 ADD_FUNC(IntArgbToIntRgbAlphaMaskBlit),
744 ADD_FUNC(IntArgbToIntRgbSrcOverMaskBlit),
745 ADD_FUNC(IntArgbToIntRgbXorBlit),
746 ADD_FUNC(IntRgbAlphaMaskFill),
747 ADD_FUNC(IntRgbDrawGlyphListAA),
748 ADD_FUNC(IntRgbSrcMaskFill),
749 ADD_FUNC(IntRgbSrcOverMaskFill),
750 ADD_FUNC(IntRgbToIntArgbConvert),
751 ADD_FUNC(IntRgbToIntArgbScaleConvert),
752 ADD_FUNC(IntRgbToIntRgbAlphaMaskBlit),
753 ADD_FUNC(ThreeByteBgrToIntRgbConvert),
754 ADD_FUNC(ThreeByteBgrToIntRgbScaleConvert),
755 ADD_FUNC(ByteGrayToIntRgbxConvert),
756 ADD_FUNC(ByteGrayToIntRgbxScaleConvert),
757 ADD_FUNC(ByteIndexedBmToIntRgbxScaleXparOver),
758 ADD_FUNC(ByteIndexedBmToIntRgbxXparBgCopy),
759 ADD_FUNC(ByteIndexedBmToIntRgbxXparOver),
760 ADD_FUNC(ByteIndexedToIntRgbxConvert),
761 ADD_FUNC(ByteIndexedToIntRgbxScaleConvert),
762 ADD_FUNC(IntArgbBmToIntRgbxScaleXparOver),
763 ADD_FUNC(IntArgbToIntRgbxConvert),
764 ADD_FUNC(IntArgbToIntRgbxScaleConvert),
765 ADD_FUNC(IntArgbToIntRgbxXorBlit),
766 ADD_FUNC(IntRgbxDrawGlyphListAA),
767 ADD_FUNC(IntRgbxToIntArgbConvert),
768 ADD_FUNC(IntRgbxToIntArgbScaleConvert),
769 ADD_FUNC(ThreeByteBgrToIntRgbxConvert),
770 ADD_FUNC(ThreeByteBgrToIntRgbxScaleConvert),
771 ADD_FUNC(ThreeByteBgrAlphaMaskFill),
772 ADD_FUNC(ThreeByteBgrSrcMaskFill),
773 ADD_FUNC(ThreeByteBgrSrcOverMaskFill),
774 ADD_FUNC(ThreeByteBgrToIntArgbConvert),
775 ADD_FUNC(ThreeByteBgrToIntArgbScaleConvert),
776};
777
778/***************************************************************/
779
780#define NUM_VIS_FUNCS sizeof(vis_func_pair_array)/sizeof(AnyFunc_pair)
781
782/***************************************************************/
783
784#define HASH_SIZE 1024 /* must be power of 2 and > number of functions */
785#define PTR_SHIFT ((sizeof(void*) == 4) ? 2 : 3)
786#define HASH_FUNC(x) (((jint)(x) >> PTR_SHIFT) & (HASH_SIZE - 1))
787#define NEXT_INDEX(j) ((j + 1) & (HASH_SIZE - 1))
788
789static AnyFunc* hash_table[HASH_SIZE];
790static AnyFunc* hash_table_vis[HASH_SIZE];
791
792/***************************************************************/
793
794static int initialized;
795static int usevis = JNI_TRUE;
796
797#ifdef __linux__
798# define ULTRA_CHIP "sparc64"
799#else
800# define ULTRA_CHIP "sun4u"
801#endif
802
803extern TransformInterpFunc *pBilinearFunc;
804extern TransformInterpFunc *pBicubicFunc;
805extern TransformInterpFunc vis_BilinearBlend;
806extern TransformInterpFunc vis_BicubicBlend;
807
808/*
809 * This function returns a pointer to the VIS accelerated version
810 * of the indicated C function if it exists and if the conditions
811 * are correct to use the VIS functions.
812 */
813AnyFunc* MapAccelFunction(AnyFunc *func_c)
814{
815 jint i, j;
816
817 if (!initialized) {
818 struct utsname name;
819
820 /*
821 * Only use the vis loops if the environment variable is set.
822 * Find out the machine name. If it is an SUN ultra, we
823 * can use the vis library
824 */
825 if (uname(&name) < 0 || strcmp(name.machine, ULTRA_CHIP) != 0) {
826 usevis = JNI_FALSE;
827 } else {
828 char *vis_env = getenv("J2D_USE_VIS_LOOPS");
829 if (vis_env != 0) {
830 switch (*vis_env) {
831 case 'T':
832 fprintf(stderr, "VIS loops enabled\n");
833 case 't':
834 usevis = JNI_TRUE;
835 break;
836
837 case 'F':
838 fprintf(stderr, "VIS loops disabled\n");
839 case 'f':
840 usevis = JNI_FALSE;
841 break;
842
843 default:
844 fprintf(stderr, "VIS loops %s by default\n",
845 usevis ? "enabled" : "disabled");
846 break;
847 }
848 }
849 }
850 initialized = 1;
851 if (usevis) {
852 /* fill hash table */
853 memset(hash_table, 0, sizeof(hash_table));
854 for (i = 0; i < NUM_VIS_FUNCS; i++) {
855 AnyFunc* func = vis_func_pair_array[i].func_c;
856 j = HASH_FUNC(func);
857 while (hash_table[j] != NULL) {
858 j = NEXT_INDEX(j);
859 }
860 hash_table[j] = func;
861 hash_table_vis[j] = vis_func_pair_array[i].func_vis;
862 }
863 pBilinearFunc = vis_BilinearBlend;
864 pBicubicFunc = vis_BicubicBlend;
865 }
866 }
867 if (!usevis) {
868 return func_c;
869 }
870
871 j = HASH_FUNC(func_c);
872 while (hash_table[j] != NULL) {
873 if (hash_table[j] == func_c) {
874 return hash_table_vis[j];
875 }
876 j = NEXT_INDEX(j);
877 }
878
879 return func_c;
880}
881
882/***************************************************************/