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 }