Quake-2

Quake 2 GPL Source Release
Log | Files | Refs

vid_null.c (3159B)


      1 // vid_null.c -- null video driver to aid porting efforts
      2 // this assumes that one of the refs is statically linked to the executable
      3 
      4 #include "../client/client.h"
      5 
      6 viddef_t	viddef;				// global video state
      7 
      8 refexport_t	re;
      9 
     10 refexport_t GetRefAPI (refimport_t rimp);
     11 
     12 /*
     13 ==========================================================================
     14 
     15 DIRECT LINK GLUE
     16 
     17 ==========================================================================
     18 */
     19 
     20 #define	MAXPRINTMSG	4096
     21 void VID_Printf (int print_level, char *fmt, ...)
     22 {
     23         va_list		argptr;
     24         char		msg[MAXPRINTMSG];
     25 
     26         va_start (argptr,fmt);
     27         vsprintf (msg,fmt,argptr);
     28         va_end (argptr);
     29 
     30         if (print_level == PRINT_ALL)
     31                 Com_Printf ("%s", msg);
     32         else
     33                 Com_DPrintf ("%s", msg);
     34 }
     35 
     36 void VID_Error (int err_level, char *fmt, ...)
     37 {
     38         va_list		argptr;
     39         char		msg[MAXPRINTMSG];
     40 
     41         va_start (argptr,fmt);
     42         vsprintf (msg,fmt,argptr);
     43         va_end (argptr);
     44 
     45 		Com_Error (err_level, "%s", msg);
     46 }
     47 
     48 void VID_NewWindow (int width, int height)
     49 {
     50         viddef.width = width;
     51         viddef.height = height;
     52 }
     53 
     54 /*
     55 ** VID_GetModeInfo
     56 */
     57 typedef struct vidmode_s
     58 {
     59     const char *description;
     60     int         width, height;
     61     int         mode;
     62 } vidmode_t;
     63 
     64 vidmode_t vid_modes[] =
     65 {
     66     { "Mode 0: 320x240",   320, 240,   0 },
     67     { "Mode 1: 400x300",   400, 300,   1 },
     68     { "Mode 2: 512x384",   512, 384,   2 },
     69     { "Mode 3: 640x480",   640, 480,   3 },
     70     { "Mode 4: 800x600",   800, 600,   4 },
     71     { "Mode 5: 960x720",   960, 720,   5 },
     72     { "Mode 6: 1024x768",  1024, 768,  6 },
     73     { "Mode 7: 1152x864",  1152, 864,  7 },
     74     { "Mode 8: 1280x960",  1280, 960, 8 },
     75     { "Mode 9: 1600x1200", 1600, 1200, 9 }
     76 };
     77 #define VID_NUM_MODES ( sizeof( vid_modes ) / sizeof( vid_modes[0] ) )
     78 
     79 qboolean VID_GetModeInfo( int *width, int *height, int mode )
     80 {
     81     if ( mode < 0 || mode >= VID_NUM_MODES )
     82         return false;
     83 
     84     *width  = vid_modes[mode].width;
     85     *height = vid_modes[mode].height;
     86 
     87     return true;
     88 }
     89 
     90 
     91 void	VID_Init (void)
     92 {
     93     refimport_t	ri;
     94 
     95     viddef.width = 320;
     96     viddef.height = 240;
     97 
     98     ri.Cmd_AddCommand = Cmd_AddCommand;
     99     ri.Cmd_RemoveCommand = Cmd_RemoveCommand;
    100     ri.Cmd_Argc = Cmd_Argc;
    101     ri.Cmd_Argv = Cmd_Argv;
    102     ri.Cmd_ExecuteText = Cbuf_ExecuteText;
    103     ri.Con_Printf = VID_Printf;
    104     ri.Sys_Error = VID_Error;
    105     ri.FS_LoadFile = FS_LoadFile;
    106     ri.FS_FreeFile = FS_FreeFile;
    107     ri.FS_Gamedir = FS_Gamedir;
    108 	ri.Vid_NewWindow = VID_NewWindow;
    109     ri.Cvar_Get = Cvar_Get;
    110     ri.Cvar_Set = Cvar_Set;
    111     ri.Cvar_SetValue = Cvar_SetValue;
    112     ri.Vid_GetModeInfo = VID_GetModeInfo;
    113 
    114     re = GetRefAPI(ri);
    115 
    116     if (re.api_version != API_VERSION)
    117         Com_Error (ERR_FATAL, "Re has incompatible api_version");
    118     
    119         // call the init function
    120     if (re.Init (NULL, NULL) == -1)
    121 		Com_Error (ERR_FATAL, "Couldn't start refresh");
    122 }
    123 
    124 void	VID_Shutdown (void)
    125 {
    126     if (re.Shutdown)
    127 	    re.Shutdown ();
    128 }
    129 
    130 void	VID_CheckChanges (void)
    131 {
    132 }
    133 
    134 void	VID_MenuInit (void)
    135 {
    136 }
    137 
    138 void	VID_MenuDraw (void)
    139 {
    140 }
    141 
    142 const char *VID_MenuKey( int k)
    143 {
    144 	return NULL;
    145 }