Platon Technologies
neprihlásený Prihlásiť Registrácia
SlovakEnglish
open source software development oslavujeme 10 rokov vývoja otvoreného softvéru! Piatok, 19. apríl 2024

Súbor: [Platon] / games / _shared / x11-bgi.h (stiahnutie)

Revízia 1.6, Mon Oct 27 09:53:28 2003 UTC (20 years, 5 months ago) by nepto


Zmeny od 1.5: +23 -1 [lines]

Added intensity hanck into default TcDefaultPalette16.

/*
  TurboC, a library for porting Borland Turbo C to GNU gcc.
  Copyright 2002 Ronald S. Burkey

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License as published by the Free Software Foundation; either
  version 2.1 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
  Lesser General Public License for more details.

  You should have received a copy of the GNU Lesser General Public
  License along with this library; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

  Contact Ron Burkey at info@sandroid.org.

  Filename:    graphics.h
  Purpose:    Partial replacement for Borland Turbo C graphics.h.
  Mod history:    04/29/02 RSB    Created.
        05/10/02 RSB    ... lotsa stuff on a continuing basis.
        05/20/02 RSB    Added fill-style stuff.
        05/23/02 RSB    Added getimage stuff.
*/

#ifndef _INCLUDED_GRAPHICS_H
#define _INCLUDED_GRAPHICS_H

#include <X11/X.h>
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xatom.h> /* XA_WM_NAME, XA_STRING */

/* TurboC.h */

/* Integer-type stuff that differs depending on whether the original */
/* source code was for a 16-bit compiler (default) or 32-bit. */
typedef char gchar;
typedef signed char gschar;
typedef unsigned char guchar;
typedef short gshort;
typedef unsigned short gushort;
typedef int gint;
typedef unsigned int guint;
typedef long glong;
typedef unsigned long gulong;

extern int AssociatePixmap (void *object, Pixmap handle);

/* Stuff involved in gracefully exiting the program. */
void TurboTrap (void);
int TurboX (int);

/* conio.h */

/* Graphics-window keyboard buffer. */
int TcAddKeybuf (char c);
int TcExtractKeybuf (char *c);

/*---------------------------------------------------------------------------- */
/* Constants. */

/* A conversion factor. */
#define RADIANS_PER_DEGREE 0.017453292

/* This is the maximum number of simultaneously usable image buffers for */
/* putimage and getimage are allowed. */
/*#define MAX_TCIMAGEBUFS 32 */

/* This actually a Turbo C constant (though it may look like one of mine). */
/* It refers to the maximum color index in a Turbo C palette, and shouldn't be */
/* messed with.  It has no relationship to the TurboC library palettes. */
#define MAXCOLORS 15

/* Colors.  We protect some of them with a conditional, */
/* because they're also defined (identically) in graphics.h, which */
/* may or may not have already been loaded. */
#ifndef TC_COLORS_DEFINED
#define TC_COLORS_DEFINED
#define BLACK 0
#define BLUE 1
#define GREEN 2
#define CYAN 3
#define RED 4
#define MAGENTA 5
#define BROWN 6
#define LIGHTGRAY 7
#define DARKGRAY 8
#define LIGHTBLUE 9
#define LIGHTGREEN 10
#define LIGHTCYAN 11
#define LIGHTRED 12
#define LIGHTMAGENTA 13
#define YELLOW 14
#define WHITE 15
#endif /* TC_COLORS_DEFINED */

#define CGA_LIGHTGREEN 1
#define CGA_LIGHTRED 2
#define CGA_YELLOW 3
#define CGA_LIGHTCYAN 1
#define CGA_LIGHTMAGENTA 2
#define CGA_WHITE 3
#define CGA_GREEN 1
#define CGA_RED 2
#define CGA_BROWN 3
#define CGA_CYAN 1
#define CGA_MAGENTA 2
#define CGA_LIGHTGRAY 3

#define EGA_BLACK 0
#define EGA_BLUE 1
#define EGA_GREEN 2
#define EGA_CYAN 3
#define EGA_RED 4
#define EGA_MAGENTA 5
#define EGA_BROWN 20
#define EGA_LIGHTGRAY 7
#define EGA_DARKGRAY 56
#define EGA_LIGHTBLUE 57
#define EGA_LIGHTGREEN 58
#define EGA_LIGHTCYAN 59
#define EGA_LIGHTRED 60
#define EGA_LIGHTMAGENTA 61
#define EGA_YELLOW 62
#define EGA_WHITE 63

/* Error codes. */
enum graphics_errors
{
  grOk = 0,
  grNoInitGraph = -1,
  grNotDetected = -2,
  grFileNotFound = -3,
  grInvalidDriver = -4,
  grNoLoadMem = -5,
  grNoScanMem = -6,
  grNoFloodMem = -7,
  grFontNotFound = -8,
  grNoFontMem = -9,
  grInvalidMode = -10,
  grError = -11,
  grIOerror = -12,
  grInvalidFont = -13,
  grInvalidFontNum = -14,
  grInvalidDeviceNum = -15,
  grInvalidVersion = -18
};

/* Defines the allowed "graphics drivers" for initgraph.  Those up through */
/* 10 are available in Turbo C 2.0.  The others are present in Borland C++ */
/* 5.0, but I don't know exactly what version they first appeared in. */
/* Oddly, graphics.h is completely missing from the free compiler Borland C++ */
/* 5.5. */
#define DETECT 0
#define CGA 1
#define MCGA 2
#define EGA 3
#define EGA64 4
#define EGAMONO 5
#define IBM8514 6
#define HERCMONO 7
#define ATT400 8
#define VGA 9
#define PC3270 10
#define VGA256 11
#define ATTDEB 12
#define TOSHIBA 13
#define SVGA16 14
#define SVGA256 15
#define SVGA32K 16
#define SVGA64K 17
#define VESA16 18
#define VESA256 19
#define VESA32K 20
#define VESA64K 21
#define VESA16M 22
#define ATI16 23
#define ATI256 24
#define ATI32K 25
#define COMPAQ 26
#define TSENG316 27
#define TSENG3256 28
#define TSENG416 29
#define TSENG4256 30
#define TSENG432K 31
#define GENOA5 32
#define GENOA6 33
#define OAK 34
#define PARADIS16 35
#define PARADIS256 36
#define TECMAR 37
#define TRIDENT16 38
#define TRIDENT256 39
#define VIDEO7 40
#define VIDEO7II 41
#define S3 42
#define ATIGUP 43
#define DETECTX 256

/* Here are RGB definitions of the X equivalents (I hope) for the various */
/* Turbo C colors.   */
#define XBLACK         { 0x0000, 0x0000, 0x0000 }
#define XBLUE         { 0x0000, 0x0000, 0x8000 }
#define XGREEN         { 0x0000, 0x8000, 0x0000 }
#define XCYAN         { 0x0000, 0x8000, 0x8000 }
#define XRED         { 0x8000, 0x0000, 0x0000 }
#define XMAGENTA     { 0x8000, 0x0000, 0x8000 }
#define XBROWN         { 0x8000, 0x4000, 0x4000 }
#define XLIGHTGRAY     { 0xd400, 0xd400, 0xd400 }
#define XDARKGRAY     { 0xa800, 0xa800, 0xa800 }
#define XLIGHTBLUE     { 0x0000, 0x0000, 0xff00 }
#define XLIGHTGREEN     { 0x0000, 0xff00, 0x0000 }
#define XLIGHTCYAN     { 0x0000, 0xff00, 0xff00 }
#define XLIGHTRED     { 0xff00, 0x0000, 0x0000 }
#define XLIGHTMAGENTA     { 0xff00, 0x0000, 0xff00 }
#define XYELLOW     { 0xff00, 0xff00, 0x0000 }
#define XWHITE         { 0xff00, 0xff00, 0xff00 }

/* Here are all of the allowed graphics modes.  We encode the modes  */
/* differently (i.e., with different numerical constants) than Borland */
/* does, but *hopefully* this won't cause any problem.  This is done because */
/* we simulate the graphics screen within X, rather than using hardware */
/* modes of the graphics controller.  We define a set of allowed x-resolutions, */
/* y-resolutions, graphics-page counts, and palettes, and the modes are */
/* any combination of these. */
/* */
/* The constants beginning TC_xxxx are used only for *defining* the */
/* constants actually used by Turbo C.  If desirable, we can add new */
/* TC_xxxx constants later -- say, to go up to resolutions of 1600x1200 -- */
/* as long as the number of x-resolutions times the number of y-resolutions, */
/* times the number of pages, times the number of palettes remains */
/* less than 65536. */

/* x-resolutions. */
#define TC_X_320 0
#define TC_X_640 1
#define TC_X_720 2
#define TC_X_800 3
#define TC_X_1024 4
#define TC_X_1280 5
#define TCX 6            /* Number of x-resolutions. */

/* y-resolutions. */
#define TC_Y_200 0
#define TC_Y_348 1
#define TC_Y_350 2
#define TC_Y_400 3
#define TC_Y_480 4
#define TC_Y_600 5
#define TC_Y_768 6
#define TC_Y_1024 7
#define TCY 8            /* Number of y-resolutions. */
#define TCXY (TCX*TCY)

/* graphics-page counts. */
#define TC_PG_1 0
#define TC_PG_2 1
#define TC_PG_4 2
#define TCG 3            /* Number of page-counts. */
#define TCXYG (TCX*TCY*TCG)

/* palettes. I don't actually know */
/* which palettes are used for the so-called "extended" modes associated */
/* with drivers 11 and up, so I give it the special name TC_PAL_X. */
#define TC_PAL_2 0
#define TC_PAL_C0 1
#define TC_PAL_C1 2
#define TC_PAL_C2 3
#define TC_PAL_C3 4
#define TC_PAL_4 5
#define TC_PAL_16 6
#define TC_PAL_256 7
/* #define TC_PAL_X TC_PAL_256 */
#define TCP 8            /* Number of palettes. */
#define TCXYGP (TCX*TCY*TCG*TCP)

/* Okay, here are the actual constants used within Turbo C programs.   */
/* These are *not* the exact numbers used in true Borland Turbo C,  */
/* so programs that hard-code these numbers rather than using the  */
/* Borland-supplied constants are going to be in trouble.  (Too bad  */
/* for them, I say.)   */
/* */
/* Since it may not be obvious why the values are encoded the way they */
/* are -- instead, say, of providing a simple 4-bit field for each of  */
/* the 4 values being encoded (x-resolution, y-resolution, number of  */
/* graphics pages, and palette type) -- the reason has entirely to do */
/* with the Turbo C getmoderange function.  This function pre-supposes */
/* that the allowable graphics modes for any given graphics driver are */
/* in a range of integer values.  This requires that there be no *gaps* */
/* in the sequence, so that if we give a ranges of modes from n to n+N,  */
/* every one of the intervening values represents a legal mode.  By  */
/* encoding the modes in the way we have, all of the gaps are closed */
/* up, and every value from 0 to TCXYGP-1 is a legal mode -- though  */
/* not necessarily one which has been assigned a symbolic name below. */
/* */
/* Note that if we add new possibilities later -- say, 1600x1200 -- */
/* then the values of the constants below could differ in different  */
/* versions of the TurboC library. */
#define CGAC0 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C0)
#define CGAC1 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C1)
#define CGAC2 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C2)
#define CGAC3 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C3)
#define CGAHI (TC_X_640 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_2)
#define MCGAC0 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C0)
#define MCGAC1 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C1)
#define MCGAC2 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C2)
#define MCGAC3 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C3)
#define MCGAMED (TC_X_640 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_2)
#define MCGAHI (TC_X_640 + TCX*TC_Y_480 + TCXY*TC_PG_1 + TCXYG*TC_PAL_2)
#define EGALO (TC_X_640 + TCX*TC_Y_200 + TCXY*TC_PG_4 + TCXYG*TC_PAL_16)
#define EGAHI (TC_X_640 + TCX*TC_Y_350 + TCXY*TC_PG_2 + TCXYG*TC_PAL_16)
#define EGA64LO (TC_X_640 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_16)
#define EGA64HI (TC_X_640 + TCX*TC_Y_350 + TCXY*TC_PG_1 + TCXYG*TC_PAL_4)
#define EGAMONOHI (TC_X_640 + TCX*TC_Y_350 + TCXY*TC_PG_2 + TCXYG*TC_PAL_2)
#define HERCMONOHI (TC_X_720 + TCX*TC_Y_348 + TCXY*TC_PG_2 + TCXYG*TC_PAL_2)
#define ATT400C0 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C0)
#define ATT400C1 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C1)
#define ATT400C2 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C2)
#define ATT400C3 (TC_X_320 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_C3)
#define ATT400MED (TC_X_640 + TCX*TC_Y_200 + TCXY*TC_PG_1 + TCXYG*TC_PAL_2)
#define ATT400HI (TC_X_640 + TCX*TC_Y_480 + TCXY*TC_PG_1 + TCXYG*TC_PAL_2)
#define VGALO (TC_X_640 + TCX*TC_Y_200 + TCXY*TC_PG_2 + TCXYG*TC_PAL_16)
#define VGAMED (TC_X_640 + TCX*TC_Y_350 + TCXY*TC_PG_2 + TCXYG*TC_PAL_16)
#define VGAHI (TC_X_640 + TCX*TC_Y_480 + TCXY*TC_PG_1 + TCXYG*TC_PAL_16)
#define PC3270HI (TC_X_720 + TCX*TC_Y_350 + TCXY*TC_PG_1 + TCXYG*TC_PAL_2)
#define IBM8514LO (TC_X_640 + TCX*TC_Y_480 + TCXY*TC_PG_1 + TCXYG*TC_PAL_256)
#define IBM8514HI (TC_X_1024 + TCX*TC_Y_768 + TCXY*TC_PG_1 + TCXYG*TC_PAL_256)
/*#define RES640x350 (TC_X_640 + TCX*TC_Y_350 + TCXY*TC_PG_1 + TCXYG*PC_PAL_X) */
/*#define RES640x480 (TC_X_640 + TCX*TC_Y_480 + TCXY*TC_PG_1 + TCXYG*PC_PAL_X) */
/*#define RES800x600 (TC_X_800 + TCX*TC_Y_600 + TCXY*TC_PG_1 + TCXYG*PC_PAL_X) */
/*#define RES1024x768 (TC_X_1024 + TCX*TC_Y_768 + TCXY*TC_PG_1 + TCXYG*PC_PAL_X) */
/*#define RES1280x1024 (TC_X_1280 + 0x10*TC_Y_1024 + TCXY*TC_PG_1 + TCXYG*PC_PAL_X) */

/* Write-modes. */
#define COPY_PUT 0
#define XOR_PUT 1
#define OR_PUT 2
#define AND_PUT 3
#define NOT_PUT 4

/* Line-style stuff. */
#define SOLID_LINE 0
#define DOTTED_LINE 1
#define CENTER_LINE 2
#define DASHED_LINE 3
#define USERBIT_LINE 4
#define NORM_WIDTH 1
#define THICK_WIDTH 3

enum font_names
{
  DEFAULT_FONT = 0,
  TRIPLEX_FONT = 1,
  SMALL_FONT = 2,
  SANS_SERIF_FONT = 3,
  GOTHIC_FONT = 4,
  SCRIPT_FONT = 5,
  SIMPLEX_FONT = 6,
  TRIPLEX_SCR_FONT = 7,
  COMPLEX_FONT = 8,
  EUROPEAN_FONT = 9,
  BOLD_FONT = 10,
  MAX_FONT = 11
};

/* Text directions. */
#define HORIZ_DIR 0
#define VERT_DIR 1

/* Text justification. */
#define LEFT_TEXT 0
#define BOTTOM_TEXT 0
#define CENTER_TEXT 1
#define RIGHT_TEXT 2
#define TOP_TEXT 2

/* Fill styles. */
#define EMPTY_FILL 0
#define SOLID_FILL 1
#define LINE_FILL 2
#define LTSLASH_FILL 3
#define SLASH_FILL 4
#define BKSLASH_FILL 5
#define LTBKSLASH_FILL 6
#define HATCH_FILL 7
#define XHATCH_FILL 8
#define INTERLEAVE_FILL 9
#define WIDE_DOT_FILL 10
#define CLOSE_DOT_FILL 11
#define USER_FILL 12

/*---------------------------------------------------------------------------- */
/* Data types. */

/* A little toy of my own. */
typedef struct
{
  gint r, g, b;
}
RgbStruct;

/* The following are all datatypes defined by true Turbo C. */

struct arccoordstype
{
  int x, y;
  int xstart, ystart, xend, yend;
};

struct palettetype
{
  guchar size;
  gschar colors[MAXCOLORS + 1];
};

struct fillsettingstype
{
  int pattern;
  int color;
};

struct linesettingstype
{
  int linestyle;
  unsigned upattern;
  int thickness;
};

struct textsettingstype
{
  int font;
  int direction;
  int charsize;
  int horiz;
  int vert;
};

struct viewporttype
{
  int left, top, right, bottom;
  int clip;
};

/* This is the structure which holds data for the getimage/putimage */
/* functions.  It is not used explicitly (or even defined) by true Turbo C */
/* but it's convenient for us to define it!  We keep a pool of these */
/* in an array (TcImageBuffers).  */
struct TcImageBuffer
{
  gushort Width;
  gushort Height;
  Pixmap Handle;
};

/*---------------------------------------------------------------------------- */
/* Function prototypes. */

__BEGIN_DECLS

extern void X11_BGI_update_IO(void);

/* */
extern void arc (int x, int y, int stangle, int endangle, int radius);
extern void bar (int left, int top, int right, int bottom);
extern void bar3d (int left, int top, int right, int bottom,
           int depth, int topflag);
extern void circle (int x, int y, int radius);
extern void cleardevice (void);
extern void clearviewport (void);
extern void closegraph (void);
extern void detectgraph (int *graphdriver, int *graphmode);
extern void drawpoly (int numpoints, int *polypoints);
extern void ellipse (int x, int y, int stangle, int endangle,
             int xradius, int yradius);
extern void fillellipse (int x, int y, int xradius, int yradius);
extern void fillpoly (int numpoints, int *polypoints);
extern void floodfill (int x, int y, int border);
extern void getarccoords (struct arccoordstype *arccoords);
extern void getaspectratio (int *xasp, int *yasp);
extern int getbkcolor (void);
extern int getcolor (void);
extern const struct palettetype *getdefaultpalette (void);
extern const char *getdrivername (void);
extern void getfillpattern (char *pattern);
extern void getfillsettings (struct fillsettingstype *fillinfo);
extern int getgraphmode (void);
extern void getimage (int left, int top, int right, int bottom, void *bitmap);
/*extern void freeimage (void *bitmap); */
extern void getlinesettings (struct linesettingstype *lineinfo);
extern int getmaxcolor (void);
extern int getmaxmode (void);
#ifdef getmaxx
#undef getmaxx
#endif
extern int getmaxx (void);
#ifdef getmaxy
#undef getmaxy
#endif
extern int getmaxy (void);
extern char *getmodename (int mode_number);
extern void getmoderange (int graphdriver, int *lomode, int *himode);
extern unsigned getpixel (int x, int y);
extern void getpalette (struct palettetype *palette);
extern int getpalettesize (void);
extern void gettextsettings (struct textsettingstype *texttypeinfo);
extern void getviewsettings (struct viewporttype *viewport);
extern int getx (void);
extern int gety (void);
extern void graphdefaults (void);
extern void TcGraphDefaults (void);
extern int TcDefaultColors (int Pal);
extern char *grapherrormsg (int errorcode);
extern void _graphfreemem (void *ptr, unsigned size);
extern void *_graphgetmem (unsigned size);
extern int graphresult (void);
extern unsigned imagesize (int left, int top, int right, int bottom);
extern void initgraph (int *graphdriver, int *graphmode, char *pathtodriver);
extern int installuserdriver (char *name, int (*detect) (void));
extern int installuserfont (char *name);
extern void line (int x1, int y1, int x2, int y2);
extern void linerel (int dx, int dy);
extern void lineto (int x, int y);
extern void moverel (int dx, int dy);
extern void moveto (int x, int y);
extern void outtext (char *textstring);
extern void outtextxy (int x, int y, char *textstring);
extern void pieslice (int x, int y, int stangle, int endangle, int radius);
extern void putimage (int left, int top, void *bitmap, int op);
extern void putpixel (int x, int y, int color);
extern void rectangle (int left, int top, int right, int bottom);
extern int registerbgidriver (void (*driver) (void));
extern int registerbgifont (void (*font) (void));
extern void restorecrtmode (void);
extern void sector (int X, int Y, int StAngle, int EndAngle,
            int XRadius, int YRadius);
extern void setactivepage (int page);
extern void setallpalette (struct palettetype *palette);
extern void setaspectratio (int xasp, int yasp);
extern void setbkcolor (int color);
extern void setcolor (int color);
extern void setfillpattern (char *upattern, int color);
extern void setfillstyle (int pattern, int color);
extern unsigned setgraphbufsize (unsigned bufsize);
extern void setgraphmode (int mode);
extern void setlinestyle (int linestyle, unsigned upattern, int thickness);
extern void setpalette (int colornum, int color);
extern void setrgbpalette (int colornum, int red, int green, int blue);
extern void settextjustify (int horiz, int vert);
extern void settextstyle (int font, int direction, int charsize);
extern void setusercharsize (int multx, int divx, int multy, int divy);
extern void setviewport (int left, int top, int right, int bottom, int clip);
extern void setvisualpage (int page);
extern void setwritemode (int mode);
extern int textheight (char *textstring);
extern int textwidth (char *textstring);

/* Non-user-callable functions.  Really, just names for use as function */
/* parameters in the registerbgidriver and registerbgifont functions. */
extern void CGA_driver (void);
extern void EGAVGA_driver (void);
extern void IBM8514_driver (void);
extern void Herc_driver (void);
extern void ATT_driver (void);
extern void PC3270_driver (void);
extern void triplex_font (void);
extern void small_font (void);
extern void sansserif_font (void);
extern void gothic_font (void);

__END_DECLS
/*-------------------------------------------------------------------------- */
/* Variables. */
#ifdef TURBOC_VARIABLES_C
volatile int TcGraphicsInitialized = 0;
int TcCurrentGraphMode, TcGraphResult = grOk;
int TcXresolution, TcYresolution, TcPageCount, TcPaletteNum;
int TcDriver, TcVisualPage = 0, TcActivePage = 0;
int TcForegroundColor, TcBackgroundColor, TcDriver;
int TcViewLeft, TcViewTop, TcViewRight, TcViewBottom, TcViewClip;
int Tcx, Tcy, TcViewMaxx, TcViewMaxy;
int TcLastArcX = 0, TcLastArcY = 0, TcLastStangle = 0;
int TcLastEndangle = 0, TcLastRadius = 0;
int TcWritemode = 0, TcTextHoriz = 0, TcTextVert = 0;
struct linesettingstype TcLinestyle = { SOLID_LINE, 0xffff, NORM_WIDTH };
RgbStruct TcColors[256];
const RgbStruct TcColors2[2] = { XBLACK, XWHITE };
const RgbStruct TcColorsC0[4] = { XBLACK, XLIGHTGREEN, XLIGHTRED, XYELLOW };
const RgbStruct TcColorsC1[4] = { XBLACK, XLIGHTCYAN, XLIGHTMAGENTA, XWHITE };
const RgbStruct TcColorsC2[4] = { XBLACK, XGREEN, XRED, XBROWN };
const RgbStruct TcColorsC3[4] = { XBLACK, XCYAN, XMAGENTA, XLIGHTGRAY };
const RgbStruct TcColors4[4] = { XBLACK, XDARKGRAY, XLIGHTGRAY, XWHITE };
const RgbStruct TcColors16[16] = {
  XBLACK, XBLUE, XGREEN, XCYAN, XRED, XMAGENTA, XBROWN, XLIGHTGRAY,
  XDARKGRAY, XLIGHTBLUE, XLIGHTGREEN, XLIGHTCYAN, XLIGHTRED, XLIGHTMAGENTA,
  XYELLOW, XWHITE
};
const struct palettetype TcDefaultPalette2 = { 2, {BLACK, WHITE} };
const struct palettetype TcDefaultPaletteC0 =
  { 4, {BLACK, LIGHTGREEN, LIGHTRED, YELLOW} };
const struct palettetype TcDefaultPaletteC1 =
  { 4, {BLACK, LIGHTCYAN, LIGHTMAGENTA, WHITE} };
const struct palettetype TcDefaultPaletteC2 =
  { 4, {BLACK, GREEN, RED, BROWN} };
const struct palettetype TcDefaultPaletteC3 =
  { 4, {BLACK, CYAN, MAGENTA, LIGHTGRAY} };
const struct palettetype TcDefaultPalette4 =
  { 4, {BLACK, DARKGRAY, LIGHTGRAY, WHITE} };
const struct palettetype TcDefaultPalette16_old = {
  16,
  {BLACK, BLUE, GREEN, CYAN, RED, MAGENTA, BROWN, LIGHTGRAY,
   DARKGRAY, LIGHTBLUE, LIGHTGREEN, LIGHTCYAN, LIGHTRED, LIGHTMAGENTA,
   YELLOW, WHITE}
};
/* Nepto palette intensity hack */
const struct palettetype TcDefaultPalette16 = {
    16,
    {
        64 - 16 + BLACK,
        64 - 16 + BLUE,
        64 - 16 + GREEN,
        64 - 16 + CYAN,
        64 - 16 + RED,
        64 - 16 + MAGENTA,
        64 - 16 + BROWN,
        64 - 16 + LIGHTGRAY,
        64 - 16 + DARKGRAY,
        64 - 16 + LIGHTBLUE,
        64 - 16 + LIGHTGREEN,
        64 - 16 + LIGHTCYAN,
        64 - 16 + LIGHTRED,
        64 - 16 + LIGHTMAGENTA,
        64 - 16 + YELLOW,
        64 - 16 + WHITE
    }
};
struct palettetype TcCurrentPalette;
int TcTextFont, TcTextDirection, TcTextCharsize;
int TcTextMultX, TcTextDivX, TcTextMultY, TcTextDivY;
int TcFillStyle = SOLID_FILL, TcFillColor = 1;
guchar TcUserFillPattern[8] = { 255, 255, 255, 255, 255, 255, 255, 255 };
/*struct TcPixmapPoolRecord TcPixmapPool[MAX_TCIMAGEBUFS] = { { 0 } }; */
Display *TcDisplay;
Window TcWindow;
Pixmap TcPixmaps[16];
gint TcScreen;
GC TcGc;
Colormap TcColormap;
XColor TcXforeground, TcXbackground;
Pixmap TcTile;
/* Mouse handling by Nepto [28/9/2003] [6/10/2003] */
int MOUINFO_xpos, MOUINFO_ypos, MOUINFO_bstat;
int MOUINFO_pressed_count[3], MOUINFO_released_count[3];
int KEYINFO_buffer = 0;
#else /* TURBOC_VARIABLES_C */
extern volatile int TcGraphicsInitialized;
extern int TcCurrentGraphMode, TcGraphResult;
extern int TcXresolution, TcYresolution, TcPageCount, TcPaletteNum;
extern int TcDriver, TcVisualPage, TcActivePage;
extern int TcForegroundColor, TcBackgroundColor, TcDriver;
extern int TcViewLeft, TcViewTop, TcViewRight, TcViewBottom, TcViewClip;
extern int Tcx, Tcy, TcViewMaxx, TcViewMaxy;
extern int TcLastArcX, TcLastArcY, TcLastStangle;
extern int TcLastEndangle, TcLastRadius;
extern int TcWritemode, TcTextHoriz, TcTextVert;
extern struct linesettingstype TcLinestyle;
extern RgbStruct TcColors[256];
extern const RgbStruct TcColors2[2];
extern const RgbStruct TcColorsC0[4];
extern const RgbStruct TcColorsC1[4];
extern const RgbStruct TcColorsC2[4];
extern const RgbStruct TcColorsC3[4];
extern const RgbStruct TcColors4[4];
extern const RgbStruct TcColors16[16];
extern const struct palettetype TcDefaultPalette2;
extern const struct palettetype TcDefaultPaletteC0;
extern const struct palettetype TcDefaultPaletteC1;
extern const struct palettetype TcDefaultPaletteC2;
extern const struct palettetype TcDefaultPaletteC3;
extern const struct palettetype TcDefaultPalette4;
extern const struct palettetype TcDefaultPalette16;
extern struct palettetype TcCurrentPalette;
extern int TcTextFont, TcTextDirection, TcTextCharsize;
extern int TcTextMultX, TcTextDivX, TcTextMultY, TcTextDivY;
extern int TcFillStyle, TcFillColor;
extern char TcUserFillPattern[8];
/*extern struct TcPixmapPoolRecord TcPixmapPool[MAX_TCIMAGEBUFS]; */
extern Display *TcDisplay;
extern Window TcWindow;
extern Pixmap TcPixmaps[16];
extern gint TcScreen;
extern GC TcGc;
extern Colormap TcColormap;
extern XColor TcXforeground, TcXbackground;
extern Pixmap TcTile;
/* Mouse handling by Nepto [28/9/2003] [6/10/2003] */
extern int MOUINFO_xpos, MOUINFO_ypos, MOUINFO_bstat;
extern int MOUINFO_pressed_count[3], MOUINFO_released_count[3];
extern int KEYINFO_buffer;
#endif /* TURBOC_VARIABLES_C */

#endif /* _INCLUDED_GRAPHICS_H */


Platon Group <platon@platon.sk> http://platon.sk/
Copyright © 2002-2006 Platon Group
Stránka používa redakčný systém Metafox
Na začiatok