|
|
1.1 root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.