gdraw.h

Go to the documentation of this file.
00001 // $Id: gdraw.h 1282 2006-06-09 09:46:49Z alex $
00003 //
00004 // GDraw.h
00005 //
00007 /* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE
00008 ================================XARAHEADERSTART===========================
00009  
00010                Xara LX, a vector drawing and manipulation program.
00011                     Copyright (C) 1993-2006 Xara Group Ltd.
00012        Copyright on certain contributions may be held in joint with their
00013               respective authors. See AUTHORS file for details.
00014 
00015 LICENSE TO USE AND MODIFY SOFTWARE
00016 ----------------------------------
00017 
00018 This file is part of Xara LX.
00019 
00020 Xara LX is free software; you can redistribute it and/or modify it
00021 under the terms of the GNU General Public License version 2 as published
00022 by the Free Software Foundation.
00023 
00024 Xara LX and its component source files are distributed in the hope
00025 that it will be useful, but WITHOUT ANY WARRANTY; without even the
00026 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00027 See the GNU General Public License for more details.
00028 
00029 You should have received a copy of the GNU General Public License along
00030 with Xara LX (see the file GPL in the root directory of the
00031 distribution); if not, write to the Free Software Foundation, Inc., 51
00032 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
00033 
00034 
00035 ADDITIONAL RIGHTS
00036 -----------------
00037 
00038 Conditional upon your continuing compliance with the GNU General Public
00039 License described above, Xara Group Ltd grants to you certain additional
00040 rights. 
00041 
00042 The additional rights are to use, modify, and distribute the software
00043 together with the wxWidgets library, the wxXtra library, and the "CDraw"
00044 library and any other such library that any version of Xara LX relased
00045 by Xara Group Ltd requires in order to compile and execute, including
00046 the static linking of that library to XaraLX. In the case of the
00047 "CDraw" library, you may satisfy obligation under the GNU General Public
00048 License to provide source code by providing a binary copy of the library
00049 concerned and a copy of the license accompanying it.
00050 
00051 Nothing in this section restricts any of the rights you have under
00052 the GNU General Public License.
00053 
00054 
00055 SCOPE OF LICENSE
00056 ----------------
00057 
00058 This license applies to this program (XaraLX) and its constituent source
00059 files only, and does not necessarily apply to other Xara products which may
00060 in part share the same code base, and are subject to their own licensing
00061 terms.
00062 
00063 This license does not apply to files in the wxXtra directory, which
00064 are built into a separate library, and are subject to the wxWindows
00065 license contained within that directory in the file "WXXTRA-LICENSE".
00066 
00067 This license does not apply to the binary libraries (if any) within
00068 the "libs" directory, which are subject to a separate license contained
00069 within that directory in the file "LIBS-LICENSE".
00070 
00071 
00072 ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS
00073 ----------------------------------------------
00074 
00075 Subject to the terms of the GNU Public License (see above), you are
00076 free to do whatever you like with your modifications. However, you may
00077 (at your option) wish contribute them to Xara's source tree. You can
00078 find details of how to do this at:
00079   http://www.xaraxtreme.org/developers/
00080 
00081 Prior to contributing your modifications, you will need to complete our
00082 contributor agreement. This can be found at:
00083   http://www.xaraxtreme.org/developers/contribute/
00084 
00085 Please note that Xara will not accept modifications which modify any of
00086 the text between the start and end of this header (marked
00087 XARAHEADERSTART and XARAHEADEREND).
00088 
00089 
00090 MARKS
00091 -----
00092 
00093 Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara
00094 designs are registered or unregistered trademarks, design-marks, and/or
00095 service marks of Xara Group Ltd. All rights in these marks are reserved.
00096 
00097 
00098       Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK.
00099                         http://www.xara.com/
00100 
00101 =================================XARAHEADEREND============================
00102  */
00103 
00104 #ifndef INC_NEW_GDRAW
00105 #define INC_NEW_GDRAW
00106 
00107 //#include "gconsts.h" - in camtypes.h [AUTOMATICALLY REMOVED]
00108 
00110 /*
00111 class Vector3D ;
00112 class Colour ;
00113 class FVector2D ;
00114 class FVector3D ;
00115 */
00117 
00118 #define TypeDefC2(name1,name2)                  \
00119     typedef       name2*          p##name1 ;    \
00120     typedef const name2*         pc##name1 ;
00121 
00122 #define TypeDefC(name) TypeDefC2(name,name) ;
00123 
00124 TypeDefC ( BITMAP               )
00125 TypeDefC ( BITMAPINFOHEADER     )
00126 TypeDefC ( BGR                  )
00127 TypeDefC ( BGRT                 )
00128 TypeDefC ( BYTE                 )
00129 TypeDefC2( CHAR,char            )
00130 TypeDefC ( COLORREF             )
00131 //TypeDefC ( Colour             )
00132 TypeDefC ( DashType             )
00133 //TypeDefC ( FVector2D          )
00134 //TypeDefC ( FVector3D          )
00135 TypeDefC ( GCONTEXT             )
00136 TypeDefC ( GMATRIX              )
00137 TypeDefC ( GraduationTable      )
00138 TypeDefC ( GraduationTable32    )
00139 TypeDefC ( LOGPALETTE           )
00140 TypeDefC ( POINT                )
00141 TypeDefC ( RECT                 )
00142 TypeDefC ( REGION               )
00143 TypeDefC ( STATISTICS           )
00144 TypeDefC ( TransparentGradTable )
00145 TypeDefC2( VOID,void            )
00146 
00147 #undef TypeDefC
00148 #undef TypeDefC2
00149 
00151 
00152 extern "C"
00153 {
00154     extern DWORD GDraw_GetVersion() ;
00155 #if !defined(__WXMSW__)
00156     extern pcCHAR GDraw_GetSvnVersion() ;
00157 #endif
00158 
00159     extern INT32 GDraw_ClearLastError(pGCONTEXT pContext) ;
00160     extern eError GDraw_GetLastError(pcGCONTEXT pContext) ;
00161     extern pcCHAR GDraw_GetLastErrorText(pcGCONTEXT pContext) ;
00162 
00163     extern INT32 GDraw_Initialise(pGCONTEXT pContext,pcGCONTEXT pOldContext=NULL) ;
00164     extern INT32 GDraw_CopyContext(pcGCONTEXT pContext,pGCONTEXT pNewContext) ;
00165 
00166     extern INT32 GColour_GetGraduationTableSize(pcGCONTEXT pContext) ;
00167     extern INT32 GColour_GetGraduationTableLength() ;
00168     extern INT32 GColour_GetLongGraduationTableSize(pcGCONTEXT pContext) ;
00169     extern INT32 GColour_GetLongGraduationTableLength() ;
00170     extern INT32 GColour_GetTransparentGraduationTableSize() ;
00171     extern INT32 GColour_GetTransparentGraduationTableLength() ;
00172     extern INT32 GColour_GetLongTransparentGraduationTableSize() ;
00173     extern INT32 GColour_GetLongTransparentGraduationTableLength() ;
00174 
00175     extern INT32 GDraw_SetMemoryHandlers(
00176         pGCONTEXT pContext,
00177         pBYTE (*MemoryAlloc)( UINT32 Size ),
00178         void  (*MemoryFree) ( pBYTE Address )
00179     ) ;
00180     extern INT32 GDraw_SetStackLimit( pGCONTEXT pContext,pcVOID StackLimit ) ;
00181     extern INT32 GDraw_SetStackSize( pGCONTEXT pContext,UINT32 StackSize ) ;
00182     extern INT32 GDraw_Terminate(pGCONTEXT pContext) ;
00183     extern INT32 GDraw_Clean(pGCONTEXT pContext) ;
00184 
00185     extern INT32 GDraw_ContextLength() ;
00186     extern INT32 GDraw_ComparePalettes( pcGCONTEXT pContext,pcLOGPALETTE Palette,bool Flag ) ;
00187 //  extern INT32 GDraw_SaveContext( GCONTEXT *Context ) ;
00188 //  extern INT32 GDraw_RestoreContext( CONST GCONTEXT *Context ) ;
00189 //  extern INT32 GDraw_SwapContext( GCONTEXT *Context ) ;
00190 
00191 
00192 
00193     extern pcLOGPALETTE GColour_SelectPalette( pGCONTEXT pContext,bool Flag ) ;
00194 //  extern INT32 GColour_Initialise( HDC dc ) ;
00195     extern INT32 GColour_InitialiseWithPalette( pGCONTEXT pContext,pcLOGPALETTE Palette ) ;
00196     extern INT32 GColour_SetDitherStyle( pGCONTEXT pContext,DitherStyle Style=DITHER_GREY_ORDERED ) ;
00197     extern INT32 GColour_SetTileSmoothingFlag( pGCONTEXT pContext,bool Flag ) ;
00198     extern INT32 GColour_SetTileFilteringFlag( pGCONTEXT pContext,bool Flag ) ;
00199     extern INT32 GBitmap_SetMaxFilterSize( pGCONTEXT pContext, UINT32 Size ) ;
00200     extern INT32 GBitmap_Sharpen( pGCONTEXT pContext,INT32 Sharpen ) ;
00201     extern INT32 GBitmap_Blur   ( pGCONTEXT pContext,INT32 Blur    ) ;
00202     extern INT32 GColour_SetHalftoneOrigin( pGCONTEXT pContext, INT32 x,INT32 y ) ;
00203 //  extern INT32 GColour_SetSupersampleRate( pGCONTEXT pContext,UINT32 Rate ) ;
00204     extern INT32 GColour_SetColour( pGCONTEXT pContext,COLORREF Colour ) ;
00205     extern INT32 GColour_SetSolidColour( pGCONTEXT pContext,COLORREF Colour,UINT32 BPP=0,UINT32 Format16BPP=FORMAT16BPP_555 ) ;
00206     extern INT32 GColour_SetWordColour( pGCONTEXT pContext,DWORD Colour ) ;
00207     extern INT32 GColour_SetInvert( pGCONTEXT pContext,DWORD Colour ) ;
00208     extern INT32 GColour_SetTransparency( pGCONTEXT pContext,COLORREF Colour,DWORD Style ) ;
00209     extern INT32 GColour_SetTransparencyLookupTable( pGCONTEXT pContext,pcBYTE Table ) ;
00210     extern pcBYTE GColour_ReturnBrush(pcGCONTEXT pContext) ;
00211     extern pcBYTE GColour_ReturnBrushRGB(pcGCONTEXT pContext) ;
00212     extern INT32 GColour_AddToGraduationTable(
00213         pGCONTEXT pContext,
00214         COLORREF Colour,
00215         DWORD HSVFlag,
00216         pGraduationTable Table,
00217         UINT32 Index
00218     ) ;
00219     extern INT32 GColour_BuildGraduationTable(
00220         pGCONTEXT pContext,
00221         COLORREF StartColour,
00222         COLORREF EndColour,
00223         DWORD HSVFlag,
00224         pGraduationTable Table
00225     ) ;
00226     extern INT32 GColour_BuildGraduationTable32(
00227         pGCONTEXT pContext,
00228         COLORREF StartColour,
00229         COLORREF EndColour,
00230         DWORD HSVFlag,
00231         pGraduationTable32 Table
00232     ) ;
00233     extern INT32 GColour_BuildTransparencyTable(
00234         pGCONTEXT pContext,
00235         BYTE StartColour,
00236         BYTE EndColour,
00237         pTransparentGradTable Table
00238     ) ;
00239     extern INT32 GColour_SetGraduation(
00240         pGCONTEXT pContext,
00241         DWORD Style,
00242         pcGraduationTable Table,
00243         pcPOINT PointA,
00244         pcPOINT PointB,
00245         pcPOINT PointC
00246     ) ;
00247     extern INT32 GColour_SetGraduation4(
00248         pGCONTEXT pContext,
00249         DWORD Style,
00250         pcGraduationTable Table,
00251         pcPOINT PointA,
00252         pcPOINT PointB,
00253         pcPOINT PointC,
00254         pcPOINT PointD
00255     ) ;
00256 //  extern INT32 GColour_SetMultiRadial(
00257 //      pGCONTEXT pContext,
00258 //      DWORD Style,
00259 //      pcGraduationTable32 Table,
00260 //      pcBYTE BlobShapeTable,
00261 //      INT32 BlobShapeOffset,
00262 //      UINT32 NumberOfBlobs,
00263 //      pcGBLOB Blobs
00264 //  ) ;
00265     extern INT32 GColour_Set3WayGraduation(
00266         pGCONTEXT pContext,
00267         DWORD Style,
00268         COLORREF ColourA, COLORREF ColourB, COLORREF ColourD,
00269         pcPOINT   PointA, pcPOINT   PointB, pcPOINT   PointD
00270     ) ;
00271     extern INT32 GColour_Set3WayGraduation4(
00272         pGCONTEXT pContext,
00273         DWORD Style,
00274         COLORREF ColourA, COLORREF ColourB,                   COLORREF ColourD,
00275         pcPOINT   PointA, pcPOINT   PointB, pcPOINT   PointC, pcPOINT   PointD
00276     ) ;
00277     extern INT32 GColour_Set4WayGraduation(
00278         pGCONTEXT pContext,
00279         DWORD Style,
00280         COLORREF ColourA, COLORREF ColourB, COLORREF ColourC, COLORREF ColourD,
00281         pcPOINT   PointA, pcPOINT   PointB,                   pcPOINT   PointD
00282     ) ;
00283     extern INT32 GColour_Set4WayGraduation4(
00284         pGCONTEXT pContext,
00285         DWORD Style,
00286         COLORREF ColourA, COLORREF ColourB, COLORREF ColourC, COLORREF ColourD,
00287         pcPOINT   PointA, pcPOINT   PointB, pcPOINT   PointC, pcPOINT   PointD
00288     ) ;
00289     extern INT32 GColour_SetGourand(
00290         pGCONTEXT pContext,
00291         DWORD Style,
00292         COLORREF ColourA, COLORREF ColourB, COLORREF ColourD,
00293         pcPOINT   PointA, pcPOINT   PointB, pcPOINT   PointD
00294     ) ;
00295     extern INT32 GColour_SetTransparentGraduation(
00296         pGCONTEXT pContext,
00297         DWORD Style,
00298         pcTransparentGradTable Table,
00299         pcPOINT PointA,
00300         pcPOINT PointB,
00301         pcPOINT PointC
00302     ) ;
00303     extern INT32 GColour_SetTransparentGraduation4(
00304         pGCONTEXT pContext,
00305         DWORD Style,
00306         pcTransparentGradTable Table,
00307         pcPOINT PointA,
00308         pcPOINT PointB,
00309         pcPOINT PointC,
00310         pcPOINT PointD
00311     ) ;
00312     extern INT32 GColour_SetTransparent3WayGraduation(
00313         pGCONTEXT pContext,
00314         DWORD Style,
00315         BYTE    ValueA, BYTE    ValueB, BYTE    ValueD,
00316         pcPOINT PointA, pcPOINT PointB, pcPOINT PointD
00317     ) ;
00318     extern INT32 GColour_SetTransparent3WayGraduation4(
00319         pGCONTEXT pContext,
00320         DWORD Style,
00321         BYTE    ValueA, BYTE    ValueB,                 BYTE    ValueD,
00322         pcPOINT PointA, pcPOINT PointB, pcPOINT PointC, pcPOINT PointD
00323     ) ;
00324     extern INT32 GColour_SetTransparent4WayGraduation(
00325         pGCONTEXT pContext,
00326         DWORD Style,
00327         BYTE    ValueA, BYTE    ValueB, BYTE    ValueC, BYTE    ValueD,
00328         pcPOINT PointA, pcPOINT PointB,                 pcPOINT PointD
00329     ) ;
00330     extern INT32 GColour_SetTransparent4WayGraduation4(
00331         pGCONTEXT pContext,
00332         DWORD Style,
00333         BYTE    ValueA, BYTE    ValueB, BYTE    ValueC, BYTE    ValueD,
00334         pcPOINT PointA, pcPOINT PointB, pcPOINT PointC, pcPOINT PointD
00335     ) ;
00336     extern INT32 GBitmap_SetBrightness  (pGCONTEXT pContext,double fBrightness  ) ;
00337     extern INT32 GBitmap_SetContrast    (pGCONTEXT pContext,double fContrast    ) ;
00338     extern INT32 GBitmap_SetGamma       (pGCONTEXT pContext,double fGamma       ) ;
00339     extern INT32 GBitmap_SetPostGamma   (pGCONTEXT pContext,double fPostGamma   ) ;
00340     extern INT32 GBitmap_SetSaturation  (pGCONTEXT pContext,double fSaturation  ) ;
00341     extern INT32 GBitmap_SetContone( 
00342         pGCONTEXT pContext, 
00343         UINT32 uContoneStyle, 
00344         COLORREF rgbStart = 0x000000,
00345         COLORREF rgbEnd   = 0xFFFFFF 
00346     ) ;
00347     extern INT32 GBitmap_SetBias        (pGCONTEXT pContext,UINT32 uChannel,double fBias) ;
00348     extern INT32 GBitmap_SetGain        (pGCONTEXT pContext,UINT32 uChannel,double fGain) ;
00349     extern INT32 GBitmap_SetInputRange  (pGCONTEXT pContext,UINT32 uChannel,BYTE uStart=0x00,BYTE uEnd=0xFF) ;
00350     extern INT32 GBitmap_SetOutputRange (pGCONTEXT pContext,UINT32 uChannel,BYTE uStart=0x00,BYTE uEnd=0xFF) ;
00351     extern INT32 GColour_SetTilePattern(
00352         pGCONTEXT pContext,
00353         pcBITMAPINFOHEADER BitmapInfo,
00354         pcBYTE Bitmap,
00355         DWORD Style,
00356         pcPOINT PointA,
00357         pcPOINT PointB,
00358         pcPOINT PointC,
00359         COLORREF DefaultColour = 0,
00360         pcBGRT TranslationTable = 0,
00361         pcBYTE   RedTranslationTable = 0,
00362         pcBYTE GreenTranslationTable = 0,
00363         pcBYTE  BlueTranslationTable = 0,
00364         pcBYTE TransparencyTranslationTable = 0,
00365         INT32 TileOffset = 0
00366     ) ;
00367     extern INT32 GColour_SetTilePattern4(
00368         pGCONTEXT pContext,
00369         pcBITMAPINFOHEADER BitmapInfo,
00370         pcBYTE Bitmap,
00371         DWORD Style,
00372         pcPOINT PointA,
00373         pcPOINT PointB,
00374         pcPOINT PointC,
00375         pcPOINT PointD,
00376         COLORREF DefaultColour = 0,
00377         pcBGRT TranslationTable = 0,
00378         pcBYTE   RedTranslationTable = 0,
00379         pcBYTE GreenTranslationTable = 0,
00380         pcBYTE  BlueTranslationTable = 0,
00381         pcBYTE TransparencyTranslationTable = 0,
00382         INT32 TileOffset = 0
00383     ) ;
00384     extern INT32 GColour_SetTransparentTilePattern(
00385         pGCONTEXT pContext,
00386         pcBITMAPINFOHEADER BitmapInfo,
00387         pcBYTE Bitmap,
00388         DWORD Style,
00389         pcPOINT PointA,
00390         pcPOINT PointB,
00391         pcPOINT PointC,
00392         BYTE DefaultColour = 0,
00393         pcBYTE TransparencyTranslationTable = 0,
00394         INT32 TileOffset = 0
00395     ) ;
00396     extern INT32 GColour_SetTransparentTilePattern4(
00397         pGCONTEXT pContext,
00398         pcBITMAPINFOHEADER BitmapInfo,
00399         pcBYTE Bitmap,
00400         DWORD Style,
00401         pcPOINT PointA,
00402         pcPOINT PointB,
00403         pcPOINT PointC,
00404         pcPOINT PointD,
00405         BYTE DefaultColour = 0,
00406         pcBYTE TransparencyTranslationTable = 0,
00407         INT32 TileOffset = 0
00408     ) ;
00409     extern INT32 GColour_ConvertBitmap(
00410         pGCONTEXT pContext,
00411         pcBITMAPINFOHEADER SBitmapInfo, pcBYTE SBitmap,
00412         pcBITMAPINFOHEADER DBitmapInfo,  pBYTE DBitmap,
00413         DWORD Dither
00414     ) ;
00415     extern INT32 GColour_SetConversionPalette( pGCONTEXT pContext,pcLOGPALETTE pPalette ) ;
00416     extern INT32 GColour_SetMaxDiffusionError( pGCONTEXT pContext,UINT32 MaxError ) ;
00417     extern INT32 GColour_ScaleBitmap(
00418         pGCONTEXT pContext,
00419         pcBITMAPINFOHEADER SBitmapInfo, pcBYTE SBitmap,
00420         pcBITMAPINFOHEADER DBitmapInfo,  pBYTE DBitmap,
00421         UINT32 Channels
00422     ) ;
00423 
00424     extern INT32 GColour_SetGreyConversionValues( pGCONTEXT pContext,UINT32 Red,UINT32 Green,UINT32 Blue ) ;
00425 
00426     extern COLORREF GColour_ConvertHSVtoRGB( COLORREF hsv ) ;
00427     extern COLORREF GColour_ConvertRGBtoHSV( COLORREF rgb ) ;
00428 
00429     extern INT32 GColour_SetSeparationTables(
00430         pGCONTEXT pContext,
00431         pcBGR    CyanSeparationTable,
00432         pcBGR MagentaSeparationTable,
00433         pcBGR  YellowSeparationTable,
00434         pcBGR   BlackSeparationTable,
00435         pcBYTE UnderColourRemovalTable,
00436         pcBYTE BlackGenerationTable
00437     ) ;
00438     extern INT32 GColour_SetBitmapConversionTable(
00439         pGCONTEXT pContext,
00440         pcBGR BitmapConversionTable
00441     ) ;
00442 
00443     extern INT32 GDraw_SetDIBitmap(
00444         pGCONTEXT pContext,
00445         pcBITMAPINFOHEADER BitmapInfo,
00446         pBYTE Bitmap,
00447         UINT32 Format16BPP = FORMAT16BPP_555
00448     ) ;
00449     extern INT32 GDraw_SetInvertedDIBitmap(
00450         pGCONTEXT pContext,
00451         pcBITMAPINFOHEADER BitmapInfo,
00452         pBYTE Bitmap,
00453         UINT32 Format16BPP = FORMAT16BPP_555
00454     ) ;
00455     extern INT32 GDraw_SetMatrix( pGCONTEXT pContext,pcGMATRIX Matrix ) ;
00456     extern INT32 GDraw_MaxScale ( pGCONTEXT pContext,pcGMATRIX Matrix,pcRECT BBox ) ;
00457     extern INT32 GDraw_GetMaxBitmapWidth() ;
00458     extern INT32 GDraw_GetMaxBitmapDepth() ;
00459     extern INT32 GDraw_SetAntialiasFlag( pGCONTEXT pContext,bool Flag ) ;
00460     extern INT32 GDraw_SetAntialiasQualityFlag( pGCONTEXT pContext,bool Flag ) ;
00461     extern INT32 GDraw_SetDashAdjustmentFlag( pGCONTEXT pContext,bool Flag ) ;
00462     extern INT32 GDraw_SetHintingFlag( pGCONTEXT pContext,bool Flag ) ;
00463     extern INT32 GDraw_SetFlatness( pGCONTEXT pContext,UINT32 Flatness ) ;
00464     extern INT32 GDraw_SetMiterLimit( pGCONTEXT pContext,UINT32 MiterLimit ) ;
00465     extern INT32 GDraw_FillRectangle( pGCONTEXT pContext,pcRECT Rectangle ) ;
00466     extern INT32 GDraw_FillPoint( pGCONTEXT pContext,pcPOINT Point ) ;
00467     extern INT32 GDraw_FillPath(
00468         pGCONTEXT pContext,
00469         pcPOINT Points,
00470         pcBYTE  Types,
00471         UINT32 Length,
00472         UINT32 Winding
00473     ) ;
00474 /*  extern INT32 GDraw_InitialiseFillPath( pGCONTEXT pContext,UINT32 Winding,bool DontPlot ) ;
00475     extern INT32 GDraw_FillPathLine( pGCONTEXT pContext,pcFVector2D Points, bool Reverse ) ;
00476     extern INT32 GDraw_DoFillPath( pGCONTEXT pContext ) ;
00477     extern INT32 GDraw_FillTriangle(
00478         pGCONTEXT pContext,
00479         pcPOINT PointA,
00480         pcPOINT PointB,
00481         pcPOINT PointC,
00482         DWORD Flags
00483     ) ;
00484 */  extern INT32 GDraw_HintPath(
00485         pGCONTEXT pContext,
00486         pPOINT Points,
00487         pcBYTE  Types,
00488         UINT32 Length,
00489         bool Close,
00490         UINT32 LineWidth
00491     ) ;
00492     extern INT32 GDraw_StrokePath(
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     extern INT32 GDraw_StrokePathToPath(
00504         pGCONTEXT pContext,
00505         pcPOINT IPoints,
00506         pcBYTE  ITypes,
00507         UINT32 ILength,
00508         pPOINT OPoints,
00509         pBYTE  OTypes,
00510         UINT32 OLength,
00511         bool Close,
00512         UINT32 LineWidth,
00513         DWORD LineCaps,
00514         DWORD LineJoin,
00515         pcDashType Dash
00516     ) ;
00517     extern INT32 GDraw_CalcStrokeBBox(
00518         pGCONTEXT pContext,
00519         pcPOINT IPoints,
00520         pcBYTE  ITypes,
00521         UINT32 ILength,
00522         pRECT Rect,
00523         bool Close,
00524         UINT32 LineWidth,
00525         DWORD LineCaps,
00526         DWORD LineJoin,
00527         pcDashType Dash
00528     ) ;
00529     extern INT32 GDraw_IsOverlap(
00530         pGCONTEXT pContext,
00531         pcPOINT Points,
00532         pcBYTE  Types,
00533         UINT32 Length,
00534         UINT32 Winding
00535     ) ;
00536     extern INT32 GDraw_IsStrokeOverlap(
00537         pGCONTEXT pContext,
00538         pcPOINT Points,
00539         pcBYTE  Types,
00540         UINT32 Length,
00541         bool Close,
00542         UINT32 LineWidth,
00543         DWORD LineCaps,
00544         DWORD LineJoin,
00545         pcDashType Dash
00546     ) ;
00547     extern INT32 GDraw_GetStatistics(
00548         pGCONTEXT pContext,
00549         pcPOINT Points,
00550         pcBYTE  Types,
00551         UINT32 Length,
00552         UINT32 Winding,
00553         pSTATISTICS Stats
00554     ) ;
00555     extern INT32 GDraw_MakeRegion(
00556         pGCONTEXT pContext,
00557         pcPOINT Points,
00558         pcBYTE  Types,
00559         UINT32 Length,
00560         UINT32 Winding,
00561         pREGION ORegion,
00562         UINT32 OLength
00563     ) ;
00564     extern INT32 GDraw_MakeUnclippedRegion(
00565         pGCONTEXT pContext,
00566         pcPOINT Points,
00567         pcBYTE  Types,
00568         UINT32 Length,
00569         UINT32 Winding,
00570         pREGION ORegion,
00571         UINT32 OLength
00572     ) ;
00573     extern INT32 GDraw_FillRegion(
00574         pGCONTEXT pContext,
00575         pcREGION Region,
00576         pcPOINT Offset
00577     ) ;
00578     extern INT32 GDraw_ClipRectangle( pGCONTEXT pContext,pcRECT Rectangle ) ;
00579     extern INT32 GDraw_DeviceClipRectangle( pGCONTEXT pContext,pcRECT Rectangle ) ;
00580     extern INT32 GDraw_GetDeviceClipRectangle( pcGCONTEXT pContext,pRECT Rectangle ) ;
00581     extern INT32 GDraw_ClipRegion( pGCONTEXT pContext,pcREGION Region ) ;
00582     extern pcREGION GDraw_GetClipRegion(pGCONTEXT pContext) ;
00583     extern INT32 GDraw_CalcSimpleBBox(
00584         pcPOINT Points,
00585         UINT32 Length,
00586         pRECT Rect
00587     ) ;
00588     extern INT32 GDraw_CalcBBox(
00589         pGCONTEXT pContext,
00590         pcPOINT Points,
00591         pcBYTE  Types,
00592         UINT32 Length,
00593         pRECT Rect,
00594         bool Flatten
00595     ) ;
00596     extern INT32 GDraw_TransformPath(
00597         pGCONTEXT pContext,
00598         pcPOINT IPoints,
00599          pPOINT OPoints,
00600         UINT32 Length,
00601         pcGMATRIX Matrix
00602     ) ;
00603     extern INT32 GDraw_ScrollBitmap( pGCONTEXT pContext, INT32 x,INT32 y ) ;
00604 
00605     extern INT32 GDraw_ClearChangedBBox(pGCONTEXT pContext) ;
00606     extern INT32 GDraw_GetChangedBBox( pcGCONTEXT pContext, pRECT Rectangle ) ;
00607     extern INT32 GDraw_SetChangedBBox(  pGCONTEXT pContext,pcRECT Rectangle ) ;
00608 
00609     extern INT32 GDraw_SetBevelContrast ( pGCONTEXT pContext,UINT32 Contrast ) ;
00610     extern INT32 GDraw_SetBevelLightness( pGCONTEXT pContext,UINT32 Contrast ) ;
00611     extern INT32 GDraw_SetBevelDarkness ( pGCONTEXT pContext,UINT32 Contrast ) ;
00612     extern INT32 GDraw_TranslateBevelValue( pcGCONTEXT pContext, BYTE Index, BYTE Colour ) ;
00613 
00614 
00615 
00616     extern INT32 GBitmap_PlotTile(
00617         pGCONTEXT pContext,
00618         pcBITMAPINFOHEADER BitmapInfo,
00619         pcBYTE Bitmap,
00620         DWORD Style,
00621         pcPOINT PointA,
00622         pcPOINT PointB,
00623         pcPOINT PointC,
00624         pcBGRT TranslationTable = 0,
00625         pcBYTE   RedTranslationTable = 0,
00626         pcBYTE GreenTranslationTable = 0,
00627         pcBYTE  BlueTranslationTable = 0,
00628         pcBYTE TransparencyTranslationTable = 0
00629     ) ;
00630     extern INT32 GBitmap_PlotTile4(
00631         pGCONTEXT pContext,
00632         pcBITMAPINFOHEADER BitmapInfo,
00633         pcBYTE Bitmap,
00634         DWORD Style,
00635         pcPOINT PointA,
00636         pcPOINT PointB,
00637         pcPOINT PointC,
00638         pcPOINT PointD,
00639         pcBGRT TranslationTable = 0,
00640         pcBYTE   RedTranslationTable = 0,
00641         pcBYTE GreenTranslationTable = 0,
00642         pcBYTE  BlueTranslationTable = 0,
00643         pcBYTE TransparencyTranslationTable = 0
00644     ) ;
00645 
00646 
00647 
00648 /*
00649     extern INT32 G3D_SetTruePerspectiveFlag( pGCONTEXT pContext,bool Flag ) ;
00650     extern INT32 G3D_DefineView(
00651         pGCONTEXT pContext,
00652         INT32 nObserverDistance,
00653         COLORREF Background = 0,
00654         pcBITMAPINFOHEADER pTextureInfo = NULL,
00655         pcBYTE pTextureBitmap = NULL,
00656         pcBGRT pTextureColours = NULL,
00657         UINT32 uTextureXOffset = 0,
00658         UINT32 uTextureYOffset = 0,
00659         pcBYTE pOverlayBitmap = NULL,
00660         pcBITMAPINFOHEADER pShadowInfo = NULL,
00661         pcBYTE pShadowBitmap = NULL,
00662         COLORREF ShadowColour = 0,
00663         bool bTransparent = FALSE,
00664         bool bAlpha = FALSE,
00665         bool bTransparentTexture = FALSE,
00666         UINT32 uFade = 0
00667     ) ;
00668     extern INT32 G3D_DefineTexture(
00669         pGCONTEXT pContext,
00670         pcBITMAP pBitmap,
00671         bool bScaleDown,
00672         bool bRepeating
00673     ) ;
00674     extern INT32 G3D_Define2ndTexture(
00675         pGCONTEXT pContext,
00676         pcBITMAPINFOHEADER pBitmapInfo,
00677         pcBYTE pBitmap,
00678         pcBGRT pRGBIndex,
00679         bool bTint,
00680         COLORREF TintColour
00681     ) ;
00682     extern INT32 G3D_ConvertColourFormat( pcColour pSColour, pColour pDColour ) ;
00683     extern INT32 G3D_AddTriangleToView(
00684         pGCONTEXT pContext,
00685         pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00686         pcColour   pColourA, pcColour   pColourB, pcColour   pColourC,
00687         bool bForward
00688     ) ;
00689     extern INT32 G3D_AddFlatTriangleToView(
00690         pGCONTEXT pContext,
00691         pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00692         pcColour pFlatColour,
00693         bool bForward
00694     ) ;
00695     extern INT32 G3D_AddTextureToView(
00696         pGCONTEXT pContext,
00697         pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00698         pcColour   pColourA, pcColour   pColourB, pcColour   pColourC,
00699         pcColour   pColourA2,pcColour   pColourB2,pcColour   pColourC2,
00700         pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00701         bool bForward
00702     ) ;
00703     extern INT32 G3D_AddFlatTextureToView(
00704         pGCONTEXT pContext,
00705         pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00706         pcColour pFlatColour,
00707         pcColour pFlatColour2,
00708         pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00709         bool bForward
00710     ) ;
00711     extern INT32 G3D_AddTexturesToView(
00712         pGCONTEXT pContext,
00713         pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00714         pcColour   pColourA, pcColour   pColourB, pcColour   pColourC,
00715         pcColour   pColourA2,pcColour   pColourB2,pcColour   pColourC2,
00716         pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00717         pcFVector2D pPointA3,pcFVector2D pPointB3,pcFVector2D pPointC3,
00718         bool bForward
00719     ) ;
00720     extern INT32 G3D_AddFlatTexturesToView(
00721         pGCONTEXT pContext,
00722         pcFVector3D pPointA, pcFVector3D pPointB, pcFVector3D pPointC,
00723         pcColour pFlatColour,
00724         pcColour pFlatColour2,
00725         pcFVector2D pPointA2,pcFVector2D pPointB2,pcFVector2D pPointC2,
00726         pcFVector2D pPointA3,pcFVector2D pPointB3,pcFVector2D pPointC3,
00727         bool bForward
00728     ) ;
00729     extern INT32 G3D_SetSideFaceFlag( pGCONTEXT pContext,bool bFlag ) ;
00730     extern INT32 G3D_GetViewBBox( pcGCONTEXT pContext,pRECT pBBox ) ;
00731     extern INT32 G3D_PlotView(pGCONTEXT pContext) ;
00732 */
00733 }
00734 
00736 
00737 #endif
00738 

Generated on Sat Nov 10 03:44:07 2007 for Camelot by  doxygen 1.4.4