|
|
1.1 ! root 1: /* ! 2: Copyright (C) 1996-1997 Id Software, Inc. ! 3: ! 4: This program is free software; you can redistribute it and/or ! 5: modify it under the terms of the GNU General Public License ! 6: as published by the Free Software Foundation; either version 2 ! 7: of the License, or (at your option) any later version. ! 8: ! 9: This program is distributed in the hope that it will be useful, ! 10: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 11: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ! 12: ! 13: See the GNU General Public License for more details. ! 14: ! 15: You should have received a copy of the GNU General Public License ! 16: along with this program; if not, write to the Free Software ! 17: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ! 18: ! 19: */ ! 20: // vid.h -- video driver defs ! 21: ! 22: #define VID_CBITS 6 ! 23: #define VID_GRADES (1 << VID_CBITS) ! 24: ! 25: // a pixel can be one, two, or four bytes ! 26: typedef byte pixel_t; ! 27: ! 28: typedef struct vrect_s ! 29: { ! 30: int x,y,width,height; ! 31: struct vrect_s *pnext; ! 32: } vrect_t; ! 33: ! 34: typedef struct ! 35: { ! 36: pixel_t *buffer; // invisible buffer ! 37: pixel_t *colormap; // 256 * VID_GRADES size ! 38: unsigned short *colormap16; // 256 * VID_GRADES size ! 39: int fullbright; // index of first fullbright color ! 40: unsigned rowbytes; // may be > width if displayed in a window ! 41: unsigned width; ! 42: unsigned height; ! 43: float aspect; // width / height -- < 0 is taller than wide ! 44: int numpages; ! 45: int recalc_refdef; // if true, recalc vid-based stuff ! 46: pixel_t *conbuffer; ! 47: int conrowbytes; ! 48: unsigned conwidth; ! 49: unsigned conheight; ! 50: int maxwarpwidth; ! 51: int maxwarpheight; ! 52: pixel_t *direct; // direct drawing to framebuffer, if not ! 53: // NULL ! 54: } viddef_t; ! 55: ! 56: extern viddef_t vid; // global video state ! 57: extern unsigned short d_8to16table[256]; ! 58: extern unsigned d_8to24table[256]; ! 59: extern void (*vid_menudrawfn)(void); ! 60: extern void (*vid_menukeyfn)(int key); ! 61: ! 62: void VID_SetPalette (unsigned char *palette); ! 63: // called at startup and after any gamma correction ! 64: ! 65: void VID_ShiftPalette (unsigned char *palette); ! 66: // called for bonus and pain flashes, and for underwater color changes ! 67: ! 68: void VID_Init (unsigned char *palette); ! 69: // Called at startup to set up translation tables, takes 256 8 bit RGB values ! 70: // the palette data will go away after the call, so it must be copied off if ! 71: // the video driver will need it again ! 72: ! 73: void VID_Shutdown (void); ! 74: // Called at shutdown ! 75: ! 76: void VID_Update (vrect_t *rects); ! 77: // flushes the given rectangles from the view buffer to the screen ! 78: ! 79: int VID_SetMode (int modenum, unsigned char *palette); ! 80: // sets the mode; only used by the Quake engine for resetting to mode 0 (the ! 81: // base mode) on memory allocation failures ! 82: ! 83: void VID_HandlePause (qboolean pause); ! 84: // called only on Win32, when pause happens, so the mouse can be released ! 85: ! 86: void VID_LockBuffer (void); ! 87: void VID_UnlockBuffer (void); ! 88: ! 89: #ifdef GLQUAKE ! 90: qboolean VID_Is8bit(void); ! 91: #endif ! 92:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.