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