removed fxmesa support (3dfx svgalib) because no one used it to my knowledge, and...
authorhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 17 Aug 2002 23:19:47 +0000 (23:19 +0000)
committerhavoc <havoc@d7cf8633-e32d-0410-b094-e92efae38249>
Sat, 17 Aug 2002 23:19:47 +0000 (23:19 +0000)
and cleaned up makefile a bit

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@2256 d7cf8633-e32d-0410-b094-e92efae38249

in_svgalib.c [deleted file]
makefile
vid_3dfxsvga.c [deleted file]

diff --git a/in_svgalib.c b/in_svgalib.c
deleted file mode 100644 (file)
index be41687..0000000
+++ /dev/null
@@ -1,334 +0,0 @@
-/*
-       in_svgalib.c
-
-       (description)
-
-       Copyright (C) 1996-1997  Id Software, Inc.
-       Copyright (C) 1999-2000  Marcus Sundberg [mackan@stacken.kth.se]
-       Copyright (C) 1999,2000  contributors of the QuakeForge project
-       Please see the file "AUTHORS" for a list of contributors
-
-       This program is free software; you can redistribute it and/or
-       modify it under the terms of the GNU General Public License
-       as published by the Free Software Foundation; either version 2
-       of the License, or (at your option) any later version.
-
-       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.
-
-       See the GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with this program; if not, write to:
-
-               Free Software Foundation, Inc.
-               59 Temple Place - Suite 330
-               Boston, MA  02111-1307, USA
-
-       $Id$
-*/
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include "quakedef.h"
-#include "sys.h"
-#include "console.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <vga.h>
-#include <vgakeyboard.h>
-#include <vgamouse.h>
-
-
-static int     UseKeyboard = 1;
-static int     UseMouse = 1;
-static int     in_svgalib_inited = 0;
-
-static unsigned char scantokey[128];
-static int     mouse_buttons;
-static int     mouse_buttonstate;
-static int     mouse_oldbuttonstate;
-static float   mouse_x, mouse_y;
-static float   old_mouse_x, old_mouse_y;
-static int     mx, my, uimx, uimy;
-
-static void IN_init_kb(void);
-static void IN_init_mouse(void);
-
-static void keyhandler(int scancode, int state)
-{
-       int sc;
-
-       sc = scancode & 0x7f;
-       Key_Event(scantokey[sc], state == KEY_EVENTPRESS);
-}
-
-
-static void mousehandler(int buttonstate, int dx, int dy, int dz, int drx, int dry, int drz)
-{
-       mouse_buttonstate = buttonstate;
-       uimx += dx;
-       uimy += dy;
-       mx += dx;
-       my += dy;
-       if (drx > 0) {
-               Key_Event(K_MWHEELUP, 1);
-               Key_Event(K_MWHEELUP, 0);
-       } else if (drx < 0) {
-               Key_Event(K_MWHEELDOWN, 1);
-               Key_Event(K_MWHEELDOWN, 0);
-       }
-}
-
-
-void IN_Init(void)
-{
-       if (COM_CheckParm("-nokbd")) UseKeyboard = 0;
-       if (COM_CheckParm("-nomouse")) UseMouse = 0;
-
-       uimx = uimy = 0;
-       if (UseKeyboard)
-               IN_init_kb();
-       if (UseMouse)
-               IN_init_mouse();
-
-       in_svgalib_inited = 1;
-}
-
-static void IN_init_kb(void)
-{
-       int i;
-
-       for (i=0 ; i<128 ; i++) {
-               scantokey[i] = ' ';
-       }
-
-       scantokey[  1] = K_ESCAPE;
-       scantokey[  2] = '1';
-       scantokey[  3] = '2';
-       scantokey[  4] = '3';
-       scantokey[  5] = '4';
-       scantokey[  6] = '5';
-       scantokey[  7] = '6';
-       scantokey[  8] = '7';
-       scantokey[  9] = '8';
-       scantokey[ 10] = '9';
-       scantokey[ 11] = '0';
-       scantokey[ 12] = '-';
-       scantokey[ 13] = '=';
-       scantokey[ 14] = K_BACKSPACE;
-       scantokey[ 15] = K_TAB;
-       scantokey[ 16] = 'q';
-       scantokey[ 17] = 'w';
-       scantokey[ 18] = 'e';
-       scantokey[ 19] = 'r';
-       scantokey[ 20] = 't';
-       scantokey[ 21] = 'y';
-       scantokey[ 22] = 'u';
-       scantokey[ 23] = 'i';
-       scantokey[ 24] = 'o';
-       scantokey[ 25] = 'p';
-       scantokey[ 26] = '[';
-       scantokey[ 27] = ']';
-       scantokey[ 28] = K_ENTER;
-       scantokey[ 29] = K_CTRL;        /*left */
-       scantokey[ 30] = 'a';
-       scantokey[ 31] = 's';
-       scantokey[ 32] = 'd';
-       scantokey[ 33] = 'f';
-       scantokey[ 34] = 'g';
-       scantokey[ 35] = 'h';
-       scantokey[ 36] = 'j';
-       scantokey[ 37] = 'k';
-       scantokey[ 38] = 'l';
-       scantokey[ 39] = ';';
-       scantokey[ 40] = '\'';
-       scantokey[ 41] = '`';
-       scantokey[ 42] = K_SHIFT;       /*left */
-       scantokey[ 43] = '\\';
-       scantokey[ 44] = 'z';
-       scantokey[ 45] = 'x';
-       scantokey[ 46] = 'c';
-       scantokey[ 47] = 'v';
-       scantokey[ 48] = 'b';
-       scantokey[ 49] = 'n';
-       scantokey[ 50] = 'm';
-       scantokey[ 51] = ',';
-       scantokey[ 52] = '.';
-       scantokey[ 53] = '/';
-       scantokey[ 54] = K_SHIFT;       /*right */
-       scantokey[ 55] = KP_MULTIPLY;
-       scantokey[ 56] = K_ALT;         /*left */
-       scantokey[ 57] = ' ';
-       scantokey[ 58] = K_CAPSLOCK;
-       scantokey[ 59] = K_F1;
-       scantokey[ 60] = K_F2;
-       scantokey[ 61] = K_F3;
-       scantokey[ 62] = K_F4;
-       scantokey[ 63] = K_F5;
-       scantokey[ 64] = K_F6;
-       scantokey[ 65] = K_F7;
-       scantokey[ 66] = K_F8;
-       scantokey[ 67] = K_F9;
-       scantokey[ 68] = K_F10;
-       scantokey[ 69] = KP_NUMLCK;
-       scantokey[ 70] = K_SCRLCK;
-       scantokey[ 71] = KP_HOME;
-       scantokey[ 72] = KP_UPARROW;
-       scantokey[ 73] = KP_PGUP;
-       scantokey[ 74] = KP_MINUS;
-       scantokey[ 75] = KP_LEFTARROW;
-       scantokey[ 76] = KP_5;
-       scantokey[ 77] = KP_RIGHTARROW;
-       scantokey[ 79] = KP_END;
-       scantokey[ 78] = KP_PLUS;
-       scantokey[ 80] = KP_DOWNARROW;
-       scantokey[ 81] = KP_PGDN;
-       scantokey[ 82] = KP_INS;
-       scantokey[ 83] = KP_DEL;
-       /* 84 to 86 not used */
-       scantokey[ 87] = K_F11;
-       scantokey[ 88] = K_F12;
-       /* 89 to 95 not used */
-       scantokey[ 96] = KP_ENTER;      /* keypad enter */
-       scantokey[ 97] = K_CTRL;        /* right */
-       scantokey[ 98] = KP_DIVIDE;
-       scantokey[ 99] = K_PRNTSCR;     /* print screen */
-       scantokey[100] = K_ALT;         /* right */
-
-       scantokey[101] = K_PAUSE;       /* break */
-       scantokey[102] = K_HOME;
-       scantokey[103] = K_UPARROW;
-       scantokey[104] = K_PGUP;
-       scantokey[105] = K_LEFTARROW;
-       scantokey[106] = K_RIGHTARROW;
-       scantokey[107] = K_END;
-       scantokey[108] = K_DOWNARROW;
-       scantokey[109] = K_PGDN;
-       scantokey[110] = K_INS;
-       scantokey[111] = K_DEL;
-       scantokey[119] = K_PAUSE;
-
-       if (keyboard_init()) {
-               Sys_Error("keyboard_init() failed");
-       }
-       keyboard_seteventhandler(keyhandler);
-}
-
-static void IN_init_mouse(void)
-{
-       int mtype;
-       char *mousedev;
-       int mouserate = MOUSE_DEFAULTSAMPLERATE;
-
-       mouse_buttons = 3;
-
-       mtype = vga_getmousetype();
-
-       mousedev = "/dev/mouse";
-       if (getenv("MOUSEDEV")) mousedev = getenv("MOUSEDEV");
-       if (COM_CheckParm("-mdev")) {
-               mousedev = com_argv[COM_CheckParm("-mdev")+1];
-       }
-
-       if (getenv("MOUSERATE")) mouserate = atoi(getenv("MOUSERATE"));
-       if (COM_CheckParm("-mrate")) {
-               mouserate = atoi(com_argv[COM_CheckParm("-mrate")+1]);
-       }
-
-       if (mouse_init(mousedev, mtype, mouserate)) {
-               Con_Printf("No mouse found\n");
-               UseMouse = 0;
-       } else{
-               mouse_seteventhandler((void*)mousehandler);
-       }
-}
-
-void IN_Shutdown(void)
-{
-       Con_Printf("IN_Shutdown\n");
-
-       if (UseMouse)
-               mouse_close();
-       if (UseKeyboard)
-               keyboard_close();
-       in_svgalib_inited = 0;
-}
-
-
-void Sys_SendKeyEvents(void)
-{
-       if (!in_svgalib_inited) return;
-
-       if (UseKeyboard) {
-               while ((keyboard_update()));
-       }
-}
-
-
-void IN_Commands(void)
-{
-       if (UseMouse)
-       {
-               /* Poll mouse values */
-               while (mouse_update())
-                       ;
-
-               /* Perform button actions */
-               if ((mouse_buttonstate & MOUSE_LEFTBUTTON) &&
-                       !(mouse_oldbuttonstate & MOUSE_LEFTBUTTON))
-                       Key_Event (K_MOUSE1, true);
-               else if (!(mouse_buttonstate & MOUSE_LEFTBUTTON) &&
-                       (mouse_oldbuttonstate & MOUSE_LEFTBUTTON))
-                       Key_Event (K_MOUSE1, false);
-
-               if ((mouse_buttonstate & MOUSE_RIGHTBUTTON) &&
-                       !(mouse_oldbuttonstate & MOUSE_RIGHTBUTTON))
-                       Key_Event (K_MOUSE2, true);
-               else if (!(mouse_buttonstate & MOUSE_RIGHTBUTTON) &&
-                       (mouse_oldbuttonstate & MOUSE_RIGHTBUTTON))
-                       Key_Event (K_MOUSE2, false);
-
-               if ((mouse_buttonstate & MOUSE_MIDDLEBUTTON) &&
-                       !(mouse_oldbuttonstate & MOUSE_MIDDLEBUTTON))
-                       Key_Event (K_MOUSE3, true);
-               else if (!(mouse_buttonstate & MOUSE_MIDDLEBUTTON) &&
-                       (mouse_oldbuttonstate & MOUSE_MIDDLEBUTTON))
-                       Key_Event (K_MOUSE3, false);
-
-               mouse_oldbuttonstate = mouse_buttonstate;
-       }
-}
-
-
-void IN_Move(usercmd_t *cmd)
-{
-       if (!UseMouse)
-               return;
-
-       /* Poll mouse values */
-       while (mouse_update())
-               ;
-
-       if (key_dest != key_game)
-               ui_mouseupdaterelative(uimx, uimy);
-       else
-               IN_Mouse(cmd, mx, my);
-       mx = 0;
-       my = 0;
-       uimx = 0;
-       uimy = 0;
-}
-
-void IN_HandlePause (qboolean pause)
-{
-}
-
index 8d948bd..fff672e 100644 (file)
--- a/makefile
+++ b/makefile
@@ -22,16 +22,18 @@ SOUNDLIB=
 #if you want no CD audio
 CD=cd_null.o
 
-OBJECTS= builddate.o $(CD) $(SND) chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o cmd.o common.o console.o crc.o cvar.o fractalnoise.o gl_draw.o r_sky.o gl_rmain.o gl_rsurf.o host.o host_cmd.o image.o keys.o mathlib.o menu.o model_alias.o model_brush.o model_shared.o model_sprite.o net_bsd.o net_udp.o net_dgrm.o net_loop.o net_main.o pr_cmds.o pr_edict.o pr_exec.o r_light.o r_explosion.o sbar.o sv_main.o sv_move.o sv_phys.o sv_user.o sv_light.o sys_linux.o transform.o view.o wad.o world.o zone.o vid_shared.o palette.o r_crosshairs.o gl_textures.o gl_models.o r_sprites.o r_modules.o r_explosion.o r_lerpanim.o protocol.o quakeio.o ui.o portals.o sys_shared.o cl_light.o gl_backend.o cl_particles.o cl_screen.o cgamevm.o cgame.o filematch.o collision.o cl_collision.o matrixlib.o cl_video.o dpvsimpledecode.o wavefile.o meshqueue.o
+OBJECTS= builddate.o chase.o cl_demo.o cl_input.o cl_main.o cl_parse.o cl_tent.o cmd.o common.o console.o crc.o cvar.o fractalnoise.o gl_draw.o r_sky.o gl_rmain.o gl_rsurf.o host.o host_cmd.o image.o keys.o mathlib.o menu.o model_alias.o model_brush.o model_shared.o model_sprite.o net_bsd.o net_udp.o net_dgrm.o net_loop.o net_main.o pr_cmds.o pr_edict.o pr_exec.o r_light.o r_explosion.o sbar.o sv_main.o sv_move.o sv_phys.o sv_user.o sv_light.o sys_linux.o transform.o view.o wad.o world.o zone.o vid_shared.o palette.o r_crosshairs.o gl_textures.o gl_models.o r_sprites.o r_modules.o r_explosion.o r_lerpanim.o protocol.o quakeio.o ui.o portals.o sys_shared.o cl_light.o gl_backend.o cl_particles.o cl_screen.o cgamevm.o cgame.o filematch.o collision.o cl_collision.o matrixlib.o cl_video.o dpvsimpledecode.o wavefile.o meshqueue.o
 
 #K6/athlon optimizations
-CPUOPTIMIZATIONS=-march=k6
+#CPUOPTIMIZATIONS=-march=k6
 #note: don't use -march=athlon, every gcc which has it currently (2.96-3.1)
 #have optimizer bugs (like entities disappearing randomly - a bug with
 #compiling BOX_ON_PLANE_SIDE in mathlib.h)
 #CPUOPTIMIZATIONS=-march=athlon
 #686 optimizations
 #CPUOPTIMIZATIONS=-march=i686
+#no specific CPU
+CPUOPTIMIZATIONS=
 
 #use this line for profiling
 PROFILEOPTION=-pg -g
@@ -49,19 +51,14 @@ NOPROFILEOPTIMIZATIONS=
 
 #normal compile
 OPTIMIZATIONS= -O6 -fno-strict-aliasing -ffast-math -funroll-loops $(NOPROFILEOPTIMIZATIONS) -fexpensive-optimizations $(CPUOPTIMIZATIONS)
-CFLAGS= -MD -Wall -Werror -I/usr/X11R6/include -I/usr/include/glide $(OPTIMIZATIONS) $(PROFILEOPTION)
+CFLAGS= -MD -Wall -Werror -I/usr/X11R6/include $(OPTIMIZATIONS) $(PROFILEOPTION)
 #debug compile
 #OPTIMIZATIONS=
 #CFLAGS= -MD -Wall -Werror -I/usr/X11R6/include -ggdb $(OPTIMIZATIONS) $(PROFILEOPTION)
 
-#LordHavoc: what is XIE?  XFree 4.1.0 doesn't need it and 4.2.0 seems to be missing it entirely
-#LDFLAGS= -L/usr/X11R6/lib -lm -lX11 -lXext -lXIE -lXxf86dga -lXxf86vm -lGL -ldl $(SOUNDLIB) $(PROFILEOPTION)
-#LDFLAGS= -L/usr/X11R6/lib -lm -lX11 -lXext -lXxf86dga -lXxf86vm -lGL -ldl $(SOUNDLIB) $(PROFILEOPTION)
 LDFLAGS= -L/usr/X11R6/lib -lm -lX11 -lXext -lXxf86dga -lXxf86vm -ldl $(SOUNDLIB) $(PROFILEOPTION)
 
-#if you don't need the -3dfx version, use this line
 all: builddate darkplaces-glx
-#all: builddate darkplaces-glx darkplaces-3dfx
 
 builddate:
        touch builddate.c
@@ -69,15 +66,11 @@ builddate:
 .c.o:
        gcc $(CFLAGS) -c $*.c
 
-darkplaces-glx: $(OBJECTS) vid_glx.o
+darkplaces-glx: vid_glx.o $(CD) $(SND) $(OBJECTS)
        gcc -o $@ $^ $(LDFLAGS)
 
-darkplaces-3dfx: $(OBJECTS) in_svgalib.o vid_3dfxsvga.o
-       gcc -o $@ $^ $(LDFLAGS)
-
-
 clean:
-       -rm -f darkplaces-glx darkplaces-3dfx *.o *.d
+       -rm -f darkplaces-glx *.o *.d
 
 .PHONY: clean builddate
 
diff --git a/vid_3dfxsvga.c b/vid_3dfxsvga.c
deleted file mode 100644 (file)
index a07b8f3..0000000
+++ /dev/null
@@ -1,307 +0,0 @@
-/*
-       vid_3dfxsvga.c
-
-       OpenGL device driver for 3Dfx chipsets running Linux
-
-       Copyright (C) 1996-1997  Id Software, Inc.
-       Copyright (C) 1999,2000  Nelson Rush.
-       Copyright (C) 1999,2000  contributors of the QuakeForge project
-       Please see the file "AUTHORS" for a list of contributors
-
-       This program is free software; you can redistribute it and/or
-       modify it under the terms of the GNU General Public License
-       as published by the Free Software Foundation; either version 2
-       of the License, or (at your option) any later version.
-
-       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.
-
-       See the GNU General Public License for more details.
-
-       You should have received a copy of the GNU General Public License
-       along with this program; if not, write to:
-
-               Free Software Foundation, Inc.
-               59 Temple Place - Suite 330
-               Boston, MA  02111-1307, USA
-
-       $Id$
-*/
-
-#include "quakedef.h"
-#include "sys.h"
-#include "console.h"
-#include "sbar.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <signal.h>
-#include <string.h>
-
-#include <dlfcn.h>
-
-#include <GL/gl.h>
-#include <GL/fxmesa.h>
-#include <glide/sst1vid.h>
-
-
-viddef_t       vid;    // global video state
-
-static void    *dlhand = NULL;
-
-static fxMesaContext fc = NULL;
-static int     scr_width, scr_height;
-
-int    VID_options_items = 0;
-
-/*-----------------------------------------------------------------------*/
-void D_BeginDirectRect (int x, int y, qbyte *pbitmap, int width, int height)
-{
-}
-
-void D_EndDirectRect (int x, int y, int width, int height)
-{
-}
-
-void VID_Shutdown(void)
-{
-       if (!fc)
-               return;
-
-       fxMesaDestroyContext(fc);
-
-       GL_CloseLibrary();
-}
-
-void signal_handler(int sig)
-{
-       printf("Received signal %d, exiting...\n", sig);
-       Host_Shutdown();
-       abort();
-       exit(0);
-}
-
-void InitSig(void)
-{
-       signal(SIGHUP, signal_handler);
-       signal(SIGINT, signal_handler);
-       signal(SIGQUIT, signal_handler);
-       signal(SIGILL, signal_handler);
-       signal(SIGTRAP, signal_handler);
-       signal(SIGBUS, signal_handler);
-       signal(SIGSEGV, signal_handler);
-       signal(SIGTERM, signal_handler);
-}
-
-typedef void (GLAPIENTRY *gl3DfxSetDitherModeEXT_FUNC) (GrDitherMode_t mode);
-
-void VID_SetupDithering(void)
-{
-       Con_Printf ("Dithering: ");
-
-       dlhand = dlopen (NULL, RTLD_LAZY);
-
-       if (dlhand == NULL) {
-               Con_SafePrintf ("unable to set.\n");
-               return;
-       }
-
-       if (strstr(gl_extensions, "3DFX_set_dither_mode")) {
-               gl3DfxSetDitherModeEXT_FUNC dither_select = NULL;
-
-               dither_select = (void *) dlsym(dlhand, "gl3DfxSetDitherModeEXT");
-
-               if (COM_CheckParm ("-dither_2x2")) {
-                       dither_select(GR_DITHER_2x2);
-                       Con_Printf ("2x2.\n");
-               } else if (COM_CheckParm ("-dither_4x4")) {
-                       dither_select(GR_DITHER_4x4);
-                       Con_Printf ("4x4.\n");
-               } else {
-                       qglDisable(GL_DITHER);
-                       Con_Printf ("disabled.\n");
-               }
-       }
-       dlclose(dlhand);
-       dlhand = NULL;
-}
-
-/*
-=================
-VID_GetWindowSize
-=================
-*/
-void VID_GetWindowSize (int *x, int *y, int *width, int *height)
-{
-       *x = *y = 0;
-       *width = scr_width;
-       *height = scr_height;
-}
-
-void VID_Finish (void)
-{
-       if (r_render.integer)
-       {
-               qglFinish();
-               fxMesaSwapBuffers();
-       }
-}
-
-static int resolutions[][3]={
-       { 320,  200,    GR_RESOLUTION_320x200 },
-       { 320,  240,    GR_RESOLUTION_320x240 },
-       { 400,  256,    GR_RESOLUTION_400x256 },
-       { 400,  300,    GR_RESOLUTION_400x300 },
-       { 512,  256,    GR_RESOLUTION_512x256 },
-       { 512,  384,    GR_RESOLUTION_512x384 },
-       { 640,  200,    GR_RESOLUTION_640x200 },
-       { 640,  350,    GR_RESOLUTION_640x350 },
-       { 640,  400,    GR_RESOLUTION_640x400 },
-       { 640,  480,    GR_RESOLUTION_640x480 },
-       { 800,  600,    GR_RESOLUTION_800x600 },
-       { 856,  480,    GR_RESOLUTION_856x480 },
-       { 960,  720,    GR_RESOLUTION_960x720 },
-#ifdef GR_RESOLUTION_1024x768
-       { 1024, 768,    GR_RESOLUTION_1024x768 },
-#endif
-#ifdef GR_RESOLUTION_1152x864
-       { 1152, 864,    GR_RESOLUTION_1152x864 },
-#endif
-#ifdef GR_RESOLUTION_1280x960
-       { 1280, 960,    GR_RESOLUTION_1280x960 },
-#endif
-#ifdef GR_RESOLUTION_1280x1024
-       { 1280, 1024,   GR_RESOLUTION_1280x1024 },
-#endif
-#ifdef GR_RESOLUTION_1600x1024
-       { 1600, 1024,   GR_RESOLUTION_1600x1024 },
-#endif
-#ifdef GR_RESOLUTION_1600x1200
-       { 1600, 1200,   GR_RESOLUTION_1600x1200 },
-#endif
-#ifdef GR_RESOLUTION_1792x1344
-       { 1792, 1344,   GR_RESOLUTION_1792x1344 },
-#endif
-#ifdef GR_RESOLUTION_1856x1392
-       { 1856, 1392,   GR_RESOLUTION_1856x1392 },
-#endif
-#ifdef GR_RESOLUTION_1920x1440
-       { 1920, 1440,   GR_RESOLUTION_1920x1440 },
-#endif
-#ifdef GR_RESOLUTION_2048x1536
-       { 2048, 1536,   GR_RESOLUTION_2048x1536 },
-#endif
-#ifdef GR_RESOLUTION_2048x2048
-       { 2048, 2048,   GR_RESOLUTION_2048x2048 }
-#endif
-};
-
-#define NUM_RESOLUTIONS                (sizeof(resolutions)/(sizeof(int)*3))
-
-
-static int
-findres(int *width, int *height)
-{
-       int i;
-
-       for(i=0; i < NUM_RESOLUTIONS; i++) {
-               if((*width <= resolutions[i][0]) &&
-                  (*height <= resolutions[i][1])) {
-                       *width = resolutions[i][0];
-                       *height = resolutions[i][1];
-                       return resolutions[i][2];
-               }
-       }
-
-       *width = 640;
-       *height = 480;
-       return GR_RESOLUTION_640x480;
-}
-
-int VID_SetGamma(float prescale, float gamma, float scale, float base)
-{
-       return FALSE;
-}
-
-void VID_Init(void)
-{
-       int i;
-       GLint attribs[32];
-       int width = 640, height = 480;
-
-       GL_OpenLibrary();
-
-// set vid parameters
-       attribs[0] = FXMESA_DOUBLEBUFFER;
-       attribs[1] = FXMESA_ALPHA_SIZE;
-       attribs[2] = 1;
-       attribs[3] = FXMESA_DEPTH_SIZE;
-       attribs[4] = 1;
-       attribs[5] = FXMESA_NONE;
-
-       if ((i = COM_CheckParm("-width")) != 0)
-               width = atoi(com_argv[i+1]);
-       if ((i = COM_CheckParm("-height")) != 0)
-               height = atoi(com_argv[i+1]);
-
-       if ((i = COM_CheckParm("-conwidth")) != 0)
-               vid.conwidth = atoi(com_argv[i+1]);
-       else
-               vid.conwidth = 640;
-
-       vid.conwidth &= 0xfff8; // make it a multiple of eight
-
-       if (vid.conwidth < 320)
-               vid.conwidth = 320;
-
-       // pick a conheight that matches with correct aspect
-       vid.conheight = vid.conwidth*3 / 4;
-
-       if ((i = COM_CheckParm("-conheight")) != 0)
-               vid.conheight = atoi(com_argv[i+1]);
-       if (vid.conheight < 200)
-               vid.conheight = 200;
-
-       fc = fxMesaCreateContext(0, findres(&width, &height), GR_REFRESH_75Hz,
-               attribs);
-       if (!fc)
-               Sys_Error("Unable to create 3DFX context.\n");
-
-       scr_width = width;
-       scr_height = height;
-
-       fxMesaMakeCurrent(fc);
-
-       if (vid.conheight > height)
-               vid.conheight = height;
-       if (vid.conwidth > width)
-               vid.conwidth = width;
-
-       InitSig(); // trap evil signals
-
-       GL_Init();
-
-       VID_SetupDithering(); // 3DFX specific
-
-       vid_hidden = false;
-
-       Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height);
-}
-
-void VID_ExtraOptionDraw(unsigned int options_draw_cursor)
-{
-}
-
-void VID_ExtraOptionCmd(int option_cursor)
-{
-}
-
-void VID_SetCaption (char *text)
-{
-}
-
-void VID_HandlePause (qboolean pause)
-{
-}
-