home *** CD-ROM | disk | FTP | other *** search
- /* aascreen.h Copyright 1990 Dancing Flame, San Francisco */
-
- #ifndef AASCREEN_H
- #define AASCREEN_H
-
- #ifndef AATYPES_H
- #include "aatypes.h"
- #endif /* AATYPES_H */
-
-
- /* Graphics types */
- typedef unsigned char Cmap;
- typedef unsigned char Pixel;
- typedef unsigned char Bitplane;
-
- /* Constants pertaining to 320x200 256 color mode mostly */
- #define AA_VGA_SCREEN ((Pixel *)0xa0000000)
- #define AA_XMAX 320
- #define AA_YMAX 200
- #define AA_BPR 320
- #define AA_COLORS 256
-
- /* This structure is something we can draw on. A superset of Vcel
- (and keep it that way or things break!) */
- struct vscreen
- {
- int x, y; /* upper left corner in screen coordinates */
- unsigned w, h; /* width, height */
- unsigned bpr; /* bytes per row of image p */
- Pixel *p; /* Starts on segment boundary */
- Cmap *cmap;
- long psize; /* size of pixels */
- Pixel *allocedp; /* for memory based screens only */
- };
- typedef struct vscreen Vscreen;
- extern Vscreen aa_screen;
- extern Cmap aa_colors[]; /* software echo of color map */
- Boolean aa_open_vga_screen(void); /* opens 256 color screen */
- void aa_close_vga_screen(void);
- /* Open a screen can draw on but not see */
- Vscreen *aa_alloc_mem_screen(void);
- /* For screens not full size */
- Vscreen *aa_alloc_mem_cel(int x, int y, int w, int h);
- void aa_free_mem_screen(Vscreen *ms); /* dispose of a memory screen */
- void aa_copy_screen(Vscreen *source, Vscreen *dest);
- void aa_clear_screen(Vscreen *vs);
-
- /* Get the current video mode */
- int dos_get_vmode(void);
- /* Set video mode. Mode 0x13 is 320x200 256 color */
- void dos_set_vmode(int mode);
- /* Set the VGA color map. */
- void aa_set_colors(int start, int count, Cmap *cmap);
- /* Wait until in vertical blank */
- void aa_wait_vblank(void);
- /* Wait until out of vertical blank */
- void aa_wait_no_vblank(void);
-
- #endif /* AASCREEN_H */
-