00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099 #ifndef INC_XaDraw_h
00100 #define INC_XaDraw_h
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122 #include "xagdraw.h"
00123
00124
00125
00126
00127
00128
00129 #if defined(CONFIG_DEBUG_XADRAW)
00130
00131 typedef struct tagXaDrawFns
00132 {
00133 DWORD (*pfnXaDraw_GetVersion)() ;
00134
00135
00136 INT32 (*pfnXaDraw_ClearLastError)(pGCONTEXT pContext) ;
00137 eError (*pfnXaDraw_GetLastError)(pcGCONTEXT pContext) ;
00138 pcCHAR (*pfnXaDraw_GetLastErrorText)(pcGCONTEXT pContext) ;
00139
00140 INT32 (*pfnXaDraw_Initialise)(pGCONTEXT pContext,pcGCONTEXT pOldContext) ;
00141 INT32 (*pfnXaDraw_CopyContext)(pcGCONTEXT pContext,pGCONTEXT pNewContext) ;
00142
00143 INT32 (*pfnXaColour_GetGraduationTableSize)(pcGCONTEXT pContext) ;
00144 INT32 (*pfnXaColour_GetGraduationTableLength)() ;
00145 INT32 (*pfnXaColour_GetLongGraduationTableSize)(pcGCONTEXT pContext) ;
00146 INT32 (*pfnXaColour_GetLongGraduationTableLength)() ;
00147 INT32 (*pfnXaColour_GetTransparentGraduationTableSize)() ;
00148 INT32 (*pfnXaColour_GetTransparentGraduationTableLength)() ;
00149 INT32 (*pfnXaColour_GetLongTransparentGraduationTableSize)() ;
00150 INT32 (*pfnXaColour_GetLongTransparentGraduationTableLength)() ;
00151
00152 INT32 (*pfnXaDraw_SetMemoryHandlers)(
00153 pGCONTEXT pContext,
00154 pBYTE (*MemoryAlloc)( UINT32 Size ),
00155 void (*MemoryFree) ( pBYTE Address )
00156 ) ;
00157 INT32 (*pfnXaDraw_SetStackLimit)( pGCONTEXT pContext,pcVOID StackLimit ) ;
00158 INT32 (*pfnXaDraw_SetStackSize)( pGCONTEXT pContext,UINT32 StackSize ) ;
00159 INT32 (*pfnXaDraw_Terminate)(pGCONTEXT pContext) ;
00160 INT32 (*pfnXaDraw_Clean)(pGCONTEXT pContext) ;
00161
00162 INT32 (*pfnXaDraw_ContextLength)() ;
00163 INT32 (*pfnXaDraw_ComparePalettes)( pcGCONTEXT pContext,pcLOGPALETTE Palette,BOOL Flag ) ;
00164
00165 pcLOGPALETTE (*pfnXaColour_SelectPalette)( pGCONTEXT pContext,BOOL Flag ) ;
00166 INT32 (*pfnXaColour_InitialiseWithPalette)( pGCONTEXT pContext,pcLOGPALETTE Palette ) ;
00167 INT32 (*pfnXaColour_SetDitherStyle)( pGCONTEXT pContext,DitherStyle Style ) ;
00168 INT32 (*pfnXaColour_SetTileSmoothingFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00169 INT32 (*pfnXaColour_SetTileFilteringFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00170 INT32 (*pfnXaColour_Sharpen)( pGCONTEXT pContext,INT32 Sharpen ) ;
00171 INT32 (*pfnXaColour_Blur) ( pGCONTEXT pContext,INT32 Blur ) ;
00172 INT32 (*pfnXaColour_SetHalftoneOrigin)( pGCONTEXT pContext, INT32 x,INT32 y ) ;
00173 INT32 (*pfnXaColour_SetColour)( pGCONTEXT pContext,COLORREF Colour ) ;
00174 INT32 (*pfnXaColour_SetSolidColour)( pGCONTEXT pContext,COLORREF Colour,UINT32 BPP,UINT32 Format16BPP ) ;
00175 INT32 (*pfnXaColour_SetWordColour)( pGCONTEXT pContext,DWORD Colour ) ;
00176 INT32 (*pfnXaColour_SetInvert)( pGCONTEXT pContext,DWORD Colour ) ;
00177 INT32 (*pfnXaColour_SetTransparency)( pGCONTEXT pContext,COLORREF Colour,DWORD Style ) ;
00178 INT32 (*pfnXaColour_SetTransparencyLookupTable)( pGCONTEXT pContext,pcBYTE Table ) ;
00179 pcBYTE (*pfnXaColour_ReturnBrush)(pcGCONTEXT pContext) ;
00180 pcBYTE (*pfnXaColour_ReturnBrushRGB)(pcGCONTEXT pContext) ;
00181 INT32 (*pfnXaColour_AddToGraduationTable)(
00182 pGCONTEXT pContext,
00183 COLORREF Colour,
00184 BOOL HSVFlag,
00185 pGraduationTable Table,
00186 UINT32 Index
00187 ) ;
00188 INT32 (*pfnXaColour_BuildGraduationTable)(
00189 pGCONTEXT pContext,
00190 COLORREF StartColour,
00191 COLORREF EndColour,
00192 BOOL HSVFlag,
00193 pGraduationTable Table
00194 ) ;
00195
00196 INT32 (*pfnXaColour_BuildGraduationTable32)(
00197 pGCONTEXT pContext,
00198 COLORREF StartColour,
00199 COLORREF EndColour,
00200 BOOL HSVFlag,
00201 pGraduationTable32 Table
00202 ) ;
00203 INT32 (*pfnXaColour_BuildTransparencyTable)(
00204 pGCONTEXT pContext,
00205 BYTE StartColour,
00206 BYTE EndColour,
00207 pTransparentGradTable Table
00208 ) ;
00209 INT32 (*pfnXaColour_SetGraduation)(
00210 pGCONTEXT pContext,
00211 DWORD Style,
00212 pcGraduationTable Table,
00213 pcPOINT PointA,
00214 pcPOINT PointB,
00215 pcPOINT PointC
00216 ) ;
00217 INT32 (*pfnXaColour_SetGraduation4)(
00218 pGCONTEXT pContext,
00219 DWORD Style,
00220 pcGraduationTable Table,
00221 pcPOINT PointA,
00222 pcPOINT PointB,
00223 pcPOINT PointC,
00224 pcPOINT PointD
00225 ) ;
00226 INT32 (*pfnXaColour_Set3WayGraduation)(
00227 pGCONTEXT pContext,
00228 DWORD Style,
00229 COLORREF ColourA, COLORREF ColourB, COLORREF ColourD,
00230 pcPOINT PointA, pcPOINT PointB, pcPOINT PointD
00231 ) ;
00232 INT32 (*pfnXaColour_Set3WayGraduation4)(
00233 pGCONTEXT pContext,
00234 DWORD Style,
00235 COLORREF ColourA, COLORREF ColourB, COLORREF ColourD,
00236 pcPOINT PointA, pcPOINT PointB, pcPOINT PointC, pcPOINT PointD
00237 ) ;
00238 INT32 (*pfnXaColour_Set4WayGraduation)(
00239 pGCONTEXT pContext,
00240 DWORD Style,
00241 COLORREF ColourA, COLORREF ColourB, COLORREF ColourC, COLORREF ColourD,
00242 pcPOINT PointA, pcPOINT PointB, pcPOINT PointD
00243 ) ;
00244 INT32 (*pfnXaColour_Set4WayGraduation4)(
00245 pGCONTEXT pContext,
00246 DWORD Style,
00247 COLORREF ColourA, COLORREF ColourB, COLORREF ColourC, COLORREF ColourD,
00248 pcPOINT PointA, pcPOINT PointB, pcPOINT PointC, pcPOINT PointD
00249 ) ;
00250 INT32 (*pfnXaColour_SetGourand)(
00251 pGCONTEXT pContext,
00252 DWORD Style,
00253 COLORREF ColourA, COLORREF ColourB, COLORREF ColourD,
00254 pcPOINT PointA, pcPOINT PointB, pcPOINT PointD
00255 ) ;
00256 INT32 (*pfnXaColour_SetTransparentGraduation)(
00257 pGCONTEXT pContext,
00258 DWORD Style,
00259 pcTransparentGradTable Table,
00260 pcPOINT PointA,
00261 pcPOINT PointB,
00262 pcPOINT PointC
00263 ) ;
00264 INT32 (*pfnXaColour_SetTransparentGraduation4)(
00265 pGCONTEXT pContext,
00266 DWORD Style,
00267 pcTransparentGradTable Table,
00268 pcPOINT PointA,
00269 pcPOINT PointB,
00270 pcPOINT PointC,
00271 pcPOINT PointD
00272 ) ;
00273 INT32 (*pfnXaColour_SetTransparent3WayGraduation)(
00274 pGCONTEXT pContext,
00275 DWORD Style,
00276 BYTE ValueA, BYTE ValueB, BYTE ValueD,
00277 pcPOINT PointA, pcPOINT PointB, pcPOINT PointD
00278 ) ;
00279 INT32 (*pfnXaColour_SetTransparent3WayGraduation4)(
00280 pGCONTEXT pContext,
00281 DWORD Style,
00282 BYTE ValueA, BYTE ValueB, BYTE ValueD,
00283 pcPOINT PointA, pcPOINT PointB, pcPOINT PointC, pcPOINT PointD
00284 ) ;
00285 INT32 (*pfnXaColour_SetTransparent4WayGraduation)(
00286 pGCONTEXT pContext,
00287 DWORD Style,
00288 BYTE ValueA, BYTE ValueB, BYTE ValueC, BYTE ValueD,
00289 pcPOINT PointA, pcPOINT PointB, pcPOINT PointD
00290 ) ;
00291 INT32 (*pfnXaColour_SetTransparent4WayGraduation4)(
00292 pGCONTEXT pContext,
00293 DWORD Style,
00294 BYTE ValueA, BYTE ValueB, BYTE ValueC, BYTE ValueD,
00295 pcPOINT PointA, pcPOINT PointB, pcPOINT PointC, pcPOINT PointD
00296 ) ;
00297 INT32 (*pfnXaBitmap_SetBias)(pGCONTEXT pContext,UINT32 uChannel,double fBias) ;
00298 INT32 (*pfnXaBitmap_SetGain)(pGCONTEXT pContext,UINT32 uChannel,double fGain) ;
00299 INT32 (*pfnXaBitmap_SetBrightness)(pGCONTEXT pContext,double fBrightness) ;
00300 INT32 (*pfnXaBitmap_SetContrast)(pGCONTEXT pContext,double fContrast) ;
00301 INT32 (*pfnXaBitmap_SetGamma)(pGCONTEXT pContext,double fGamma) ;
00302 INT32 (*pfnXaBitmap_SetPostGamma)(pGCONTEXT pContext,double fPostGamma) ;
00303 INT32 (*pfnXaBitmap_SetSaturation)(pGCONTEXT pContext,double fSaturation) ;
00304 INT32 (*pfnXaBitmap_SetContone)( pGCONTEXT pContext,UINT32 uContoneStyle,COLORREF rgbStart,COLORREF rgbEnd ) ;
00305 INT32 (*pfnXaBitmap_SetInputRange)( pGCONTEXT pContext,UINT32 uChannel,BYTE uStart,BYTE uEnd ) ;
00306 INT32 (*pfnXaBitmap_SetOutputRange)( pGCONTEXT pContext,UINT32 uChannel,BYTE uStart,BYTE uEnd ) ;
00307 INT32 (*pfnXaColour_SetTilePattern)(
00308 pGCONTEXT pContext,
00309 pcBITMAPINFOHEADER BitmapInfo,
00310 pcBYTE Bitmap,
00311 DWORD Style,
00312 pcPOINT PointA,
00313 pcPOINT PointB,
00314 pcPOINT PointC,
00315 COLORREF DefaultColour,
00316 pcBGRT TranslationTable,
00317 pcBYTE RedTranslationTable,
00318 pcBYTE GreenTranslationTable,
00319 pcBYTE BlueTranslationTable,
00320 pcBYTE TransparencyTranslationTable,
00321 INT32 TileOffset
00322 ) ;
00323 INT32 (*pfnXaColour_SetTilePattern4)(
00324 pGCONTEXT pContext,
00325 pcBITMAPINFOHEADER BitmapInfo,
00326 pcBYTE Bitmap,
00327 DWORD Style,
00328 pcPOINT PointA,
00329 pcPOINT PointB,
00330 pcPOINT PointC,
00331 pcPOINT PointD,
00332 COLORREF DefaultColour,
00333 pcBGRT TranslationTable,
00334 pcBYTE RedTranslationTable,
00335 pcBYTE GreenTranslationTable,
00336 pcBYTE BlueTranslationTable,
00337 pcBYTE TransparencyTranslationTable,
00338 INT32 TileOffset
00339 ) ;
00340 INT32 (*pfnXaColour_SetTransparentTilePattern)(
00341 pGCONTEXT pContext,
00342 pcBITMAPINFOHEADER BitmapInfo,
00343 pcBYTE Bitmap,
00344 DWORD Style,
00345 pcPOINT PointA,
00346 pcPOINT PointB,
00347 pcPOINT PointC,
00348 BYTE DefaultColour,
00349 pcBYTE TransparencyTranslationTable,
00350 INT32 TileOffset
00351 ) ;
00352 INT32 (*pfnXaColour_SetTransparentTilePattern4)(
00353 pGCONTEXT pContext,
00354 pcBITMAPINFOHEADER BitmapInfo,
00355 pcBYTE Bitmap,
00356 DWORD Style,
00357 pcPOINT PointA,
00358 pcPOINT PointB,
00359 pcPOINT PointC,
00360 pcPOINT PointD,
00361 BYTE DefaultColour,
00362 pcBYTE TransparencyTranslationTable,
00363 INT32 TileOffset
00364 ) ;
00365 INT32 (*pfnXaColour_ConvertBitmap)(
00366 pGCONTEXT pContext,
00367 pcBITMAPINFOHEADER SBitmapInfo, pcBYTE SBitmap,
00368 pcBITMAPINFOHEADER DBitmapInfo, pBYTE DBitmap,
00369 DWORD Dither
00370 ) ;
00371 INT32 (*pfnXaColour_SetConversionPalette)( pGCONTEXT pContext,pcLOGPALETTE pPalette ) ;
00372 INT32 (*pfnXaColour_SetMaxDiffusionError)( pGCONTEXT pContext,UINT32 MaxError ) ;
00373 INT32 (*pfnXaColour_ScaleBitmap)(
00374 pGCONTEXT pContext,
00375 pcBITMAPINFOHEADER SBitmapInfo, pcBYTE SBitmap,
00376 pcBITMAPINFOHEADER DBitmapInfo, pBYTE DBitmap,
00377 UINT32 Channels
00378 ) ;
00379
00380 INT32 (*pfnXaColour_SetGreyConversionValues)( pGCONTEXT pContext,UINT32 Red,UINT32 Green,UINT32 Blue ) ;
00381
00382 COLORREF (*pfnXaColour_ConvertHSVtoRGB)( COLORREF hsv ) ;
00383 COLORREF (*pfnXaColour_ConvertRGBtoHSV)( COLORREF rgb ) ;
00384
00385
00386 INT32 (*pfnXaColour_SetSeparationTables)(
00387 pGCONTEXT pContext,
00388 pcBGR CyanSeparationTable,
00389 pcBGR MagentaSeparationTable,
00390 pcBGR YellowSeparationTable,
00391 pcBGR BlackSeparationTable,
00392 pcBYTE UnderColourRemovalTable,
00393 pcBYTE BlackGenerationTable
00394 ) ;
00395 INT32 (*pfnXaColour_SetBitmapConversionTable)(
00396 pGCONTEXT pContext,
00397 pcBGR BitmapConversionTable
00398 ) ;
00399
00400 INT32 (*pfnXaDraw_SetDIBitmap)(
00401 pGCONTEXT pContext,
00402 pcBITMAPINFOHEADER BitmapInfo,
00403 pBYTE Bitmap,
00404 UINT32 Format16BPP
00405 ) ;
00406 INT32 (*pfnXaDraw_SetInvertedDIBitmap)(
00407 pGCONTEXT pContext,
00408 pcBITMAPINFOHEADER BitmapInfo,
00409 pBYTE Bitmap,
00410 UINT32 Format16BPP
00411 ) ;
00412 INT32 (*pfnXaDraw_SetMatrix)( pGCONTEXT pContext,pcGMATRIX Matrix ) ;
00413 INT32 (*pfnXaDraw_MaxScale) ( pGCONTEXT pContext,pcGMATRIX Matrix,pcRECT BBox ) ;
00414 INT32 (*pfnXaDraw_GetMaxBitmapWidth)() ;
00415 INT32 (*pfnXaDraw_GetMaxBitmapDepth)() ;
00416 INT32 (*pfnXaDraw_SetAntialiasFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00417 INT32 (*pfnXaDraw_SetDashAdjustmentFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00418 INT32 (*pfnXaDraw_SetHintingFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00419 INT32 (*pfnXaDraw_SetFlatness)( pGCONTEXT pContext,UINT32 Flatness ) ;
00420 INT32 (*pfnXaDraw_SetMiterLimit)( pGCONTEXT pContext,UINT32 MiterLimit ) ;
00421 INT32 (*pfnXaDraw_FillRectangle)( pGCONTEXT pContext,pcRECT Rectangle ) ;
00422 INT32 (*pfnXaDraw_FillPoint)( pGCONTEXT pContext,pcPOINT Point ) ;
00423 INT32 (*pfnXaDraw_FillPath)(
00424 pGCONTEXT pContext,
00425 pcPOINT Points,
00426 pcBYTE Types,
00427 UINT32 Length,
00428 UINT32 Winding
00429 ) ;
00430 INT32 (*pfnXaDraw_InitialiseFillPath)( pGCONTEXT pContext,UINT32 Winding,BOOL DontPlot ) ;
00431 INT32 (*pfnXaDraw_FillPathLine)( pGCONTEXT pContext,pcFVector2D Points, BOOL Reverse ) ;
00432 INT32 (*pfnXaDraw_DoFillPath)( pGCONTEXT pContext ) ;
00433 INT32 (*pfnXaDraw_FillTriangle)(
00434 pGCONTEXT pContext,
00435 pcPOINT PointA,
00436 pcPOINT PointB,
00437 pcPOINT PointC,
00438 DWORD Flags
00439 ) ;
00440 INT32 (*pfnXaDraw_HintPath)(
00441 pGCONTEXT pContext,
00442 pPOINT Points,
00443 pcBYTE Types,
00444 UINT32 Length,
00445 BOOL Close,
00446 UINT32 LineWidth
00447 ) ;
00448 INT32 (*pfnXaDraw_StrokePath)(
00449 pGCONTEXT pContext,
00450 pcPOINT Points,
00451 pcBYTE Types,
00452 UINT32 Length,
00453 BOOL Close,
00454 UINT32 LineWidth,
00455 DWORD LineCaps,
00456 DWORD LineJoin,
00457 pcDashType Dash
00458 ) ;
00459 INT32 (*pfnXaDraw_StrokePathToPath)(
00460 pGCONTEXT pContext,
00461 pcPOINT IPoints,
00462 pcBYTE ITypes,
00463 UINT32 ILength,
00464 pPOINT OPoints,
00465 pBYTE OTypes,
00466 UINT32 OLength,
00467 BOOL Close,
00468 UINT32 LineWidth,
00469 DWORD LineCaps,
00470 DWORD LineJoin,
00471 pcDashType Dash
00472 ) ;
00473 INT32 (*pfnXaDraw_CalcStrokeBBox)(
00474 pGCONTEXT pContext,
00475 pcPOINT IPoints,
00476 pcBYTE ITypes,
00477 UINT32 ILength,
00478 pRECT Rect,
00479 BOOL Close,
00480 UINT32 LineWidth,
00481 DWORD LineCaps,
00482 DWORD LineJoin,
00483 pcDashType Dash
00484 ) ;
00485 INT32 (*pfnXaDraw_IsOverlap)(
00486 pGCONTEXT pContext,
00487 pcPOINT Points,
00488 pcBYTE Types,
00489 UINT32 Length,
00490 UINT32 Winding
00491 ) ;
00492 INT32 (*pfnXaDraw_IsStrokeOverlap)(
00493 pGCONTEXT pContext,
00494 pcPOINT Points,
00495 pcBYTE Types,
00496 UINT32 Length,
00497 BOOL Close,
00498 UINT32 LineWidth,
00499 DWORD LineCaps,
00500 DWORD LineJoin,
00501 pcDashType Dash
00502 ) ;
00503 INT32 (*pfnXaDraw_GetStatistics)(
00504 pGCONTEXT pContext,
00505 pcPOINT Points,
00506 pcBYTE Types,
00507 UINT32 Length,
00508 UINT32 Winding,
00509 pSTATISTICS Stats
00510 ) ;
00511 INT32 (*pfnXaDraw_MakeRegion)(
00512 pGCONTEXT pContext,
00513 pcPOINT Points,
00514 pcBYTE Types,
00515 UINT32 Length,
00516 UINT32 Winding,
00517 pREGION ORegion,
00518 UINT32 OLength
00519 ) ;
00520 INT32 (*pfnXaDraw_MakeUnclippedRegion)(
00521 pGCONTEXT pContext,
00522 pcPOINT Points,
00523 pcBYTE Types,
00524 UINT32 Length,
00525 UINT32 Winding,
00526 pREGION ORegion,
00527 UINT32 OLength
00528 ) ;
00529 INT32 (*pfnXaDraw_FillRegion)(
00530 pGCONTEXT pContext,
00531 pcREGION Region,
00532 pcPOINT Offset
00533 ) ;
00534 INT32 (*pfnXaDraw_ClipRectangle)( pGCONTEXT pContext,pcRECT Rectangle ) ;
00535 INT32 (*pfnXaDraw_DeviceClipRectangle)( pGCONTEXT pContext,pcRECT Rectangle ) ;
00536 INT32 (*pfnXaDraw_GetDeviceClipRectangle)( pcGCONTEXT pContext,pRECT Rectangle ) ;
00537 INT32 (*pfnXaDraw_ClipRegion)( pGCONTEXT pContext,pcREGION Region ) ;
00538 pcREGION (*pfnXaDraw_GetClipRegion)(pGCONTEXT pContext) ;
00539 INT32 (*pfnXaDraw_CalcSimpleBBox)(
00540 pcPOINT Points,
00541 UINT32 Length,
00542 pRECT Rect
00543 ) ;
00544 INT32 (*pfnXaDraw_CalcBBox)(
00545 pGCONTEXT pContext,
00546 pcPOINT Points,
00547 pcBYTE Types,
00548 UINT32 Length,
00549 pRECT Rect,
00550 BOOL Flatten
00551 ) ;
00552 INT32 (*pfnXaDraw_TransformPath)(
00553 pGCONTEXT pContext,
00554 pcPOINT IPoints,
00555 pPOINT OPoints,
00556 UINT32 Length,
00557 pcGMATRIX Matrix
00558 ) ;
00559 INT32 (*pfnXaDraw_ScrollBitmap)( pGCONTEXT pContext, INT32 x,INT32 y ) ;
00560
00561 INT32 (*pfnXaDraw_ClearChangedBBox)(pGCONTEXT pContext) ;
00562 INT32 (*pfnXaDraw_GetChangedBBox)( pcGCONTEXT pContext, pRECT Rectangle ) ;
00563 INT32 (*pfnXaDraw_SetChangedBBox)( pGCONTEXT pContext,pcRECT Rectangle ) ;
00564
00565 INT32 (*pfnXaDraw_SetBevelContrast) ( pGCONTEXT pContext,UINT32 Contrast ) ;
00566 INT32 (*pfnXaDraw_SetBevelLightness)( pGCONTEXT pContext,UINT32 Contrast ) ;
00567 INT32 (*pfnXaDraw_SetBevelDarkness) ( pGCONTEXT pContext,UINT32 Contrast ) ;
00568 INT32 (*pfnXaDraw_TranslateBevelValue)( pcGCONTEXT pContext, BYTE Index, BYTE Colour ) ;
00569
00570
00571
00572 INT32 (*pfnXaBitmap_PlotTile)(
00573 pGCONTEXT pContext,
00574 pcBITMAPINFOHEADER BitmapInfo,
00575 pcBYTE Bitmap,
00576 DWORD Style,
00577 pcPOINT PointA,
00578 pcPOINT PointB,
00579 pcPOINT PointC,
00580 pcBGRT TranslationTable,
00581 pcBYTE RedTranslationTable,
00582 pcBYTE GreenTranslationTable,
00583 pcBYTE BlueTranslationTable,
00584 pcBYTE TransparencyTranslationTable
00585 ) ;
00586 INT32 (*pfnXaBitmap_PlotTile4)(
00587 pGCONTEXT pContext,
00588 pcBITMAPINFOHEADER BitmapInfo,
00589 pcBYTE Bitmap,
00590 DWORD Style,
00591 pcPOINT PointA,
00592 pcPOINT PointB,
00593 pcPOINT PointC,
00594 pcPOINT PointD,
00595 pcBGRT TranslationTable,
00596 pcBYTE RedTranslationTable,
00597 pcBYTE GreenTranslationTable,
00598 pcBYTE BlueTranslationTable,
00599 pcBYTE TransparencyTranslationTable
00600 ) ;
00601
00602
00603 INT32 (*pfnXa3D_SetTruePerspectiveFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00604 INT32 (*pfnXa3D_DefineView)(
00605 pGCONTEXT pContext,
00606 INT32 nObserverDistance,
00607 COLORREF Background,
00608 pcBITMAPINFOHEADER pTextureInfo ,
00609 pcBYTE pTextureBitmap ,
00610 pcBGRT pTextureColours ,
00611 UINT32 uTextureXOffset,
00612 UINT32 uTextureYOffset,
00613 pcBYTE pOverlayBitmap ,
00614 pcBITMAPINFOHEADER pShadowInfo ,
00615 pcBYTE pShadowBitmap ,
00616 COLORREF ShadowColour,
00617 BOOL bTransparent ,
00618 BOOL bAlpha ,
00619 BOOL bTransparentTexture ,
00620 UINT32 uFade
00621 ) ;
00622 INT32 (*pfnXa3D_DefineTexture)(
00623 pGCONTEXT pContext,
00624 pcBITMAP pBitmap,
00625 BOOL bScaleDown,
00626 BOOL bRepeating
00627 ) ;
00628 INT32 (*pfnXa3D_Define2ndTexture)(
00629 pGCONTEXT pContext,
00630 pcBITMAPINFOHEADER pBitmapInfo,
00631 pcBYTE pBitmap,
00632 pcBGRT pRGBIndex,
00633 BOOL bTint,
00634 COLORREF TintColour
00635 ) ;
00636 INT32 (*pfnXa3D_ConvertColourFormat)( pcColour pSColour, pColour pDColour ) ;
00637 INT32 (*pfnXa3D_AddTriangleToView)(
00638 pGCONTEXT pContext,
00639 pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00640 pcColour pColourA, pcColour pColourB, pcColour pColourC,
00641 BOOL bForward
00642 ) ;
00643 INT32 (*pfnXa3D_AddFlatTriangleToView)(
00644 pGCONTEXT pContext,
00645 pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00646 pcColour pFlatColour,
00647 BOOL bForward
00648 ) ;
00649 INT32 (*pfnXa3D_AddTextureToView)(
00650 pGCONTEXT pContext,
00651 pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00652 pcColour pColourA, pcColour pColourB, pcColour pColourC,
00653 pcColour pColourA2,pcColour pColourB2,pcColour pColourC2,
00654 pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00655 BOOL bForward
00656 ) ;
00657 INT32 (*pfnXa3D_AddFlatTextureToView)(
00658 pGCONTEXT pContext,
00659 pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00660 pcColour pFlatColour,
00661 pcColour pFlatColour2,
00662 pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00663 BOOL bForward
00664 ) ;
00665 INT32 (*pfnXa3D_AddTexturesToView)(
00666 pGCONTEXT pContext,
00667 pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00668 pcColour pColourA, pcColour pColourB, pcColour pColourC,
00669 pcColour pColourA2,pcColour pColourB2,pcColour pColourC2,
00670 pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00671 pcFVector2D pPointA3,pcFVector2D pPointB3,pcFVector2D pPointC3,
00672 BOOL bForward
00673 ) ;
00674 INT32 (*pfnXa3D_AddFlatTexturesToView)(
00675 pGCONTEXT pContext,
00676 pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00677 pcColour pFlatColour,
00678 pcColour pFlatColour2,
00679 pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00680 pcFVector2D pPointA3,pcFVector2D pPointB3,pcFVector2D pPointC3,
00681 BOOL bForward
00682 ) ;
00683 INT32 (*pfnXa3D_SetSideFaceFlag)( pGCONTEXT pContext,BOOL bFlag ) ;
00684 INT32 (*pfnXa3D_GetViewBBox)( pcGCONTEXT pContext,pRECT pBBox ) ;
00685 INT32 (*pfnXa3D_PlotView)(pGCONTEXT pContext) ;
00686 INT32 (*pfnXaDraw_SetAntialiasQualityFlag)( pGCONTEXT pContext,BOOL Flag ) ;
00687 }
00688 XA_DRAW_FNS, *PXA_DRAW_FNS;
00689
00690
00691
00692
00693 #define XaDraw_GetVersion (g_XaFns.pfnXaDraw_GetVersion)
00694 #define XaDraw_ClearLastError (g_XaFns.pfnXaDraw_ClearLastError)
00695 #define XaDraw_GetLastError (g_XaFns.pfnXaDraw_GetLastError)
00696 #define XaDraw_GetLastErrorText (g_XaFns.pfnXaDraw_GetLastErrorText)
00697
00698 #define XaDraw_Initialise (g_XaFns.pfnXaDraw_Initialise)
00699 #define XaDraw_CopyContext (g_XaFns.pfnXaDraw_CopyContext)
00700
00701 #define XaColour_GetGraduationTableSize \
00702 (g_XaFns.pfnXaColour_GetGraduationTableSize)
00703 #define XaColour_GetGraduationTableLength \
00704 (g_XaFns.pfnXaColour_GetGraduationTableLength)
00705 #define XaColour_GetLongGraduationTableSize \
00706 (g_XaFns.pfnXaColour_GetLongGraduationTableSize)
00707 #define XaColour_GetLongGraduationTableLength \
00708 (g_XaFns.pfnXaColour_GetLongGraduationTableLength)
00709 #define XaColour_GetTransparentGraduationTableSize \
00710 (g_XaFns.pfnXaColour_GetTransparentGraduationTableSize)
00711 #define XaColour_GetTransparentGraduationTableLength \
00712 (g_XaFns.pfnXaColour_GetTransparentGraduationTableLength)
00713 #define XaColour_GetLongTransparentGraduationTableSize \
00714 (g_XaFns.pfnXaColour_GetLongTransparentGraduationTableSize)
00715 #define XaColour_GetLongTransparentGraduationTableLength \
00716 (g_XaFns.pfnXaColour_GetLongTransparentGraduationTableLength)
00717
00718
00719 #define XaDraw_SetMemoryHandlers (g_XaFns.pfnXaDraw_SetMemoryHandlers)
00720 #define XaDraw_SetStackLimit (g_XaFns.pfnXaDraw_SetStackLimit)
00721 #define XaDraw_SetStackSize (g_XaFns.pfnXaDraw_SetStackSize)
00722 #define XaDraw_Terminate (g_XaFns.pfnXaDraw_Terminate)
00723 #define XaDraw_Clean (g_XaFns.pfnXaDraw_Clean)
00724
00725
00726 #define XaDraw_ContextLength (g_XaFns.pfnXaDraw_ContextLength)
00727 #define XaDraw_ComparePalettes (g_XaFns.pfnXaDraw_ComparePalettes)
00728
00729
00730 #define XaColour_SelectPalette (g_XaFns.pfnXaColour_SelectPalette)
00731 #define XaColour_InitialiseWithPalette \
00732 (g_XaFns.pfnXaColour_InitialiseWithPalette)
00733 #define XaColour_SetDitherStyle (g_XaFns.pfnXaColour_SetDitherStyle)
00734 #define XaColour_SetTileSmoothingFlag \
00735 (g_XaFns.pfnXaColour_SetTileSmoothingFlag)
00736 #define XaColour_SetTileFilteringFlag \
00737 (g_XaFns.pfnXaColour_SetTileFilteringFlag)
00738 #define XaBitmap_Sharpen (g_XaFns.pfnXaBitmap_Sharpen)
00739 #define XaBitmap_Blur (g_XaFns.pfnXaBitmap_Blur)
00740 #define XaColour_SetHalftoneOrigin (g_XaFns.pfnXaColour_SetHalftoneOrigin)
00741 #define XaColour_SetColour (g_XaFns.pfnXaColour_SetColour)
00742 #define XaColour_SetSolidColour (g_XaFns.pfnXaColour_SetSolidColour)
00743 #define XaColour_SetWordColour (g_XaFns.pfnXaColour_SetWordColour)
00744 #define XaColour_SetInvert (g_XaFns.pfnXaColour_SetInvert)
00745 #define XaColour_SetTransparency (g_XaFns.pfnXaColour_SetTransparency)
00746 #define XaColour_SetTransparencyLookupTable \
00747 (g_XaFns.pfnXaColour_SetTransparencyLookupTable)
00748 #define XaColour_ReturnBrush (g_XaFns.pfnXaColour_ReturnBrush)
00749 #define XaColour_ReturnBrushRGB (g_XaFns.pfnXaColour_ReturnBrushRGB)
00750 #define XaColour_AddToGraduationTable \
00751 (g_XaFns.pfnXaColour_AddToGraduationTable)
00752 #define XaColour_BuildGraduationTable \
00753 (g_XaFns.pfnXaColour_BuildGraduationTable)
00754 #define XaColour_BuildGraduationTable32 \
00755 (g_XaFns.pfnXaColour_BuildGraduationTable32)
00756 #define XaColour_BuildTransparencyTable \
00757 (g_XaFns.pfnXaColour_BuildTransparencyTable)
00758 #define XaColour_SetGraduation (g_XaFns.pfnXaColour_SetGraduation)
00759 #define XaColour_SetGraduation4 (g_XaFns.pfnXaColour_SetGraduation4)
00760 #define XaColour_Set3WayGraduation (g_XaFns.pfnXaColour_Set3WayGraduation)
00761 #define XaColour_Set3WayGraduation4 (g_XaFns.pfnXaColour_Set3WayGraduation4)
00762 #define XaColour_Set4WayGraduation (g_XaFns.pfnXaColour_Set4WayGraduation)
00763 #define XaColour_Set4WayGraduation4 (g_XaFns.pfnXaColour_Set4WayGraduation4)
00764 #define XaColour_SetGourand (g_XaFns.pfnXaColour_SetGourand)
00765 #define XaColour_SetTransparentGraduation \
00766 (g_XaFns.pfnXaColour_SetTransparentGraduation)
00767 #define XaColour_SetTransparentGraduation4 \
00768 (g_XaFns.pfnXaColour_SetTransparentGraduation4)
00769 #define XaColour_SetTransparent3WayGraduation \
00770 (g_XaFns.pfnXaColour_SetTransparent3WayGraduation)
00771 #define XaColour_SetTransparent3WayGraduation4 \
00772 (g_XaFns.pfnXaColour_SetTransparent3WayGraduation4)
00773 #define XaColour_SetTransparent4WayGraduation \
00774 (g_XaFns.pfnXaColour_SetTransparent4WayGraduation)
00775 #define XaColour_SetTransparent4WayGraduation4 \
00776 (g_XaFns.pfnXaColour_SetTransparent4WayGraduation4)
00777 #define XaBitmap_SetBias (g_XaFns.pfnXaBitmap_SetBias)
00778 #define XaBitmap_SetGain (g_XaFns.pfnXaBitmap_SetGain)
00779 #define XaBitmap_SetBrightness (g_XaFns.pfnXaBitmap_SetBrightness)
00780 #define XaBitmap_SetContrast (g_XaFns.pfnXaBitmap_SetContrast)
00781 #define XaBitmap_SetGamma (g_XaFns.pfnXaBitmap_SetGamma)
00782 #define XaBitmap_SetPostGamma (g_XaFns.pfnXaBitmap_SetPostGamma)
00783 #define XaBitmap_SetSaturation (g_XaFns.pfnXaBitmap_SetSaturation)
00784 #define XaBitmap_SetContone (g_XaFns.pfnXaBitmap_SetContone)
00785 #define XaBitmap_SetInputRange (g_XaFns.pfnXaBitmap_SetInputRange)
00786 #define XaBitmap_SetOutputRange (g_XaFns.pfnXaBitmap_SetOutputRange)
00787 #define XaColour_SetTilePattern (g_XaFns.pfnXaColour_SetTilePattern)
00788 #define XaColour_SetTilePattern4 (g_XaFns.pfnXaColour_SetTilePattern4)
00789 #define XaColour_SetTransparentTilePattern \
00790 (g_XaFns.pfnXaColour_SetTransparentTilePattern)
00791 #define XaColour_SetTransparentTilePattern4 \
00792 (g_XaFns.pfnXaColour_SetTransparentTilePattern4)
00793 #define XaColour_ConvertBitmap (g_XaFns.pfnXaColour_ConvertBitmap)
00794 #define XaColour_SetConversionPalette \
00795 (g_XaFns.pfnXaColour_SetConversionPalette)
00796 #define XaColour_SetMaxDiffusionError \
00797 (g_XaFns.pfnXaColour_SetMaxDiffusionError)
00798 #define XaColour_ScaleBitmap (g_XaFns.pfnXaColour_ScaleBitmap)
00799
00800
00801 #define XaColour_SetGreyConversionValues \
00802 (g_XaFns.pfnXaColour_SetGreyConversionValues)
00803
00804
00805 #define XaColour_ConvertHSVtoRGB (g_XaFns.pfnXaColour_ConvertHSVtoRGB)
00806 #define XaColour_ConvertRGBtoHSV (g_XaFns.pfnXaColour_ConvertRGBtoHSV)
00807
00808
00809 #define XaColour_SetSeparationTables \
00810 (g_XaFns.pfnXaColour_SetSeparationTables)
00811 #define XaColour_SetBitmapConversionTable \
00812 (g_XaFns.pfnXaColour_SetBitmapConversionTable)
00813
00814
00815 #define XaDraw_SetDIBitmap (g_XaFns.pfnXaDraw_SetDIBitmap)
00816 #define XaDraw_SetInvertedDIBitmap (g_XaFns.pfnXaDraw_SetInvertedDIBitmap)
00817 #define XaDraw_SetMatrix (g_XaFns.pfnXaDraw_SetMatrix)
00818 #define XaDraw_MaxScale (g_XaFns.pfnXaDraw_MaxScale)
00819 #define XaDraw_GetMaxBitmapWidth (g_XaFns.pfnXaDraw_GetMaxBitmapWidth)
00820 #define XaDraw_GetMaxBitmapDepth (g_XaFns.pfnXaDraw_GetMaxBitmapDepth)
00821 #define XaDraw_SetAntialiasFlag (g_XaFns.pfnXaDraw_SetAntialiasFlag)
00822 #define XaDraw_SetDashAdjustmentFlag \
00823 (g_XaFns.pfnXaDraw_SetDashAdjustmentFlag)
00824 #define XaDraw_SetHintingFlag (g_XaFns.pfnXaDraw_SetHintingFlag)
00825 #define XaDraw_SetFlatness (g_XaFns.pfnXaDraw_SetFlatness)
00826 #define XaDraw_SetMiterLimit (g_XaFns.pfnXaDraw_SetMiterLimit)
00827 #define XaDraw_FillRectangle (g_XaFns.pfnXaDraw_FillRectangle)
00828 #define XaDraw_FillPoint (g_XaFns.pfnXaDraw_FillPoint)
00829 #define XaDraw_FillPath (g_XaFns.pfnXaDraw_FillPath)
00830 #define XaDraw_InitialiseFillPath (g_XaFns.pfnXaDraw_InitialiseFillPath)
00831 #define XaDraw_FillPathLine (g_XaFns.pfnXaDraw_FillPathLine)
00832 #define XaDraw_DoFillPath (g_XaFns.pfnXaDraw_DoFillPath)
00833 #define XaDraw_FillTriangle (g_XaFns.pfnXaDraw_FillTriangle)
00834 #define XaDraw_HintPath (g_XaFns.pfnXaDraw_HintPath)
00835 #define XaDraw_StrokePath (g_XaFns.pfnXaDraw_StrokePath)
00836 #define XaDraw_StrokePathToPath (g_XaFns.pfnXaDraw_StrokePathToPath)
00837 #define XaDraw_CalcStrokeBBox (g_XaFns.pfnXaDraw_CalcStrokeBBox)
00838 #define XaDraw_IsOverlap (g_XaFns.pfnXaDraw_IsOverlap)
00839 #define XaDraw_IsStrokeOverlap (g_XaFns.pfnXaDraw_IsStrokeOverlap)
00840 #define XaDraw_GetStatistics (g_XaFns.pfnXaDraw_GetStatistics)
00841 #define XaDraw_MakeRegion (g_XaFns.pfnXaDraw_MakeRegion)
00842 #define XaDraw_MakeUnclippedRegion (g_XaFns.pfnXaDraw_MakeUnclippedRegion)
00843 #define XaDraw_FillRegion (g_XaFns.pfnXaDraw_FillRegion)
00844 #define XaDraw_ClipRectangle (g_XaFns.pfnXaDraw_ClipRectangle)
00845 #define XaDraw_DeviceClipRectangle (g_XaFns.pfnXaDraw_DeviceClipRectangle)
00846 #define XaDraw_GetDeviceClipRectangle \
00847 (g_XaFns.pfnXaDraw_GetDeviceClipRectangle)
00848 #define XaDraw_ClipRegion (g_XaFns.pfnXaDraw_ClipRegion)
00849 #define XaDraw_GetClipRegion (g_XaFns.pfnXaDraw_GetClipRegion)
00850 #define XaDraw_CalcSimpleBBox (g_XaFns.pfnXaDraw_CalcSimpleBBox)
00851 #define XaDraw_CalcBBox (g_XaFns.pfnXaDraw_CalcBBox)
00852 #define XaDraw_TransformPath (g_XaFns.pfnXaDraw_TransformPath)
00853 #define XaDraw_ScrollBitmap (g_XaFns.pfnXaDraw_ScrollBitmap)
00854
00855
00856 #define XaDraw_ClearChangedBBox (g_XaFns.pfnXaDraw_ClearChangedBBox)
00857 #define XaDraw_GetChangedBBox (g_XaFns.pfnXaDraw_GetChangedBBox)
00858 #define XaDraw_SetChangedBBox (g_XaFns.pfnXaDraw_SetChangedBBox)
00859
00860
00861 #define XaDraw_SetBevelContrast (g_XaFns.pfnXaDraw_SetBevelContrast)
00862 #define XaDraw_SetBevelLightness (g_XaFns.pfnXaDraw_SetBevelLightness)
00863 #define XaDraw_SetBevelDarkness (g_XaFns.pfnXaDraw_SetBevelDarkness)
00864 #define XaDraw_TranslateBevelValue (g_XaFns.pfnXaDraw_TranslateBevelValue)
00865
00866
00867 #define XaBitmap_PlotTile (g_XaFns.pfnXaBitmap_PlotTile)
00868 #define XaBitmap_PlotTile4 (g_XaFns.pfnXaBitmap_PlotTile4)
00869
00870 #define Xa3D_SetTruePerspectiveFlag (g_XaFns.pfnXa3D_SetTruePerspectiveFlag)
00871 #define Xa3D_DefineView (g_XaFns.pfnXa3D_DefineView)
00872 #define Xa3D_DefineTexture (g_XaFns.pfnXa3D_DefineTexture)
00873 #define Xa3D_Define2ndTexture (g_XaFns.pfnXa3D_Define2ndTexture)
00874 #define Xa3D_ConvertColourFormat (g_XaFns.pfnXa3D_ConvertColourFormat)
00875 #define Xa3D_AddTriangleToView (g_XaFns.pfnXa3D_AddTriangleToView)
00876 #define Xa3D_AddFlatTriangleToView (g_XaFns.pfnXa3D_AddFlatTriangleToView)
00877 #define Xa3D_AddTextureToView (g_XaFns.pfnXa3D_AddTextureToView)
00878 #define Xa3D_AddFlatTextureToView (g_XaFns.pfnXa3D_AddFlatTextureToView)
00879 #define Xa3D_AddTexturesToView (g_XaFns.pfnXa3D_AddTexturesToView)
00880 #define Xa3D_AddFlatTexturesToView (g_XaFns.pfnXa3D_AddFlatTexturesToView)
00881 #define Xa3D_SetSideFaceFlag (g_XaFns.pfnXa3D_SetSideFaceFlag)
00882 #define Xa3D_GetViewBBox (g_XaFns.pfnXa3D_GetViewBBox)
00883 #define Xa3D_PlotView (g_XaFns.pfnXa3D_PlotView)
00884 #define XaDraw_SetAntialiasQualityFlag (g_XaFns.pfnXaDraw_SetAntialiasQualityFlag)
00885
00886
00887
00888
00889
00890 extern XA_DRAW_FNS g_XaFns;
00891 extern XA_DRAW_FNS g_XaFnsOriginal;
00892 extern BOOL g_bAddXaTimes;
00893 extern LARGE_INTEGER g_Frequency;
00894 extern LARGE_INTEGER g_XaTimes[127];
00895 extern DWORD g_XaCalls[127];
00896 extern TCHAR* g_XaNames[127];
00897
00898 #endif // CONFIG_DEBUG_XADRAW
00899
00900 #endif // INC_XaDraw_h