home *** CD-ROM | disk | FTP | other *** search
- Unit spx_vga;
-
- {$X+,O+ }
- { SPX Library Version 3.0 Copyright 1994 Scott D. Ramsay }
-
- Interface
-
- {$IFNDEF Windows }
- Uses dos,spx_dos,spx_obj,spx_fnc;
- {$ELSE }
- Uses Windos,spx_dos,spx_obj,spx_fnc;
- {$ENDIF }
-
- const
- MaxPages = 8;
- WinMinX : integer = 0;
- WinMinY : integer = 0;
- WinMaxX : integer = 319;
- WinMaxY : integer = 199;
- cclip_out : boolean = false;
- NormalPut = 0;
- CopyPut = 0;
- XORPut = 1;
- OrPut = 2;
- AndPut = 3;
- initproc : pointer = nil;
- { Image loding constants }
- img_noerror = 0; { no error }
- img_notbmp = 1; { not a win3.0 BMP file }
- img_notpcx = 2; { not a 256 color PCX file }
- img_errorload = 3; { file not found or open error }
- img_errorread = 4; { other disk read error }
- img_badcolor = 5; { not a 256 color BMP file }
- img_errorsave = 6; { error saving PTR file }
- img_erralloc = 7; { memory allocation error }
-
- type
- vsphooktype=procedure;
- RGBType = record
- red,green,blue : byte;
- end;
- RGBlist = array[0..255] of RGBType;
- PtrRec = record
- ofs,seg : word;
- end;
- VidHdrType = record
- position,count : word;
- end;
- Ppt = ^Tpt;
- Tpt = object(Tobjs)
- x,y : integer;
- constructor init(px,py:integer);
- end;
- Ppoly = ^Tpoly;
- Tpoly = object
- phead,ptail : plist;
- points : integer;
- constructor init;
- procedure addpoint(px,py:integer);virtual;
- function numpoints:integer;virtual;
- destructor done;virtual;
- end;
-
- var
- PrevMode, { previous mode }
- crpg : byte; { current page number }
- scnseg,scnofs : word; { current page address }
- pages : array[1..MaxPages] of pointer; { page pointers }
- thdmat : set of byte;
- vspcnt, { vsp last load count }
- maxpage : word; { pages used }
- rgb256, { palette for loaded images }
- zdc : RGBlist; { all black palette }
- YOff : array[0..199] of word; { Row offset table }
- vsphookproc : vsphooktype;
-
- procedure VSinc;
- procedure SetDefaultColors;
- procedure Switch(var a,b:integer);
- procedure Parse(var x,y:integer);
- procedure SetPtr(var i:PtrRec;var buff);
- function pt(x,y:integer):word;
- procedure OpenMode(npages:byte);
- function Point(x,y:integer;pg:byte):byte;
- procedure Pset(x,y:integer;n:byte);
- procedure fPcopy(var from,too);
- procedure Pcopy(from,too:byte);
- procedure CopyRect(x1,y1,x2,y2:integer;var from,too);
- procedure fwCopyRect(x1,y1,x2,y2:integer;var from,too);
- procedure SwapRect(x1,y1,x2,y2:integer;from,too:byte);
- procedure Line_clip(x1,y1,x2,y2:integer;n:byte);
- procedure Line(x1,y1,x2,y2:integer;n:byte);
- procedure Bar(x1,y1,x2,y2:integer;n:byte);
- procedure TranslateBox(x1,y1,x2,y2:integer;var table);
- procedure Rectangle(x1,y1,x2,y2:integer;n:byte);
- procedure Circle(x1,y1,r:integer;n:byte);
- procedure Ellipse(xc,yc,a0,b0:integer;c:byte);
- procedure cls(b:byte);
- procedure CloseMode;
- function BuffSize(x,y:integer):word;
- function ImageSize(var image):word;
- procedure ImageDims(var image;var x,y:integer);
- procedure SetPageActive(page:byte);
- procedure GetColor(num:byte;var red,green,blue:byte);
- procedure SetColor(num,red,green,blue:byte);
- procedure fSetColors(var colors);
- procedure fGetColors(var colors);
- procedure FadeIn(steps:word;var color);
- procedure FadeOut(steps:word;var color);
- procedure ColorsChange(var color:rgblist;filter:rgbtype);
- procedure ColorCycle(var colors:rgblist;start:byte;count:integer;fwd:boolean);
- function LoadColors(filename:string;var colors):integer;
- function SaveColors(filename:string;var colors;raw:boolean):integer;
- procedure LightColor(var color:RGBtype;percent:byte);
- procedure DarkColor(var color:RGBtype;percent:byte);
- procedure CreateDarkTable(var colors;var dktable;percent:integer);
- procedure CreateLightTable(var colors;var ltable;percent:integer);
- procedure Paint(x,y:integer;n:byte);
- procedure CopyTo(x1,y1,x2,y2,x,y:integer;var from,too);
- function LoadVSP(fn:string;var buff):integer;
- function FileVSP(var fil:file;var buff;size:longint):integer;
- function AnalyzeScreen:byte;
- procedure MemWrite(var source,dest;size:word;var off:longint);
- procedure MemRead(var source,dest;size:word;var off:longint);
- procedure fwput(x1,y1:integer;var image);
- procedure moveDW(var source,dest;size:word);
- procedure fputDW(x:word;var buff);
- procedure PcopyDW(var from,too);
- procedure fillDW(var dest;c:word;v:byte);
- procedure clsDW(c:byte);
- procedure fhLine(x1,x2,y:integer;c:byte);
- procedure FillPoly(offx,offy:integer;poly:Tpoly;c:byte);
- procedure DrawPoly(offx,offy:integer;poly:Tpoly;c:byte);
- procedure drawptr(var p;merge:boolean;sz:longint);
- function loadPTR(fn:string;merge:boolean):integer;
- function savePTR(fn:string):integer;
- procedure setclip(x1,y1,x2,y2:integer);
- procedure resetclip;
-
-