From ad03ff24dee81baa70c33a60d2ea6b840692400d Mon Sep 17 00:00:00 2001 From: Jeff Teunissen Date: Mon, 22 May 2000 03:27:00 +0000 Subject: [PATCH] gl_vidlinux: DIE DIE DIE! cvar.c: use va() for Cvar_SetValue r_view.c: cvar cleanups sirf8.S: whitespace --- source/cvar.c | 5 +- source/gl_vidlinux.c | 868 ----------------------------------- source/gl_vidlinux_svga.c | 907 ------------------------------------- source/gl_vidlinux_x11.c | 926 -------------------------------------- source/r_view.c | 64 +-- source/surf8.S | 7 +- 6 files changed, 7 insertions(+), 2770 deletions(-) delete mode 100644 source/gl_vidlinux.c delete mode 100644 source/gl_vidlinux_svga.c delete mode 100644 source/gl_vidlinux_x11.c diff --git a/source/cvar.c b/source/cvar.c index dd8acac..a560505 100644 --- a/source/cvar.c +++ b/source/cvar.c @@ -203,10 +203,7 @@ Cvar_SetValue */ void Cvar_SetValue (cvar_t *var_name, float value) { - char val[32]; - - sprintf (val, "%f",value); - Cvar_Set (var_name, val); + Cvar_Set (var_name, va("%f", value)); } /* diff --git a/source/gl_vidlinux.c b/source/gl_vidlinux.c deleted file mode 100644 index 9bb186a..0000000 --- a/source/gl_vidlinux.c +++ /dev/null @@ -1,868 +0,0 @@ -/* - gl_vidlinux.c - - (description) - - Copyright (C) 1996-1997 Id Software, Inc. - - 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 -#endif -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "vga.h" -#include "vgakeyboard.h" -#include "vgamouse.h" - -#include "quakedef.h" -#include "GL/fxmesa.h" - -#define WARP_WIDTH 320 -#define WARP_HEIGHT 200 - -static fxMesaContext fc = NULL; -#define stringify(m) { #m, m } - -unsigned short d_8to16table[256]; -unsigned d_8to24table[256]; -unsigned char d_15to8table[65536]; - -int num_shades=32; - -struct -{ - char *name; - int num; -} mice[] = -{ - stringify(MOUSE_MICROSOFT), - stringify(MOUSE_MOUSESYSTEMS), - stringify(MOUSE_MMSERIES), - stringify(MOUSE_LOGITECH), - stringify(MOUSE_BUSMOUSE), - stringify(MOUSE_PS2), -}; - -static unsigned char scantokey[128]; - -int num_mice = sizeof (mice) / sizeof(mice[0]); - -int d_con_indirect = 0; - -int svgalib_inited=0; -int UseMouse = 1; -int UseKeyboard = 1; - -int mouserate = MOUSE_DEFAULTSAMPLERATE; - -/* cvar_t _windowed_mouse = {"_windowed_mouse","0", true}; - CVAR_FIXME */ -cvar_t *_windowed_mouse; - -/* cvar_t vid_mode = {"vid_mode","5",false}; - CVAR_FIXME */ -cvar_t *vid_mode; -/* cvar_t vid_redrawfull = {"vid_redrawfull","0",false}; - CVAR_FIXME */ -cvar_t *vid_redrawfull; -/* cvar_t vid_waitforrefresh = {"vid_waitforrefresh","0",true}; - CVAR_FIXME */ -cvar_t *vid_waitforrefresh; - -char *framebuffer_ptr; - -cvar_t mouse_button_commands[3] = -{ - {"mouse1","+attack"}, - {"mouse2","+strafe"}, - {"mouse3","+forward"}, -}; - -int mouse_buttons; -int mouse_buttonstate; -int mouse_oldbuttonstate; -float mouse_x, mouse_y; -float old_mouse_x, old_mouse_y; -int mx, my; - -/* cvar_t m_filter = {"m_filter","1"}; - CVAR_FIXME */ -cvar_t *m_filter; - -int scr_width, scr_height; - -/*-----------------------------------------------------------------------*/ - -//int texture_mode = GL_NEAREST; -//int texture_mode = GL_NEAREST_MIPMAP_NEAREST; -//int texture_mode = GL_NEAREST_MIPMAP_LINEAR; -int texture_mode = GL_LINEAR; -//int texture_mode = GL_LINEAR_MIPMAP_NEAREST; -//int texture_mode = GL_LINEAR_MIPMAP_LINEAR; - -int texture_extension_number = 1; - -float gldepthmin, gldepthmax; - -/* cvar_t gl_ztrick = {"gl_ztrick","1"}; - CVAR_FIXME */ -cvar_t *gl_ztrick; - -const char *gl_vendor; -const char *gl_renderer; -const char *gl_version; -const char *gl_extensions; - -qboolean is8bit = false; -qboolean isPermedia = false; -qboolean gl_mtexable = false; - -/*-----------------------------------------------------------------------*/ -void D_BeginDirectRect (int x, int y, byte *pbitmap, int width, int height) -{ -} - -void D_EndDirectRect (int x, int y, int width, int height) -{ -} - -int matchmouse(int mouse, char *name) -{ - int i; - for (i=0 ; i> 2)+4; - b = ((i & 0x7C00) >> 7)+4; - pal = (unsigned char *)d_8to24table; - for (v=0,k=0,bestdist=10000.0; v<256; v++,pal+=4) { - r1 = (int)r - (int)pal[0]; - g1 = (int)g - (int)pal[1]; - b1 = (int)b - (int)pal[2]; - dist = sqrt(((r1*r1)+(g1*g1)+(b1*b1))); - if (dist < bestdist) { - k=v; - bestdist = dist; - } - } - d_15to8table[i]=k; - } - snprintf (s, sizeof(s), "%s/glquake", com_gamedir); - Sys_mkdir (s); - snprintf (s, sizeof(s), "%s/glquake/15to8.pal", com_gamedir); - if ((f = fopen(s, "wb")) != NULL) { - fwrite(d_15to8table, 1<<15, 1, f); - fclose(f); - } - } -} - -/* -=============== -GL_Init -=============== -*/ -void GL_Init (void) -{ - gl_vendor = glGetString (GL_VENDOR); - Con_Printf ("GL_VENDOR: %s\n", gl_vendor); - gl_renderer = glGetString (GL_RENDERER); - Con_Printf ("GL_RENDERER: %s\n", gl_renderer); - - gl_version = glGetString (GL_VERSION); - Con_Printf ("GL_VERSION: %s\n", gl_version); - gl_extensions = glGetString (GL_EXTENSIONS); - Con_Printf ("GL_EXTENSIONS: %s\n", gl_extensions); - -// Con_Printf ("%s %s\n", gl_renderer, gl_version); - - glClearColor (1,0,0,0); - glCullFace(GL_FRONT); - glEnable(GL_TEXTURE_2D); - - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GREATER, 0.666); - - glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); - glShadeModel (GL_FLAT); - - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - -// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); -} - -/* -================= -GL_BeginRendering - -================= -*/ -void GL_BeginRendering (int *x, int *y, int *width, int *height) -{ -/* extern cvar_t gl_clear; - CVAR_FIXME */ - extern cvar_t *gl_clear; - - *x = *y = 0; - *width = scr_width; - *height = scr_height; - -// if (!wglMakeCurrent( maindc, baseRC )) -// Sys_Error ("wglMakeCurrent failed"); - -// glViewport (*x, *y, *width, *height); -} - - -void GL_EndRendering (void) -{ - glFlush(); - fxMesaSwapBuffers(); -} - -void Init_KBD(void) -{ - int i; - - if (COM_CheckParm("-nokbd")) UseKeyboard = 0; - - if (UseKeyboard) - { - for (i=0 ; i<128 ; i++) - scantokey[i] = ' '; - - scantokey[42] = K_SHIFT; - scantokey[54] = K_SHIFT; - scantokey[72] = K_UPARROW; - scantokey[103] = K_UPARROW; - scantokey[80] = K_DOWNARROW; - scantokey[108] = K_DOWNARROW; - scantokey[75] = K_LEFTARROW; - scantokey[105] = K_LEFTARROW; - scantokey[77] = K_RIGHTARROW; - scantokey[106] = K_RIGHTARROW; - scantokey[29] = K_CTRL; - scantokey[97] = K_CTRL; - scantokey[56] = K_ALT; - scantokey[100] = K_ALT; -// scantokey[58] = JK_CAPS; -// scantokey[69] = JK_NUM_LOCK; - scantokey[71] = K_HOME; - scantokey[73] = K_PGUP; - scantokey[79] = K_END; - scantokey[81] = K_PGDN; - scantokey[82] = K_INS; - scantokey[83] = K_DEL; - scantokey[1 ] = K_ESCAPE; - scantokey[28] = K_ENTER; - scantokey[15] = K_TAB; - scantokey[14] = K_BACKSPACE; - scantokey[119] = K_PAUSE; - scantokey[57] = ' '; - - scantokey[102] = K_HOME; - scantokey[104] = K_PGUP; - scantokey[107] = K_END; - scantokey[109] = K_PGDN; - scantokey[110] = K_INS; - scantokey[111] = K_DEL; - - 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[41] = '`'; - scantokey[26] = '['; - scantokey[27] = ']'; - scantokey[39] = ';'; - scantokey[40] = '\''; - scantokey[51] = ','; - scantokey[52] = '.'; - scantokey[53] = '/'; - scantokey[43] = '\\'; - - 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[87] = K_F11; - scantokey[88] = K_F12; - scantokey[30] = 'a'; - scantokey[48] = 'b'; - scantokey[46] = 'c'; - scantokey[32] = 'd'; - scantokey[18] = 'e'; - scantokey[33] = 'f'; - scantokey[34] = 'g'; - scantokey[35] = 'h'; - scantokey[23] = 'i'; - scantokey[36] = 'j'; - scantokey[37] = 'k'; - scantokey[38] = 'l'; - scantokey[50] = 'm'; - scantokey[49] = 'n'; - scantokey[24] = 'o'; - scantokey[25] = 'p'; - scantokey[16] = 'q'; - scantokey[19] = 'r'; - scantokey[31] = 's'; - scantokey[20] = 't'; - scantokey[22] = 'u'; - scantokey[47] = 'v'; - scantokey[17] = 'w'; - scantokey[45] = 'x'; - scantokey[21] = 'y'; - scantokey[44] = 'z'; - - scantokey[78] = '+'; - scantokey[74] = '-'; - - if (keyboard_init()) - Sys_Error("keyboard_init() failed"); - keyboard_seteventhandler(keyhandler); - } -} - -#define NUM_RESOLUTIONS 3 - -static resolutions[NUM_RESOLUTIONS][3]={ - { 512, 384, GR_RESOLUTION_512x384 }, - { 640, 400, GR_RESOLUTION_640x400 }, - { 640, 480, GR_RESOLUTION_640x480 } -}; - -int findres(int *width, int *height) -{ - int i; - - for(i=0;i height) - vid.conheight = height; - if (vid.conwidth > width) - vid.conwidth = width; - vid.width = vid.conwidth; - vid.height = vid.conheight; - - vid.aspect = ((float)vid.height / (float)vid.width) * - (320.0 / 240.0); - vid.numpages = 2; - - InitSig(); // trap evil signals - - GL_Init(); - - snprintf (gldir, sizeof(gldir), "%s/glquake", com_gamedir); - Sys_mkdir (gldir); - - VID_SetPalette(palette); - - // Check for 3DFX Extensions and initialize them. - VID_Init8bitPalette(); - - Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height); - - vid.recalc_refdef = 1; // force a surface cache flush -} - -void Sys_SendKeyEvents(void) -{ - if (UseKeyboard) - while (keyboard_update()); -} - -void Force_CenterView_f (void) -{ - cl.viewangles[PITCH] = 0; -} - - -void mousehandler(int buttonstate, int dx, int dy) -{ - mouse_buttonstate = buttonstate; - mx += dx; - my += dy; -} - -void IN_Init(void) -{ - - int mtype; - char *mousedev; - int mouserate; - - if (UseMouse) - { - - Cvar_RegisterVariable (&mouse_button_commands[0]); - Cvar_RegisterVariable (&mouse_button_commands[1]); - Cvar_RegisterVariable (&mouse_button_commands[2]); - Cmd_AddCommand ("force_centerview", Force_CenterView_f); - - 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]; - - mouserate = 1200; - 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(mousehandler); - - } - -} - -void IN_Shutdown(void) -{ - if (UseMouse) - mouse_close(); -} - -/* -=========== -IN_Commands -=========== -*/ -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; - } -} - -/* -=========== -IN_Move -=========== -*/ -void IN_MouseMove (usercmd_t *cmd) -{ - if (!UseMouse) - return; - - // poll mouse values - while (mouse_update()) - ; - -/* if (m_filter.value) - CVAR_FIXME */ - if (m_filter->value) - { - mouse_x = (mx + old_mouse_x) * 0.5; - mouse_y = (my + old_mouse_y) * 0.5; - } - else - { - mouse_x = mx; - mouse_y = my; - } - old_mouse_x = mx; - old_mouse_y = my; - mx = my = 0; // clear for next update - -/* mouse_x *= sensitivity.value; - CVAR_FIXME */ - mouse_x *= sensitivity->value; -/* mouse_y *= sensitivity.value; - CVAR_FIXME */ - mouse_y *= sensitivity->value; - -// add mouse X/Y movement to cmd -/* if ( (in_strafe.state & 1) || (lookstrafe.value && (in_mlook.state & 1) )) - CVAR_FIXME */ - if ( (in_strafe.state & 1) || (lookstrafe->value && freelook)) -/* cmd->sidemove += m_side.value * mouse_x; - CVAR_FIXME */ - cmd->sidemove += m_side->value * mouse_x; - else -/* cl.viewangles[YAW] -= m_yaw.value * mouse_x; - CVAR_FIXME */ - cl.viewangles[YAW] -= m_yaw->value * mouse_x; - - if (in_freelook) - V_StopPitchDrift (); - - if ( in_freelook && !(in_strafe.state & 1)) - { -/* cl.viewangles[PITCH] += m_pitch.value * mouse_y; - CVAR_FIXME */ - cl.viewangles[PITCH] += m_pitch->value * mouse_y; - if (cl.viewangles[PITCH] > 80) - cl.viewangles[PITCH] = 80; - if (cl.viewangles[PITCH] < -70) - cl.viewangles[PITCH] = -70; - } - else - { - if ((in_strafe.state & 1) && noclip_anglehack) -/* cmd->upmove -= m_forward.value * mouse_y; - CVAR_FIXME */ - cmd->upmove -= m_forward->value * mouse_y; - else -/* cmd->forwardmove -= m_forward.value * mouse_y; - CVAR_FIXME */ - cmd->forwardmove -= m_forward->value * mouse_y; - } -} - -void IN_Move (usercmd_t *cmd) -{ - IN_MouseMove(cmd); -} - -void VID_UnlockBuffer() {} -void VID_LockBuffer() {} - diff --git a/source/gl_vidlinux_svga.c b/source/gl_vidlinux_svga.c deleted file mode 100644 index ff372e6..0000000 --- a/source/gl_vidlinux_svga.c +++ /dev/null @@ -1,907 +0,0 @@ -/* - gl_vidlinux_svga.c - - (description) - - Copyright (C) 1996-1997 Id Software, Inc. - - 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 -#endif -#include -#include -#include -#include -#include -#include -#include - -#include - -/*#include "vga.h" */ -#include "vgakeyboard.h" -#include "vgamouse.h" - -#include "quakedef.h" -#include "GL/fxmesa.h" - -#define WARP_WIDTH 320 -#define WARP_HEIGHT 200 - -static fxMesaContext fc = NULL; -#define stringify(m) { #m, m } - -unsigned short d_8to16table[256]; -unsigned d_8to24table[256]; -unsigned char d_15to8table[65536]; - -int num_shades=32; - -struct -{ - char *name; - int num; -} mice[] = -{ - stringify(MOUSE_MICROSOFT), - stringify(MOUSE_MOUSESYSTEMS), - stringify(MOUSE_MMSERIES), - stringify(MOUSE_LOGITECH), - stringify(MOUSE_BUSMOUSE), - stringify(MOUSE_PS2), -}; - -static unsigned char scantokey[128]; - -int num_mice = sizeof (mice) / sizeof(mice[0]); - -int d_con_indirect = 0; - -int svgalib_inited=0; -int UseMouse = 1; -int UseKeyboard = 1; - -int mouserate = MOUSE_DEFAULTSAMPLERATE; - -/* cvar_t vid_mode = {"vid_mode","5",false}; - CVAR_FIXME */ -cvar_t *vid_mode; -/* cvar_t vid_redrawfull = {"vid_redrawfull","0",false}; - CVAR_FIXME */ -cvar_t *vid_redrawfull; -/* cvar_t vid_waitforrefresh = {"vid_waitforrefresh","0",true}; - CVAR_FIXME */ -cvar_t *vid_waitforrefresh; - -char *framebuffer_ptr; - -cvar_t mouse_button_commands[3] = -{ - {"mouse1","+attack"}, - {"mouse2","+strafe"}, - {"mouse3","+forward"}, -}; - -int mouse_buttons; -int mouse_buttonstate; -int mouse_oldbuttonstate; -float mouse_x, mouse_y; -float old_mouse_x, old_mouse_y; -int mx, my; - -/* cvar_t _windowed_mouse = {"_windowed_mouse", "1", true}; - CVAR_FIXME */ -cvar_t *_windowed_mouse; -/* cvar_t m_filter = {"m_filter","0"}; - CVAR_FIXME */ -cvar_t *m_filter; - -int scr_width, scr_height; - -/*-----------------------------------------------------------------------*/ - -//int texture_mode = GL_NEAREST; -//int texture_mode = GL_NEAREST_MIPMAP_NEAREST; -//int texture_mode = GL_NEAREST_MIPMAP_LINEAR; -int texture_mode = GL_LINEAR; -//int texture_mode = GL_LINEAR_MIPMAP_NEAREST; -//int texture_mode = GL_LINEAR_MIPMAP_LINEAR; - -int texture_extension_number = 1; - -float gldepthmin, gldepthmax; - -/* cvar_t gl_ztrick = {"gl_ztrick","1"}; - CVAR_FIXME */ -cvar_t *gl_ztrick; - -const char *gl_vendor; -const char *gl_renderer; -const char *gl_version; -const char *gl_extensions; - -qboolean is8bit = false; -qboolean isPermedia = false; -qboolean gl_mtexable = false; - -/*-----------------------------------------------------------------------*/ -void D_BeginDirectRect (int x, int y, byte *pbitmap, int width, int height) -{ -} - -void D_EndDirectRect (int x, int y, int width, int height) -{ -} - -/* -================= -VID_Gamma_f - -Keybinding command -================= -*/ -void VID_Gamma_f (void) -{ - float gamma, f, inf; - unsigned char palette[768]; - int i; - - if (Cmd_Argc () == 2) - { - gamma = Q_atof (Cmd_Argv(1)); - - for (i=0 ; i<768 ; i++) - { - f = pow ( (host_basepal[i]+1)/256.0 , gamma ); - inf = f*255 + 0.5; - if (inf < 0) - inf = 0; - if (inf > 255) - inf = 255; - palette[i] = inf; - } - - VID_SetPalette (palette); - - vid.recalc_refdef = 1; // force a surface cache flush - } -} - -int matchmouse(int mouse, char *name) -{ - int i; - for (i=0 ; i> 2)+4; - b = ((i & 0x7C00) >> 7)+4; - pal = (unsigned char *)d_8to24table; - for (v=0,k=0,bestdist=10000.0; v<256; v++,pal+=4) { - r1 = (int)r - (int)pal[0]; - g1 = (int)g - (int)pal[1]; - b1 = (int)b - (int)pal[2]; - dist = sqrt(((r1*r1)+(g1*g1)+(b1*b1))); - if (dist < bestdist) { - k=v; - bestdist = dist; - } - } - d_15to8table[i]=k; - } - snprintf (s, sizeof(s), "%s/glquake", com_gamedir); - Sys_mkdir (s); - snprintf (s, sizeof(s), "%s/glquake/15to8.pal", com_gamedir); - if ((f = fopen(s, "wb")) != NULL) { - fwrite(d_15to8table, 1<<15, 1, f); - fclose(f); - } - } -} - -/* -=============== -GL_Init -=============== -*/ -void GL_Init (void) -{ - gl_vendor = glGetString (GL_VENDOR); - Con_Printf ("GL_VENDOR: %s\n", gl_vendor); - gl_renderer = glGetString (GL_RENDERER); - Con_Printf ("GL_RENDERER: %s\n", gl_renderer); - - gl_version = glGetString (GL_VERSION); - Con_Printf ("GL_VERSION: %s\n", gl_version); - gl_extensions = glGetString (GL_EXTENSIONS); - Con_Printf ("GL_EXTENSIONS: %s\n", gl_extensions); - -// Con_Printf ("%s %s\n", gl_renderer, gl_version); - - glClearColor (1,0,0,0); - glCullFace(GL_FRONT); - glEnable(GL_TEXTURE_2D); - - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GREATER, 0.666); - - glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); - glShadeModel (GL_FLAT); - - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - -// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); -} - -/* -================= -GL_BeginRendering - -================= -*/ -void GL_BeginRendering (int *x, int *y, int *width, int *height) -{ -/* extern cvar_t gl_clear; - CVAR_FIXME */ - extern cvar_t *gl_clear; - - *x = *y = 0; - *width = scr_width; - *height = scr_height; - -// if (!wglMakeCurrent( maindc, baseRC )) -// Sys_Error ("wglMakeCurrent failed"); - -// glViewport (*x, *y, *width, *height); -} - - -void GL_EndRendering (void) -{ - glFlush(); - fxMesaSwapBuffers(); -} - -void Init_KBD(void) -{ - int i; - - if (COM_CheckParm("-nokbd")) UseKeyboard = 0; - - if (UseKeyboard) - { - 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] = '*'; //keypad - scantokey[ 56] = K_ALT; //left - scantokey[ 57] = ' '; - // 58 caps lock - 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; - // 69 numlock - // 70 scrollock - scantokey[ 71] = K_HOME; - scantokey[ 72] = K_UPARROW; - scantokey[ 73] = K_PGUP; - scantokey[ 74] = '-'; - scantokey[ 75] = K_LEFTARROW; - scantokey[ 76] = '5'; - scantokey[ 77] = K_RIGHTARROW; - scantokey[ 79] = K_END; - scantokey[ 78] = '+'; - scantokey[ 80] = K_DOWNARROW; - scantokey[ 81] = K_PGDN; - scantokey[ 82] = K_INS; - scantokey[ 83] = K_DEL; - // 84 to 86 not used - scantokey[ 87] = K_F11; - scantokey[ 88] = K_F12; - // 89 to 95 not used - scantokey[ 96] = K_ENTER; //keypad enter - scantokey[ 97] = K_CTRL; //right - scantokey[ 98] = '/'; - scantokey[ 99] = K_F12; // print screen, bind to screenshot by default - 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); - } -} - -#define NUM_RESOLUTIONS 3 - -static resolutions[NUM_RESOLUTIONS][3]={ - { 512, 384, GR_RESOLUTION_512x384 }, - { 640, 400, GR_RESOLUTION_640x400 }, - { 640, 480, GR_RESOLUTION_640x480 } -}; - -int findres(int *width, int *height) -{ - int i; - - for(i=0;i height) - vid.conheight = height; - if (vid.conwidth > width) - vid.conwidth = width; - vid.width = vid.conwidth; - vid.height = vid.conheight; - - vid.aspect = ((float)vid.height / (float)vid.width) * - (320.0 / 240.0); - vid.numpages = 2; - - InitSig(); // trap evil signals - - GL_Init(); - - snprintf (gldir, sizeof(gldir), "%s/glquake", com_gamedir); - Sys_mkdir (gldir); - - VID_SetPalette(palette); - - // Check for 3DFX Extensions and initialize them. - VID_Init8bitPalette(); - - Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height); - - vid.recalc_refdef = 1; // force a surface cache flush -} - -void Sys_SendKeyEvents(void) -{ - if (UseKeyboard) - while (keyboard_update()); -} - -void Force_CenterView_f (void) -{ - cl.viewangles[PITCH] = 0; -} - - -void mousehandler(int buttonstate, int dx, int dy) -{ - mouse_buttonstate = buttonstate; - mx += dx; - my += dy; -} - -void IN_Init(void) -{ - - int mtype; - char *mousedev; - int mouserate; - - if (UseMouse) - { - - Cvar_RegisterVariable (&mouse_button_commands[0]); - Cvar_RegisterVariable (&mouse_button_commands[1]); - Cvar_RegisterVariable (&mouse_button_commands[2]); - Cmd_AddCommand ("force_centerview", Force_CenterView_f); - - 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]; - - mouserate = 1200; - 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(mousehandler); - - } - -} - -void IN_Shutdown(void) -{ - if (UseMouse) - mouse_close(); -} - -/* -=========== -IN_Commands -=========== -*/ -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; - } -} - -/* -=========== -IN_Move -=========== -*/ -void IN_MouseMove (usercmd_t *cmd) -{ - if (!UseMouse) - return; - - // poll mouse values - while (mouse_update()) - ; - -/* if (m_filter.value) - CVAR_FIXME */ - if (m_filter->value) - { - mouse_x = (mx + old_mouse_x) * 0.5; - mouse_y = (my + old_mouse_y) * 0.5; - } - else - { - mouse_x = mx; - mouse_y = my; - } - old_mouse_x = mx; - old_mouse_y = my; - mx = my = 0; // clear for next update - -/* mouse_x *= sensitivity.value; - CVAR_FIXME */ - mouse_x *= sensitivity->value; -/* mouse_y *= sensitivity.value; - CVAR_FIXME */ - mouse_y *= sensitivity->value; - -// add mouse X/Y movement to cmd -/* if ( (in_strafe.state & 1) || (lookstrafe.value && (in_mlook.state & 1) )) - CVAR_FIXME */ - if ( (in_strafe.state & 1) || (lookstrafe->value && freelook )) -/* cmd->sidemove += m_side.value * mouse_x; - CVAR_FIXME */ - cmd->sidemove += m_side->value * mouse_x; - else -/* cl.viewangles[YAW] -= m_yaw.value * mouse_x; - CVAR_FIXME */ - cl.viewangles[YAW] -= m_yaw->value * mouse_x; - - if (in_freelook) - V_StopPitchDrift (); - - if ( in_freelook && !(in_strafe.state & 1)) - { -/* cl.viewangles[PITCH] += m_pitch.value * mouse_y; - CVAR_FIXME */ - cl.viewangles[PITCH] += m_pitch->value * mouse_y; - if (cl.viewangles[PITCH] > 80) - cl.viewangles[PITCH] = 80; - if (cl.viewangles[PITCH] < -70) - cl.viewangles[PITCH] = -70; - } - else - { - if ((in_strafe.state & 1) && noclip_anglehack) -/* cmd->upmove -= m_forward.value * mouse_y; - CVAR_FIXME */ - cmd->upmove -= m_forward->value * mouse_y; - else -/* cmd->forwardmove -= m_forward.value * mouse_y; - CVAR_FIXME */ - cmd->forwardmove -= m_forward->value * mouse_y; - } -} - -void IN_Move (usercmd_t *cmd) -{ - IN_MouseMove(cmd); -} - - -void VID_LockBuffer (void) {} -void VID_UnlockBuffer (void) {} - diff --git a/source/gl_vidlinux_x11.c b/source/gl_vidlinux_x11.c deleted file mode 100644 index 81d373c..0000000 --- a/source/gl_vidlinux_x11.c +++ /dev/null @@ -1,926 +0,0 @@ -/* - gl_vidlinux_x11.c - - (description) - - Copyright (C) 1996-1997 Id Software, Inc. - - 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 -#endif -#include -#include -#include -#include -#include -#include -#include -#include - -//#include -#include -#include -#include -#include - -#include "GL/gl.h" -#include "GL/glx.h" - -#include "quakedef.h" - -#define WARP_WIDTH 320 -#define WARP_HEIGHT 200 - -static Display *dpy = NULL; -static Window win; -static GLXContext ctx = NULL; - -unsigned short d_8to16table[256]; -unsigned int d_8to24table[256]; -unsigned char d_15to8table[65536]; - -static qboolean usedga = false; - -#define stringify(m) { #m, m } - -/* cvar_t vid_mode = {"vid_mode","0",false}; - CVAR_FIXME */ -cvar_t *vid_mode; - -cvar_t mouse_button_commands[3] = -{ - {"mouse1","+attack"}, - {"mouse2","+strafe"}, - {"mouse3","+forward"}, -}; - -static int mouse_buttons=3; -static int mouse_buttonstate; -static int mouse_oldbuttonstate; -static float mouse_x, mouse_y; -static float p_mouse_x, p_mouse_y; -static float old_mouse_x, old_mouse_y; - -/* cvar_t _windowed_mouse = {"_windowed_mouse", "1", true}; - CVAR_FIXME */ -cvar_t *_windowed_mouse; -/* cvar_t m_filter = {"m_filter","0"}; - CVAR_FIXME */ -cvar_t *m_filter; -static float old_windowed_mouse; - -static int scr_width, scr_height; - -#define KEY_MASK (KeyPressMask | KeyReleaseMask) -#define MOUSE_MASK (ButtonPressMask | ButtonReleaseMask | \ - PointerMotionMask | ButtonMotionMask) - -/*-----------------------------------------------------------------------*/ - -//int texture_mode = GL_NEAREST; -//int texture_mode = GL_NEAREST_MIPMAP_NEAREST; -//int texture_mode = GL_NEAREST_MIPMAP_LINEAR; -int texture_mode = GL_LINEAR; -//int texture_mode = GL_LINEAR_MIPMAP_NEAREST; -//int texture_mode = GL_LINEAR_MIPMAP_LINEAR; - -int texture_extension_number = 1; - -float gldepthmin, gldepthmax; - -/* cvar_t gl_ztrick = {"gl_ztrick","1"}; - CVAR_FIXME */ -cvar_t *gl_ztrick; - -const char *gl_vendor; -const char *gl_renderer; -const char *gl_version; -const char *gl_extensions; - -qboolean is8bit = false; -qboolean isPermedia = false; -qboolean gl_mtexable = false; - -/*-----------------------------------------------------------------------*/ -void D_BeginDirectRect (int x, int y, byte *pbitmap, int width, int height) -{ -} - -void D_EndDirectRect (int x, int y, int width, int height) -{ -} - -/* -================= -VID_Gamma_f - -Keybinding command -================= -*/ -void VID_Gamma_f (void) -{ - float gamma, f, inf; - unsigned char palette[768]; - int i; - - if (Cmd_Argc () == 2) - { - gamma = Q_atof (Cmd_Argv(1)); - - for (i=0 ; i<768 ; i++) - { - f = pow ( (host_basepal[i]+1)/256.0 , gamma ); - inf = f*255 + 0.5; - if (inf < 0) - inf = 0; - if (inf > 255) - inf = 255; - palette[i] = inf; - } - - VID_SetPalette (palette); - - vid.recalc_refdef = 1; // force a surface cache flush - } -} - -void VID_Shutdown(void) -{ - if (!ctx) - return; - - XUngrabPointer(dpy,CurrentTime); - XUngrabKeyboard(dpy,CurrentTime); - - glXDestroyContext(dpy,ctx); - -#ifdef USE_DGA - if (usedga) - XF86DGADirectVideo(dpy,DefaultScreen(dpy),0); -#endif -} - -int XLateKey(XKeyEvent *ev) -{ - - int key; - char buf[64]; - KeySym keysym; - - key = 0; - - XLookupString(ev, buf, sizeof buf, &keysym, 0); - - switch(keysym) - { - case XK_KP_Page_Up: - case XK_Page_Up: key = K_PGUP; break; - - case XK_KP_Page_Down: - case XK_Page_Down: key = K_PGDN; break; - - case XK_KP_Home: - case XK_Home: key = K_HOME; break; - - case XK_KP_End: - case XK_End: key = K_END; break; - - case XK_KP_Left: - case XK_Left: key = K_LEFTARROW; break; - - case XK_KP_Right: - case XK_Right: key = K_RIGHTARROW; break; - - case XK_KP_Down: - case XK_Down: key = K_DOWNARROW; break; - - case XK_KP_Up: - case XK_Up: key = K_UPARROW; break; - - case XK_Escape: key = K_ESCAPE; break; - - case XK_KP_Enter: - case XK_Return: key = K_ENTER; break; - - case XK_Tab: key = K_TAB; break; - - case XK_F1: key = K_F1; break; - - case XK_F2: key = K_F2; break; - - case XK_F3: key = K_F3; break; - - case XK_F4: key = K_F4; break; - - case XK_F5: key = K_F5; break; - - case XK_F6: key = K_F6; break; - - case XK_F7: key = K_F7; break; - - case XK_F8: key = K_F8; break; - - case XK_F9: key = K_F9; break; - - case XK_F10: key = K_F10; break; - - case XK_F11: key = K_F11; break; - - case XK_F12: key = K_F12; break; - - case XK_BackSpace: key = K_BACKSPACE; break; - - case XK_KP_Delete: - case XK_Delete: key = K_DEL; break; - - case XK_Pause: key = K_PAUSE; break; - - case XK_Shift_L: - case XK_Shift_R: key = K_SHIFT; break; - - case XK_Execute: - case XK_Control_L: - case XK_Control_R: key = K_CTRL; break; - - case XK_Alt_L: - case XK_Meta_L: - case XK_Alt_R: - case XK_Meta_R: key = K_ALT; break; - - case XK_KP_Begin: key = K_AUX30; break; - - case XK_Insert: - case XK_KP_Insert: key = K_INS; break; - - case XK_KP_Multiply: key = '*'; break; - case XK_KP_Add: key = '+'; break; - case XK_KP_Subtract: key = '-'; break; - case XK_KP_Divide: key = '/'; break; - -#if 0 - case 0x021: key = '1';break;/* [!] */ - case 0x040: key = '2';break;/* [@] */ - case 0x023: key = '3';break;/* [#] */ - case 0x024: key = '4';break;/* [$] */ - case 0x025: key = '5';break;/* [%] */ - case 0x05e: key = '6';break;/* [^] */ - case 0x026: key = '7';break;/* [&] */ - case 0x02a: key = '8';break;/* [*] */ - case 0x028: key = '9';;break;/* [(] */ - case 0x029: key = '0';break;/* [)] */ - case 0x05f: key = '-';break;/* [_] */ - case 0x02b: key = '=';break;/* [+] */ - case 0x07c: key = '\'';break;/* [|] */ - case 0x07d: key = '[';break;/* [}] */ - case 0x07b: key = ']';break;/* [{] */ - case 0x022: key = '\'';break;/* ["] */ - case 0x03a: key = ';';break;/* [:] */ - case 0x03f: key = '/';break;/* [?] */ - case 0x03e: key = '.';break;/* [>] */ - case 0x03c: key = ',';break;/* [<] */ -#endif - - default: - key = *(unsigned char*)buf; - if (key >= 'A' && key <= 'Z') - key = key - 'A' + 'a'; -// fprintf(stdout, "case 0x0%x: key = ___;break;/* [%c] */\n", keysym); - break; - } - - return key; -} - -struct -{ - int key; - int down; -} keyq[64]; -int keyq_head=0; -int keyq_tail=0; - -int config_notify=0; -int config_notify_width; -int config_notify_height; - -qboolean Keyboard_Update(void) -{ - XEvent x_event; - - if(!XCheckMaskEvent(dpy,KEY_MASK,&x_event)) - return false; - - switch(x_event.type) { - case KeyPress: - keyq[keyq_head].key = XLateKey(&x_event.xkey); - keyq[keyq_head].down = true; - keyq_head = (keyq_head + 1) & 63; - break; - case KeyRelease: - keyq[keyq_head].key = XLateKey(&x_event.xkey); - keyq[keyq_head].down = false; - keyq_head = (keyq_head + 1) & 63; - break; - } - - return true; -} - -qboolean Mouse_Update(void) -{ - XEvent x_event; - int b; - - if(!XCheckMaskEvent(dpy,MOUSE_MASK,&x_event)) - return false; - - switch(x_event.type) { - case MotionNotify: - if (usedga) { - mouse_x += x_event.xmotion.x_root; - mouse_y += x_event.xmotion.y_root; -/* } else if (_windowed_mouse.value) { - CVAR_FIXME */ - } else if (_windowed_mouse->value) { - mouse_x += (float) ((int)x_event.xmotion.x - (int)(scr_width/2)); - mouse_y += (float) ((int)x_event.xmotion.y - (int)(scr_height/2)); - - /* move the mouse to the window center again */ - XSelectInput(dpy,win, (KEY_MASK | MOUSE_MASK) & ~PointerMotionMask); - XWarpPointer(dpy,None,win,0,0,0,0, (scr_width/2),(scr_height/2)); - XSelectInput(dpy,win, KEY_MASK | MOUSE_MASK); - } else { - mouse_x = (float) (x_event.xmotion.x-p_mouse_x); - mouse_y = (float) (x_event.xmotion.y-p_mouse_y); - p_mouse_x=x_event.xmotion.x; - p_mouse_y=x_event.xmotion.y; - } - break; - - case ButtonPress: - b=-1; - if (x_event.xbutton.button == 1) - b = 0; - else if (x_event.xbutton.button == 2) - b = 2; - else if (x_event.xbutton.button == 3) - b = 1; - if (b>=0) - mouse_buttonstate |= 1<=0) - mouse_buttonstate &= ~(1<value) { -/* old_windowed_mouse = _windowed_mouse.value; - CVAR_FIXME */ - old_windowed_mouse = _windowed_mouse->value; - -/* if (!_windowed_mouse.value) { - CVAR_FIXME */ - if (!_windowed_mouse->value) { - /* ungrab the pointer */ - Con_Printf("Releasing mouse.\n"); - - XUngrabPointer(dpy,CurrentTime); - XUngrabKeyboard(dpy,CurrentTime); - } else { - /* grab the pointer */ - Con_Printf("Grabbing mouse.\n"); - - XGrabPointer(dpy,win,False,MOUSE_MASK,GrabModeAsync, - GrabModeAsync,win,None,CurrentTime); - XWarpPointer(dpy,None,win, 0,0,0,0, scr_width/2, scr_height/2); - XGrabKeyboard(dpy,win, - False, - GrabModeAsync,GrabModeAsync, - CurrentTime); - - //XSync(dpy,True); - } - } - return true; -} - -void signal_handler(int sig) -{ - printf("Received signal %d, exiting...\n", sig); - VID_Shutdown(); - exit(0); -} - -void InitSig(void) -{ - signal(SIGHUP, signal_handler); - signal(SIGQUIT, signal_handler); - signal(SIGILL, signal_handler); - signal(SIGTRAP, signal_handler); - signal(SIGIOT, signal_handler); - signal(SIGBUS, signal_handler); - signal(SIGFPE, signal_handler); - signal(SIGSEGV, signal_handler); - signal(SIGTERM, signal_handler); -} - -void VID_ShiftPalette(unsigned char *p) -{ - VID_SetPalette(p); -} - -void VID_SetPalette (unsigned char *palette) -{ - byte *pal; - unsigned short r,g,b; - int v; - int r1,g1,b1; - int k; - unsigned short i; - unsigned *table; - FILE *f; - char s[255]; - float dist, bestdist; - static qboolean palflag = false; - -// -// 8 8 8 encoding -// - pal = palette; - table = d_8to24table; - for (i=0 ; i<256 ; i++) - { - r = pal[0]; - g = pal[1]; - b = pal[2]; - pal += 3; - -// v = (255<<24) + (r<<16) + (g<<8) + (b<<0); -// v = (255<<0) + (r<<8) + (g<<16) + (b<<24); - v = (255<<24) + (r<<0) + (g<<8) + (b<<16); - *table++ = v; - } - d_8to24table[255] &= 0xffffff; // 255 is transparent - - // JACK: 3D distance calcs - k is last closest, l is the distance. - // FIXME: Precalculate this and cache to disk. - if (palflag) - return; - palflag = true; - - COM_FOpenFile("glquake/15to8.pal", &f); - if (f) { - fread(d_15to8table, 1<<15, 1, f); - fclose(f); - } else { - for (i=0; i < (1<<15); i++) { - /* Maps - 000000000000000 - 000000000011111 = Red = 0x1F - 000001111100000 = Blue = 0x03E0 - 111110000000000 = Grn = 0x7C00 - */ - r = ((i & 0x1F) << 3)+4; - g = ((i & 0x03E0) >> 2)+4; - b = ((i & 0x7C00) >> 7)+4; - pal = (unsigned char *)d_8to24table; - for (v=0,k=0,bestdist=10000.0; v<256; v++,pal+=4) { - r1 = (int)r - (int)pal[0]; - g1 = (int)g - (int)pal[1]; - b1 = (int)b - (int)pal[2]; - dist = sqrt(((r1*r1)+(g1*g1)+(b1*b1))); - if (dist < bestdist) { - k=v; - bestdist = dist; - } - } - d_15to8table[i]=k; - } - snprintf (s, sizeof(s), "%s/glquake", com_gamedir); - Sys_mkdir (s); - snprintf(s, sizeof(s), "%s/glquake/15to8.pal", com_gamedir); - if ((f = fopen(s, "wb")) != NULL) { - fwrite(d_15to8table, 1<<15, 1, f); - fclose(f); - } - } -} - -/* -=============== -GL_Init -=============== -*/ -void GL_Init (void) -{ - gl_vendor = glGetString (GL_VENDOR); - Con_Printf ("GL_VENDOR: %s\n", gl_vendor); - gl_renderer = glGetString (GL_RENDERER); - Con_Printf ("GL_RENDERER: %s\n", gl_renderer); - - gl_version = glGetString (GL_VERSION); - Con_Printf ("GL_VERSION: %s\n", gl_version); - gl_extensions = glGetString (GL_EXTENSIONS); - Con_Printf ("GL_EXTENSIONS: %s\n", gl_extensions); - -// Con_Printf ("%s %s\n", gl_renderer, gl_version); - - glClearColor (1,0,0,0); - glCullFace(GL_FRONT); - glEnable(GL_TEXTURE_2D); - - glEnable(GL_ALPHA_TEST); - glAlphaFunc(GL_GREATER, 0.666); - - glPolygonMode (GL_FRONT_AND_BACK, GL_FILL); - glShadeModel (GL_FLAT); - - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); - glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); - - glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - -// glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); - glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); -} - -/* -================= -GL_BeginRendering - -================= -*/ -void GL_BeginRendering (int *x, int *y, int *width, int *height) -{ -/* extern cvar_t gl_clear; - CVAR_FIXME */ - extern cvar_t *gl_clear; - - *x = *y = 0; - *width = scr_width; - *height = scr_height; - -// if (!wglMakeCurrent( maindc, baseRC )) -// Sys_Error ("wglMakeCurrent failed"); - -// glViewport (*x, *y, *width, *height); -} - - -void GL_EndRendering (void) -{ - glFlush(); - glXSwapBuffers(dpy,win); -} - -qboolean VID_Is8bit(void) -{ - return is8bit; -} - -#ifdef GL_EXT_SHARED -void VID_Init8bitPalette() -{ - // Check for 8bit Extensions and initialize them. - int i; - char thePalette[256*3]; - char *oldPalette, *newPalette; - - if (strstr(gl_extensions, "GL_EXT_shared_texture_palette") == NULL) - return; - - Con_SafePrintf("8-bit GL extensions enabled.\n"); - glEnable( GL_SHARED_TEXTURE_PALETTE_EXT ); - oldPalette = (char *) d_8to24table; //d_8to24table3dfx; - newPalette = thePalette; - for (i=0;i<256;i++) { - *newPalette++ = *oldPalette++; - *newPalette++ = *oldPalette++; - *newPalette++ = *oldPalette++; - oldPalette++; - } - glColorTableEXT(GL_SHARED_TEXTURE_PALETTE_EXT, GL_RGB, 256, GL_RGB, GL_UNSIGNED_BYTE, (void *) thePalette); - is8bit = true; -} - -#else -extern void gl3DfxSetPaletteEXT(GLuint *pal); - -void VID_Init8bitPalette(void) -{ - // Check for 8bit Extensions and initialize them. - int i; - GLubyte table[256][4]; - char *oldpal; - - if (strstr(gl_extensions, "3DFX_set_global_palette") == NULL) - return; - - Con_SafePrintf("8-bit GL extensions enabled.\n"); - glEnable( GL_SHARED_TEXTURE_PALETTE_EXT ); - oldpal = (char *) d_8to24table; //d_8to24table3dfx; - for (i=0;i<256;i++) { - table[i][2] = *oldpal++; - table[i][1] = *oldpal++; - table[i][0] = *oldpal++; - table[i][3] = 255; - oldpal++; - } - gl3DfxSetPaletteEXT((GLuint *)table); - is8bit = true; -} -#endif - -void VID_Init(unsigned char *palette) -{ - int i; - char gldir[MAX_OSPATH]; - int width = 640, height = 480; - int attrib[] = { - GLX_RGBA, - GLX_RED_SIZE, 1, - GLX_GREEN_SIZE, 1, - GLX_BLUE_SIZE, 1, - GLX_DOUBLEBUFFER, - GLX_DEPTH_SIZE, 1, - None }; - int scrnum; - XSetWindowAttributes attr; - unsigned long mask; - Window root; - XVisualInfo *visinfo; - -// S_Init(); - -/* Cvar_RegisterVariable (&vid_mode); - CVAR_FIXME */ - vid_mode = Cvar_Get("vid_mode", "0", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&gl_ztrick); - CVAR_FIXME */ - gl_ztrick = Cvar_Get("gl_ztrick", "1", CVAR_NONE, "None"); - - vid.maxwarpwidth = WARP_WIDTH; - vid.maxwarpheight = WARP_HEIGHT; - vid.colormap = host_colormap; - vid.fullbright = 256 - LittleLong (*((int *)vid.colormap + 2048)); - -// interpret command-line params - -// set vid parameters - - 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 = Q_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 = Q_atoi(com_argv[i+1]); - if (vid.conheight < 200) - vid.conheight = 200; - - if (!(dpy = XOpenDisplay(NULL))) { - fprintf(stderr, "Error couldn't open the X display\n"); - exit(1); - } - - scrnum = DefaultScreen(dpy); - root = RootWindow(dpy, scrnum); - - visinfo=glXChooseVisual(dpy,scrnum,attrib); - if (!visinfo) { - fprintf(stderr, "Error couldn't get an RGB, Double-buffered, Depth visual\n"); - exit(1); - } - - /* window attributes */ - attr.background_pixel=0; - attr.border_pixel=0; - attr.colormap=XCreateColormap(dpy,root,visinfo->visual,AllocNone); - attr.event_mask=KEY_MASK|MOUSE_MASK|VisibilityChangeMask; - mask=CWBackPixel|CWBorderPixel|CWColormap|CWEventMask; - - win=XCreateWindow(dpy,root,0,0,width,height, - 0,visinfo->depth,InputOutput, - visinfo->visual,mask,&attr); - XMapWindow(dpy,win); - - XMoveWindow(dpy,win,0,0); - - XFlush(dpy); - - if (COM_CheckParm("-window")) - putenv("MESA_GLX_FX=window"); - else - putenv("MESA_GLX_FX=fullscreen"); - - ctx = glXCreateContext(dpy,visinfo,NULL,True); - - if (!ctx) { - fprintf(stderr, "Unable to create glX context.\n"); - exit(1); - } - - glXMakeCurrent(dpy,win,ctx); - - scr_width = width; - scr_height = height; - - if (vid.conheight > height) - vid.conheight = height; - if (vid.conwidth > width) - vid.conwidth = width; - vid.width = vid.conwidth; - vid.height = vid.conheight; - - vid.aspect = ((float)vid.height / (float)vid.width) * - (320.0 / 240.0); - vid.numpages = 2; - - InitSig(); // trap evil signals - - GL_Init(); - - snprintf (gldir, sizeof(gldir), "%s/glquake", com_gamedir); - Sys_mkdir (gldir); - - VID_SetPalette(palette); - - // Check for 3DFX Extensions and initialize them. - VID_Init8bitPalette(); - - Con_SafePrintf ("Video mode %dx%d initialized.\n", width, height); - - vid.recalc_refdef = 1; // force a surface cache flush -} - -void Sys_SendKeyEvents(void) -{ - if (dpy) - { - while (Keyboard_Update()) - ; - - while (keyq_head != keyq_tail) - { - Key_Event(keyq[keyq_tail].key, keyq[keyq_tail].down); - keyq_tail = (keyq_tail + 1) & 63; - } - } -} - -void Force_CenterView_f (void) -{ - cl.viewangles[PITCH] = 0; -} - - -void IN_Init(void) -{ -/* Cvar_RegisterVariable (&_windowed_mouse); - CVAR_FIXME */ - _windowed_mouse = Cvar_Get("_windowed_mouse", "0", CVAR_ARCHIVE, "None"); -/* Cvar_RegisterVariable (&m_filter); - CVAR_FIXME */ - m_filter = Cvar_Get("m_filter", "0", CVAR_NONE, "None"); - Cvar_RegisterVariable (&mouse_button_commands[0]); - Cvar_RegisterVariable (&mouse_button_commands[1]); - Cvar_RegisterVariable (&mouse_button_commands[2]); - Cmd_AddCommand ("force_centerview", Force_CenterView_f); -} - -void IN_Shutdown(void) -{ -} - -/* -=========== -IN_Commands -=========== -*/ -void IN_Commands (void) -{ - int i; - - for (i=0 ; ivalue) { - mouse_x = (mouse_x + old_mouse_x) * 0.5; - mouse_y = (mouse_y + old_mouse_y) * 0.5; - } - - old_mouse_x = mouse_x; - old_mouse_y = mouse_y; - -/* mouse_x *= sensitivity.value; - CVAR_FIXME */ - mouse_x *= sensitivity->value; -/* mouse_y *= sensitivity.value; - CVAR_FIXME */ - mouse_y *= sensitivity->value; - -/* if ( (in_strafe.state & 1) || (lookstrafe.value && (in_mlook.state & 1) )) - CVAR_FIXME */ - if ( (in_strafe.state & 1) || (lookstrafe->value && freelook )) -/* cmd->sidemove += m_side.value * mouse_x; - CVAR_FIXME */ - cmd->sidemove += m_side->value * mouse_x; - else -/* cl.viewangles[YAW] -= m_yaw.value * mouse_x; - CVAR_FIXME */ - cl.viewangles[YAW] -= m_yaw->value * mouse_x; - if (freelook) - V_StopPitchDrift (); - - if ( freelook && !(in_strafe.state & 1)) { -/* cl.viewangles[PITCH] += m_pitch.value * mouse_y; - CVAR_FIXME */ - cl.viewangles[PITCH] += m_pitch->value * mouse_y; - if (cl.viewangles[PITCH] > 80) - cl.viewangles[PITCH] = 80; - if (cl.viewangles[PITCH] < -70) - cl.viewangles[PITCH] = -70; - } else { - if ((in_strafe.state & 1) && noclip_anglehack) -/* cmd->upmove -= m_forward.value * mouse_y; - CVAR_FIXME */ - cmd->upmove -= m_forward->value * mouse_y; - else -/* cmd->forwardmove -= m_forward.value * mouse_y; - CVAR_FIXME */ - cmd->forwardmove -= m_forward->value * mouse_y; - } - mouse_x = mouse_y = 0.0; -} - - -void VID_LockBuffer (void) {} -void VID_UnlockBuffer (void) {} - diff --git a/source/r_view.c b/source/r_view.c index c254865..a46debd 100644 --- a/source/r_view.c +++ b/source/r_view.c @@ -683,24 +683,12 @@ Idle swaying */ void V_AddIdle (void) { -/* r_refdef.viewangles[ROLL] += v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value; - CVAR_FIXME */ r_refdef.viewangles[ROLL] += v_idlescale->value * sin(cl.time*v_iroll_cycle->value) * v_iroll_level->value; -/* r_refdef.viewangles[PITCH] += v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value; - CVAR_FIXME */ r_refdef.viewangles[PITCH] += v_idlescale->value * sin(cl.time*v_ipitch_cycle->value) * v_ipitch_level->value; -/* r_refdef.viewangles[YAW] += v_idlescale.value * sin(cl.time*v_iyaw_cycle.value) * v_iyaw_level.value; - CVAR_FIXME */ r_refdef.viewangles[YAW] += v_idlescale->value * sin(cl.time*v_iyaw_cycle->value) * v_iyaw_level->value; -/* cl.viewent.angles[ROLL] -= v_idlescale.value * sin(cl.time*v_iroll_cycle.value) * v_iroll_level.value; - CVAR_FIXME */ cl.viewent.angles[ROLL] -= v_idlescale->value * sin(cl.time*v_iroll_cycle->value) * v_iroll_level->value; -/* cl.viewent.angles[PITCH] -= v_idlescale.value * sin(cl.time*v_ipitch_cycle.value) * v_ipitch_level.value; - CVAR_FIXME */ cl.viewent.angles[PITCH] -= v_idlescale->value * sin(cl.time*v_ipitch_cycle->value) * v_ipitch_level->value; -/* cl.viewent.angles[YAW] -= v_idlescale.value * sin(cl.time*v_iyaw_cycle.value) * v_iyaw_level.value; - CVAR_FIXME */ cl.viewent.angles[YAW] -= v_idlescale->value * sin(cl.time*v_iyaw_cycle->value) * v_iyaw_level->value; } @@ -909,7 +897,7 @@ void V_RenderView (void) { // if (cl.simangles[ROLL]) // Sys_Error ("cl.simangles[ROLL]"); // DEBUG -cl.simangles[ROLL] = 0; // FIXME @@@ + cl.simangles[ROLL] = 0; // FIXME @@@ if (cls.state != ca_active) return; @@ -930,8 +918,6 @@ cl.simangles[ROLL] = 0; // FIXME @@@ R_PushDlights (); R_RenderView (); -/* if (crosshair.value) - CVAR_FIXME */ // if (crosshair->value) // Draw_Crosshair (); } @@ -949,82 +935,38 @@ void V_Init (void) Cmd_AddCommand ("bf", V_BonusFlash_f); Cmd_AddCommand ("centerview", V_StartPitchDrift); -/* Cvar_RegisterVariable (&v_centermove); - CVAR_FIXME */ v_centermove = Cvar_Get("v_centermove", "0.15", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_centerspeed); - CVAR_FIXME */ v_centerspeed = Cvar_Get("v_centerspeed", "500", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_iyaw_cycle); - CVAR_FIXME */ v_iyaw_cycle = Cvar_Get("v_iyaw_cycle", "2", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_iroll_cycle); - CVAR_FIXME */ v_iroll_cycle = Cvar_Get("v_iroll_cycle", "0.5", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_ipitch_cycle); - CVAR_FIXME */ v_ipitch_cycle = Cvar_Get("v_ipitch_cycle", "1", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_iyaw_level); - CVAR_FIXME */ v_iyaw_level = Cvar_Get("v_iyaw_level", "0.3", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_iroll_level); - CVAR_FIXME */ v_iroll_level = Cvar_Get("v_iroll_level", "0.1", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_ipitch_level); - CVAR_FIXME */ v_ipitch_level = Cvar_Get("v_ipitch_level", "0.3", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_contentblend); - CVAR_FIXME */ v_contentblend = Cvar_Get("v_contentblend", "1", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_idlescale); - CVAR_FIXME */ v_idlescale = Cvar_Get("v_idlescale", "0", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&crosshaircolor); - CVAR_FIXME */ + crosshaircolor = Cvar_Get("crosshaircolor", "79", CVAR_ARCHIVE, "None"); -/* Cvar_RegisterVariable (&crosshair); - CVAR_FIXME */ crosshair = Cvar_Get("crosshair", "0", CVAR_ARCHIVE, "None"); -/* Cvar_RegisterVariable (&cl_crossx); - CVAR_FIXME */ cl_crossx = Cvar_Get("cl_crossx", "0", CVAR_ARCHIVE, "None"); -/* Cvar_RegisterVariable (&cl_crossy); - CVAR_FIXME */ cl_crossy = Cvar_Get("cl_crossy", "0", CVAR_ARCHIVE, "None"); -/* Cvar_RegisterVariable (&cl_rollspeed); - CVAR_FIXME */ cl_rollspeed = Cvar_Get("cl_rollspeed", "200", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&cl_rollangle); - CVAR_FIXME */ cl_rollangle = Cvar_Get("cl_rollangle", "2.0", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&cl_bob); - CVAR_FIXME */ + cl_bob = Cvar_Get("cl_bob", "0.02", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&cl_bobcycle); - CVAR_FIXME */ cl_bobcycle = Cvar_Get("cl_bobcycle", "0.6", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&cl_bobup); - CVAR_FIXME */ cl_bobup = Cvar_Get("cl_bobup", "0.5", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_kicktime); - CVAR_FIXME */ v_kicktime = Cvar_Get("v_kicktime", "0.5", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_kickroll); - CVAR_FIXME */ v_kickroll = Cvar_Get("v_kickroll", "0.6", CVAR_NONE, "None"); -/* Cvar_RegisterVariable (&v_kickpitch); - CVAR_FIXME */ v_kickpitch = Cvar_Get("v_kickpitch", "0.6", CVAR_NONE, "None"); gl_cshiftpercent = Cvar_Get("gl_cshiftpercent", "100", CVAR_NONE, "None"); BuildGammaTable (1.0); // no gamma yet -/* Cvar_RegisterVariable (&v_gamma); - CVAR_FIXME */ v_gamma = Cvar_Get("gamma", "1", CVAR_ARCHIVE, "None"); } diff --git a/source/surf8.S b/source/surf8.S index a72216c..50a59c0 100644 --- a/source/surf8.S +++ b/source/surf8.S @@ -1,7 +1,7 @@ /* surf8.S - (description) + Intel x86 assembly-language 8bpp surface block drawing code Copyright (C) 1996-1997 Id Software, Inc. @@ -25,12 +25,11 @@ $Id$ */ -// surf8.s -// x86 assembly-language 8 bpp surface block drawing code. #ifdef HAVE_CONFIG_H -# include +# include "config.h" #endif + #include "asm_i386.h" #include "quakeasm.h" #include "asm_draw.h"