123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- { $Id$
- *
- * Free Pascal conversion (c) 1999 Sebastian Guenther
- *
- * GGI/2D interface
- *
- * Copyright (C) 1998 by Thomas Tanner. See CREDITS for details.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- *}
- {$MODE objfpc}
- {$PACKRECORDS C}
- {$LINKLIB c}
- unit GGI2D;
- interface
- uses GGI;
- const
- libggi2d = 'ggi2d';
- type
- TGGIAlpha = Word;
- const
- GGI_MAX_ALPHA = 255;
- // library initialization and exit
- function ggi2dInit: Integer; cdecl; external libggi2d;
- function ggi2dExit: Integer; cdecl; external libggi2d;
- // visual
- function ggi2dOpen(Visual: TGGIVisual): Integer; cdecl; external libggi2d;
- function ggi2dClose(Visual: TGGIVisual): Integer; cdecl; external libggi2d;
- // images
- type
- TGGI2dImage = Pointer;
- function ggi2dCreateImage(Image: TGGI2dImage; Visual, Source: TGGIVisual; x, y, Width, Height: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dDestroyImage(Image: TGGI2dImage): Integer; cdecl; external libggi2d;
- function ggi2dCompatibleImage(Visual: TGGIVisual; Image: TGGI2dImage): Integer; cdecl; external libggi2d;
- // graphics context
- type
- TGGI2dArcmode = (GGI2D_ARC_SECTOR, GGI2D_ARC_SEGMENT);
- TGGI2dPolymode = (GGI2D_POLY_EVENODD, GGI2D_POLY_WINDING);
- TGGI2DOperator = (
- GGI2D_NOOP, // dest = dest
- GGI2D_INVERT, // dest = ~dest
- GGI2D_SET, // dest = color
- GGI2D_SET_INVERTED, // dest = ~color
- GGI2D_AND, // dest = (dest & color)
- GGI2D_NAND, // dest = ~(dest & color)
- GGI2D_AND_REVERSE, // dest = ~dest & color
- GGI2D_AND_INVERTED, // dest = dest & ~color
- GGI2D_OR, // dest = (dest | color)
- GGI2D_NOR, // dest = ~(dest | color)
- GGI2D_OR_REVERSE, // dest = ~dest & color
- GGI2D_OR_INVERTED, // dest = dest & ~color
- GGI2D_XOR, // dest = (dest ^ color)
- GGI2D_EQUIV, // dest = ~(dest ^ color
- GGI2D_ADD, // dest = dest + color
- GGI2D_SUB); // dest = dest - color
- TGGI2dCoord = record
- x, y: SmallInt;
- end;
- function ggi2dSetClip(Visual: TGGIVisual; x1, y1, x2, y2: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dPointVisible(Visual: TGGIVisual; x, y: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dRectVisible(Visual: TGGIVisual; x1, y1, x2, y2: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dSetArcMode(Visual: TGGIVisual; Mode: TGGI2dArcmode): Integer; cdecl; external libggi2d;
- function ggi2dGetArcMode(Visual: TGGIVisual): TGGI2dArcmode; cdecl; external libggi2d;
- function ggi2dSetPolyMode(Visual: TGGIVisual; Mode: TGGI2dPolymode): Integer; cdecl; external libggi2d;
- function ggi2dGetPolyMode(Visual: TGGIVisual): TGGI2dPolymode; cdecl; external libggi2d;
- function ggi2dSetLineDash(Visual: TGGIVisual; var Dash: LongWord; Size: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dGetLineDash(Visual: TGGIVisual; var Dash: LongWord; var Size: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dSetAppendMode(Visual: TGGIVisual; Append: Integer): Integer; cdecl; external libggi2d;
- function ggi2dGetAppendMode(Visual: TGGIVisual): Integer; cdecl; external libggi2d;
- function ggi2dSetDrawColor(Visual: TGGIVisual; Color: TGGIPixel): Integer; cdecl; external libggi2d;
- function ggi2dGetDrawColor(Visual: TGGIVisual): TGGIPixel; cdecl; external libggi2d;
- function ggi2dSetFillColor(Visual: TGGIVisual; Color: TGGIPixel): Integer; cdecl; external libggi2d;
- function ggi2dGetFillColor(Visual: TGGIVisual): TGGIPixel; cdecl; external libggi2d;
- function ggi2dSetFillTexture(Visual: TGGIVisual; RefPoint: TGGI2dCoord; Texture: TGGI2dImage): Integer; cdecl; external libggi2d;
- function ggi2dGetFillTexture(Visual: TGGIVisual; var RefPoint: TGGI2dCoord; var Texture: TGGI2dImage): Integer; cdecl; external libggi2d;
- function ggi2dSetOperator(Visual: TGGIVisual; Oper: TGGI2dOperator): Integer; cdecl; external libggi2d;
- function ggi2dGetOperator(Visual: TGGIVisual): TGGI2dOperator; cdecl; external libggi2d;
- // drawing
- type
- TGGI2dScanline = record
- x1, x2, y: SmallInt;
- end;
- TGGI2dLine = record
- x1, y1, x2, y2: SmallInt;
- end;
- // primitives
- function ggi2dPutPixel(Visual: TGGIVisual; x, y: SmallInt; Color: TGGIPixel): Integer; cdecl; external libggi2d;
- function ggi2dDrawPixel(Visual: TGGIVisual; x, y: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dFillPixel(Visual: TGGIVisual; x, y: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dDrawPixels(Visual: TGGIVisual; var Coords: TGGI2dCoord; Count: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dScanLine(Visual: TGGIVisual; x1, x2, y: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dScanLines(Visual: TGGIVisual; var Scanlines: TGGI2dScanline; Count: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dHLine(Visual: TGGIVisual; x1, x2, y: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dVLine(Visual: TGGIVisual; x, y1, y2: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dDrawRect(Visual: TGGIVisual; x1, y1, x2, y2: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dFillRect(Visual: TGGIVisual; x1, y1, x2, y2: SmallInt): Integer; cdecl; external libggi2d;
- // curves
- function ggi2dLine(Visual: TGGIVisual; x1, y1, x2, y2: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dDrawLines(Visual: TGGIVisual; var Lines: TGGI2dLine; Count: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dDrawCircle(Visual: TGGIVisual; x, y, r: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dFillCircle(Visual: TGGIVisual; x, y, r: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dDrawEllipse(Visual: TGGIVisual; x, y, rx, ry: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dFillEllipse(Visual: TGGIVisual; x, y, rx, ry: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dDrawArc(Visual: TGGIVisual; x, y, rx, ry: SmallInt; Start, AEnd: Single; Close: Integer): Integer; cdecl; external libggi2d;
- function ggi2dFillArc(Visual: TGGIVisual; x, y, rx, ry: SmallInt; Start, AEnd: Single): Integer; cdecl; external libggi2d;
- function ggi2dBezier(Visual: TGGIVisual; x1, y1, x2, y2, x3, y3, x4, y4: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dTrapezoid(Visual: TGGIVisual; xl1, xr1, y1, xl2, xr2, y2: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dTriangle(Visual: TGGIVisual; x1, y1, x2, y2, x3, y3: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dDrawPoly(Visual: TGGIVisual; var Coords: TGGI2dCoord; Count: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dFillPoly(Visual: TGGIVisual; var Coords: TGGI2dCoord; Count: LongWord): Integer; cdecl; external libggi2d;
- function ggi2dFillPolys(Visual: TGGIVisual; var Coords: TGGI2dCoord; var Counts: LongWord; Count: LongWord): Integer; cdecl; external libggi2d;
- // blitting
- function ggi2dCopyBox(Visual: TGGIVisual; x, y, w, h, nx, ny: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dCrossBlit(Src: TGGIVisual; sx, sy, w, h: SmallInt; Dest: TGGIVisual; dx, dy: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dBlit(
- Visual: TGGIVisual; dx, dy: SmallInt;
- Src: TGGI2dImage; sx, sy, Width, Height: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dStretchBlit(
- Visual: TGGIVisual; dx, dy, DWith, DHeight: SmallInt;
- Src: TGGI2dImage; sx, sy, SWidth, SHeight: SmallInt): Integer; cdecl; external libggi2d;
- function ggi2dBlitOp(
- Visual: TGGIVisual; dx, dy: SmallInt;
- Src1: TGGI2dImage; s1x, s1y: SmallInt;
- Src2: TGGI2dImage; s2x, s2y: SmallInt;
- Width, Height: SmallInt; Oper: TGGI2dOperator): Integer; cdecl; external libggi2d;
- function ggi2dStretchBlitOp(
- Visual: TGGIVisual; dx, dy, DWidth, DHeight: SmallInt;
- Src1: TGGI2dImage; s1x, s1y: SmallInt;
- Src2: TGGI2dImage; s2x, s2y: SmallInt;
- SWidth, SHeight: SmallInt; Oper: TGGI2dOperator): Integer; cdecl; external libggi2d;
- implementation
- end.
- {
- $Log$
- Revision 1.2 2000-07-13 11:33:17 michael
- + removed logs
-
- }
|