XaDraw.h

Go to the documentation of this file.
00001 // $Id: XaDraw.h 882 2006-04-25 15:40:57Z gavin $
00002 /* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE
00003 ================================XARAHEADERSTART===========================
00004  
00005                Xara LX, a vector drawing and manipulation program.
00006                     Copyright (C) 1993-2006 Xara Group Ltd.
00007        Copyright on certain contributions may be held in joint with their
00008               respective authors. See AUTHORS file for details.
00009 
00010 LICENSE TO USE AND MODIFY SOFTWARE
00011 ----------------------------------
00012 
00013 This file is part of Xara LX.
00014 
00015 Xara LX is free software; you can redistribute it and/or modify it
00016 under the terms of the GNU General Public License version 2 as published
00017 by the Free Software Foundation.
00018 
00019 Xara LX and its component source files are distributed in the hope
00020 that it will be useful, but WITHOUT ANY WARRANTY; without even the
00021 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00022 See the GNU General Public License for more details.
00023 
00024 You should have received a copy of the GNU General Public License along
00025 with Xara LX (see the file GPL in the root directory of the
00026 distribution); if not, write to the Free Software Foundation, Inc., 51
00027 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
00028 
00029 
00030 ADDITIONAL RIGHTS
00031 -----------------
00032 
00033 Conditional upon your continuing compliance with the GNU General Public
00034 License described above, Xara Group Ltd grants to you certain additional
00035 rights. 
00036 
00037 The additional rights are to use, modify, and distribute the software
00038 together with the wxWidgets library, the wxXtra library, and the "CDraw"
00039 library and any other such library that any version of Xara LX relased
00040 by Xara Group Ltd requires in order to compile and execute, including
00041 the static linking of that library to XaraLX. In the case of the
00042 "CDraw" library, you may satisfy obligation under the GNU General Public
00043 License to provide source code by providing a binary copy of the library
00044 concerned and a copy of the license accompanying it.
00045 
00046 Nothing in this section restricts any of the rights you have under
00047 the GNU General Public License.
00048 
00049 
00050 SCOPE OF LICENSE
00051 ----------------
00052 
00053 This license applies to this program (XaraLX) and its constituent source
00054 files only, and does not necessarily apply to other Xara products which may
00055 in part share the same code base, and are subject to their own licensing
00056 terms.
00057 
00058 This license does not apply to files in the wxXtra directory, which
00059 are built into a separate library, and are subject to the wxWindows
00060 license contained within that directory in the file "WXXTRA-LICENSE".
00061 
00062 This license does not apply to the binary libraries (if any) within
00063 the "libs" directory, which are subject to a separate license contained
00064 within that directory in the file "LIBS-LICENSE".
00065 
00066 
00067 ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS
00068 ----------------------------------------------
00069 
00070 Subject to the terms of the GNU Public License (see above), you are
00071 free to do whatever you like with your modifications. However, you may
00072 (at your option) wish contribute them to Xara's source tree. You can
00073 find details of how to do this at:
00074   http://www.xaraxtreme.org/developers/
00075 
00076 Prior to contributing your modifications, you will need to complete our
00077 contributor agreement. This can be found at:
00078   http://www.xaraxtreme.org/developers/contribute/
00079 
00080 Please note that Xara will not accept modifications which modify any of
00081 the text between the start and end of this header (marked
00082 XARAHEADERSTART and XARAHEADEREND).
00083 
00084 
00085 MARKS
00086 -----
00087 
00088 Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara
00089 designs are registered or unregistered trademarks, design-marks, and/or
00090 service marks of Xara Group Ltd. All rights in these marks are reserved.
00091 
00092 
00093       Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK.
00094                         http://www.xara.com/
00095 
00096 =================================XARAHEADEREND============================
00097  */
00098 
00099 #ifndef INC_XaDraw_h
00100 #define INC_XaDraw_h
00101 
00102 // XaDraw is an abstraction layer for GDraw V3. The abstraction layer
00103 // compiles away leaving the program calling GDraw directly if CONFIG_DEBUG_XADRAW
00104 // is not defined. If CONFIG_DEBUG_XADRAW is defined all calls to GDraw go via debug
00105 // wrapper functions. The wrapper functions currently display the name of each
00106 // function as it is called and displays the value of the pointer to the context.
00107 // The context pointer and function name can be used to determine which call failed
00108 // and what the current stack pointer is if a call to GDraw crashes.
00109 
00110 // To use the abstraction layer simply replace all calls to GDraw with the
00111 // appropriate Xa name. See conversion table below:
00112 //
00113 // GDraw V3 interface.
00114 //
00115 // GDraw_      -> XaDraw_
00116 // GColour_    -> XaColour_
00117 // GBitmap_    -> XaBitmap_
00118 // G3D_        -> Xa3D_
00119 
00120 // Include the Oil specific version of GDraw
00121 //#include "xadrwoil.h"
00122 #include "xagdraw.h"
00123 
00124 // If CONFIG_DEBUG_XADRAW is defined then declare a structure that contains pointers to
00125 // all the GDraw functions. These are used to implemented the debugging functionality
00126 // by inserting an additional layer between camelot and GDraw. See GDraw for more
00127 // information about the individual GDraw functions.
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 // Defines that map Xa*_ calls to the debug versions of the functions implemented
00691 // in XaDraw.cpp
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 // Declare the prototypes for the two tables of pointers to functions.
00887 // g_XaFns points to the debug versions of all the GDraw functions.
00888 // g_XaFnsOriginal points to the actual GDraw functions.
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

Generated on Sat Nov 10 03:47:23 2007 for Camelot by  doxygen 1.4.4