reactos/win32ss/drivers/displays/vga/vgavideo/vgavideo.h

76 lines
2.2 KiB
C

// FIXME: Make these variables so we can also use modes like 800x600
#define SCREEN_X 640
#define SCREEN_Y 480
#define SCREEN_STRIDE 80
#define VGA_NORMAL 0
#define VGA_AND 8
#define VGA_OR 16
#define VGA_XOR 24
//This is in mingw standard headers
//typedef struct { int quot, rem; } div_t;
extern int maskbit[640];
extern int y80[480];
extern int xconv[640];
extern int bit8[640];
extern int startmasks[8];
extern int endmasks[8];
extern UCHAR PreCalcReverseByte[256];
extern PBYTE vidmem;
#define MISC 0x3c2
#define SEQ 0x3c4
#define CRTC 0x3d4
#define GRAPHICS 0x3ce
#define FEATURE 0x3da
#define ATTRIB 0x3c0
#define STATUS 0x3da
typedef struct _VideoMode {
unsigned short VidSeg;
unsigned char Misc;
unsigned char Feature;
unsigned char Seq[5];
unsigned char Crtc[25];
unsigned char Gfx[9];
unsigned char Attrib[21];
} VideoMode;
VOID vgaPreCalc(VOID);
VOID vgaPutPixel(INT x, INT y, UCHAR c);
VOID vgaPutByte(INT x, INT y, UCHAR c);
VOID vgaGetByte(ULONG offset,
UCHAR *b, UCHAR *g,
UCHAR *r, UCHAR *i);
INT vgaGetPixel(INT x, INT y);
BOOL vgaHLine(INT x, INT y, INT len, UCHAR c);
BOOL vgaVLine(INT x, INT y, INT len, UCHAR c);
INT __cdecl abs(INT nm);
BOOL VGADDIIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2);
#define SEQ_I 0x3C4 /* Sequencer Index */
#define SEQ_D 0x3C5 /* Sequencer Data Register */
#define GRA_I 0x3CE /* Graphics Controller Index */
#define GRA_D 0x3CF /* Graphics Controller Data Register */
#define LowByte(w) (*((unsigned char *)&(w) + 0))
#define HighByte(w) (*((unsigned char *)&(w) + 1))
#define ASSIGNVP4(x, y, vp) vp = vidmem /* VBUF */ + (((x) + (y)*SCREEN_X) >> 3);
#define ASSIGNMK4(x, y, mask) mask = 0x80 >> ((x) & 7);
void get_masks(int x, int w);
#define mod8(n) ((n)&7)
#define mod2(n) ((n)&1)
void DIB_BltFromVGA(int x, int y, int w, int h, void *b, int Dest_lDelta);
void DIB_BltToVGA(int x, int y, int w, int h, void *b, int Source_lDelta, int StartMod);
void DIB_BltToVGAWithXlate(int x, int y, int w, int h, void *b, int Source_lDelta, XLATEOBJ* Xlate);
void DIB_TransparentBltToVGA(int x, int y, int w, int h, void *b, int Source_lDelta, ULONG trans);