FreeBE/tgui/setmode.h

59 lines
1.4 KiB
C

/* Copyright 1998 (c) by Salvador Eduardo Tropea
This code is part of the FreeBE/AF project you can use it under the
terms and conditions of the FreeBE/AF project. */
/***** Flags used in the video mode structure *****/
/* b0-b1 */
#define NHSync 1
#define NVSync 2
#define PHSync 0
#define PVSync 0
/* b2-b3 */
#define DoubleScan 4
#define TripleScan 8
#define QuadrupleScan 0xC
/* b4-b6 */
#define BPP8 0x00
#define BPP15 0x10
#define BPP16 0x20
#define BPP24 0x30
/* b7 */
#define Interlaced 0x80
/* b31 */
#define HaveAccel2D 0x80000000
/* This mask erase all the flags passed in the CRTC structure */
#define InternalMask 0xFFFFFF70
#define ExtractBPP(a) ((a & 0x70) >> 4)
#define is8BPP 0
#define is15BPP 1
#define is16BPP 2
#define is24BPP 3
/**** Video mode structure ****/
typedef struct {
int flags;
ushort hDisplay, hSyncStart, hSyncEnd, hTotal;
ushort vDisplay, vSyncStart, vSyncEnd, vTotal;
ushort minBytesPerScan;
uchar ClockType;
uchar ClockValHigh, ClockValLow;
} VideoModeStr;
extern VideoModeStr *SupportedVideoModes[];
extern int NumSupportedVideoModes;
extern short SupportedVideoModesNums[];
#ifdef __cplusplus
extern "C" {
#endif
void CaptureSVGAStart(void);
void Set640x480x8bpp(void);
int GetBestPitchFor(int BytesPerScan, int BytesPerPixel);
void SetVideoModeH(VideoModeStr *modeInfo, int width, int bpp);
void SetTextModeVGA(void);
void ReadVSync(int *start, int *end);
void SetVSync(int start, int end);
#ifdef __cplusplus
}
#endif