This program 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.
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
*/
// vid.h -- video driver defs
-#define VID_CBITS 6
-#define VID_GRADES (1 << VID_CBITS)
-
-// a pixel can be one, two, or four bytes
-typedef byte pixel_t;
-
-typedef struct vrect_s
-{
- int x,y,width,height;
- struct vrect_s *pnext;
-} vrect_t;
+#ifndef VID_H
+#define VID_H
typedef struct
{
- pixel_t *buffer; // invisible buffer
- pixel_t *colormap; // 256 * VID_GRADES size
- unsigned short *colormap16; // 256 * VID_GRADES size
- int fullbright; // index of first fullbright color
- unsigned width;
- unsigned height;
- float aspect; // width / height -- < 0 is taller than wide
- int numpages;
- int recalc_refdef; // if true, recalc vid-based stuff
- pixel_t *conbuffer;
- unsigned conwidth;
- unsigned conheight;
- int maxwarpwidth;
- int maxwarpheight;
- pixel_t *direct; // direct drawing to framebuffer, if not
- // NULL
+ // these are set with VID_GetWindowSize and can change from frame to frame
+ int realx;
+ int realy;
+ int realwidth;
+ int realheight;
+
+ int conwidth;
+ int conheight;
} viddef_t;
-extern viddef_t vid; // global video state
-extern unsigned short d_8to16table[256];
-extern unsigned d_8to24table[256];
+// global video state
+extern viddef_t vid;
extern void (*vid_menudrawfn)(void);
extern void (*vid_menukeyfn)(int key);
-void VID_SetPalette (unsigned char *palette);
-// called at startup
+extern int vid_hidden;
+extern int vid_activewindow;
-void VID_Init (unsigned char *palette);
-// Called at startup to set up translation tables, takes 256 8 bit RGB values
-// the palette data will go away after the call, so it must be copied off if
-// the video driver will need it again
+extern cvar_t vid_mode;
+extern cvar_t vid_mouse;
+extern cvar_t vid_fullscreen;
-void VID_Shutdown (void);
-// Called at shutdown
+void VID_InitCvars(void);
+
+void GL_Init (void);
+
+void VID_CheckExtensions(void);
-void VID_Update (vrect_t *rects);
-// flushes the given rectangles from the view buffer to the screen
+void VID_Init (void);
+// Called at startup
-int VID_SetMode (int modenum, unsigned char *palette);
+void VID_Shutdown (void);
+// Called at shutdown
+
+int VID_SetMode (int modenum);
// sets the mode; only used by the Quake engine for resetting to mode 0 (the
// base mode) on memory allocation failures
-void VID_HandlePause (qboolean pause);
-// called only on Win32, when pause happens, so the mouse can be released
+// sets hardware gamma correction, returns false if the device does not
+// support gamma control
+int VID_SetGamma (float prescale, float gamma, float scale, float base);
+
+void VID_GetWindowSize (int *x, int *y, int *width, int *height);
+
+void VID_Finish (void);
+
+#endif