A few of Mercury's local changes and things I've done to stable.. We're

attempting to get a build WITHOUT GL to work again...
This commit is contained in:
Joseph Carter 2000-01-25 05:59:19 +00:00
parent 392ba79ded
commit 8e85621d15
9 changed files with 223 additions and 153 deletions

6
NEWS
View file

@ -1,6 +1,12 @@
NEWS for the QuakeForge project NEWS for the QuakeForge project
------------------------------- -------------------------------
22 Jan 2000 - cl_sbar and cl_hudswap in uquake
The cvars cl_sbar and cl_hudswap noe work in uquake just like they
do in qw-client. In uquake, cl_sbar defaults to 1 to satisfy the
least-surprise principle. Set it to 0 if you want a qw-client like
HUD.
22 Jan 2000 - changes to command line option -game 22 Jan 2000 - changes to command line option -game
You may now specify multiple game directories with -game. If for You may now specify multiple game directories with -game. If for
example you wanted to use the original registered game with MegaTF example you wanted to use the original registered game with MegaTF

View file

@ -76,6 +76,7 @@ void VID_UnlockBuffer (void);
#include "cdaudio.h" #include "cdaudio.h"
#include "glquake.h" #include "glquake.h"
#include "cvars.h"
#ifndef max #ifndef max
#define max(a,b) ((a) > (b) ? (a) : (b)) #define max(a,b) ((a) > (b) ? (a) : (b))

View file

@ -23,6 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#ifndef _CVARS_H #ifndef _CVARS_H
#define _CVARS_H #define _CVARS_H
extert cvar_t gl_flashblend; extern cvar_t gl_flashblend;
#endif _CVARS_H #endif _CVARS_H

View file

@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#define SURFCACHE_SIZE_AT_320X200 600*1024 #define SURFCACHE_SIZE_AT_320X200 600*1024
/*
typedef struct surfcache_s typedef struct surfcache_s
{ {
struct surfcache_s *next; struct surfcache_s *next;
@ -50,7 +49,6 @@ typedef struct surfcache_s
struct texture_s *texture; // checked for animating textures struct texture_s *texture; // checked for animating textures
byte data[4]; // width*height elements byte data[4]; // width*height elements
} surfcache_t; } surfcache_t;
*/
// !!! if this is changed, it must be changed in asm_draw.h too !!! // !!! if this is changed, it must be changed in asm_draw.h too !!!
typedef struct sspan_s typedef struct sspan_s

View file

@ -657,7 +657,7 @@ void VID_Init(unsigned char *palette)
if (QF_XMesaSetFXmode) { if (QF_XMesaSetFXmode) {
#ifdef XMESA #ifdef XMESA
const char *str = getenv("MESA_GLX_FX"); const char *str = getenv("MESA_GLX_FX");
if (*str && *str != 'd') { if (str != NULL && *str != 'f') {
if (tolower(*str) == 'w') { if (tolower(*str) == 'w') {
Cvar_SetValue("vid_glx_fullscreen", 0); Cvar_SetValue("vid_glx_fullscreen", 0);
} else { } else {

View file

@ -117,6 +117,7 @@ void R_TimeRefresh_f (void);
void R_ReadPointFile_f (void); void R_ReadPointFile_f (void);
texture_t *R_TextureAnimation (texture_t *base); texture_t *R_TextureAnimation (texture_t *base);
/*
typedef struct surfcache_s typedef struct surfcache_s
{ {
struct surfcache_s *next; struct surfcache_s *next;
@ -130,6 +131,7 @@ typedef struct surfcache_s
struct texture_s *texture; // checked for animating textures struct texture_s *texture; // checked for animating textures
byte data[4]; // width*height elements byte data[4]; // width*height elements
} surfcache_t; } surfcache_t;
*/
//==================================================== //====================================================

View file

@ -11,8 +11,8 @@ AC_DEFINE_UNQUOTED(VERSION,"$VERSION")
dnl Set to yes for releases dnl Set to yes for releases
RELEASE=no RELEASE=no
dnl At some point this might be set to yes by default dnl Set this to no for Id defaults
NEWSTYLE=no NEWSTYLE=yes
AC_CANONICAL_SYSTEM AC_CANONICAL_SYSTEM
AC_LANG_C AC_LANG_C

View file

@ -1,6 +1,8 @@
/* /*
Copyright (C) 1996-1997 Id Software, Inc. Copyright (C) 1996-1997 Id Software, Inc.
Portions Copyright (C) 1999,2000 Nelson Rush. Portions 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 This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
@ -23,6 +25,8 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "quakedef.h" #include "quakedef.h"
#include <time.h>
/* /*
background clear background clear
@ -90,7 +94,6 @@ cvar_t scr_showturtle = {"showturtle","0"};
cvar_t scr_showpause = {"showpause","1"}; cvar_t scr_showpause = {"showpause","1"};
cvar_t scr_printspeed = {"scr_printspeed","8"}; cvar_t scr_printspeed = {"scr_printspeed","8"};
cvar_t gl_triplebuffer = {"gl_triplebuffer", "1", true }; cvar_t gl_triplebuffer = {"gl_triplebuffer", "1", true };
extern cvar_t crosshair; extern cvar_t crosshair;
qboolean scr_initialized; // ready to draw qboolean scr_initialized; // ready to draw
@ -301,11 +304,14 @@ static void SCR_CalcRefdef (void)
if (cl.intermission) if (cl.intermission)
{ {
full = true; full = true;
size = 100; size = 100.0;
sb_lines = 0; sb_lines = 0;
} }
size /= 100.0; size /= 100.0;
if (!cl_sbar.value && full)
h = vid.height;
else
h = vid.height - sb_lines; h = vid.height - sb_lines;
r_refdef.vrect.width = vid.width * size; r_refdef.vrect.width = vid.width * size;
@ -316,9 +322,10 @@ static void SCR_CalcRefdef (void)
} }
r_refdef.vrect.height = vid.height * size; r_refdef.vrect.height = vid.height * size;
if (cl_sbar.value || !full) {
if (r_refdef.vrect.height > vid.height - sb_lines) if (r_refdef.vrect.height > vid.height - sb_lines)
r_refdef.vrect.height = vid.height - sb_lines; r_refdef.vrect.height = vid.height - sb_lines;
if (r_refdef.vrect.height > vid.height) } else if (r_refdef.vrect.height > vid.height)
r_refdef.vrect.height = vid.height; r_refdef.vrect.height = vid.height;
r_refdef.vrect.x = (vid.width - r_refdef.vrect.width)/2; r_refdef.vrect.x = (vid.width - r_refdef.vrect.width)/2;
if (full) if (full)
@ -369,7 +376,6 @@ SCR_Init
*/ */
void SCR_Init (void) void SCR_Init (void)
{ {
Cvar_RegisterVariable (&scr_fov); Cvar_RegisterVariable (&scr_fov);
Cvar_RegisterVariable (&scr_viewsize); Cvar_RegisterVariable (&scr_viewsize);
Cvar_RegisterVariable (&scr_conspeed); Cvar_RegisterVariable (&scr_conspeed);
@ -460,7 +466,6 @@ Backported by Jules Bean <jules@jellybean.co.uk> from
quakeworld client quakeworld client
=============== ===============
*/ */
void SCR_DrawFPS (void) void SCR_DrawFPS (void)
{ {
extern cvar_t show_fps; extern cvar_t show_fps;
@ -488,6 +493,7 @@ void SCR_DrawFPS (void)
Draw_String(x, y, st); Draw_String(x, y, st);
} }
/* /*
============== ==============
DrawPause DrawPause
@ -676,10 +682,6 @@ void SCR_ScreenShot_f (void)
Con_Printf ("Wrote %s\n", pcxname); Con_Printf ("Wrote %s\n", pcxname);
} }
//=============================================================================
/* /*
=============== ===============
SCR_BeginLoadingPlaque SCR_BeginLoadingPlaque
@ -843,6 +845,8 @@ void SCR_TileClear (void)
} }
} }
float oldsbar = 0;
/* /*
================== ==================
SCR_UpdateScreen SCR_UpdateScreen
@ -879,6 +883,11 @@ void SCR_UpdateScreen (void)
return; // not initialized yet return; // not initialized yet
if (oldsbar != cl_sbar.value) {
oldsbar = cl_sbar.value;
vid.recalc_refdef = true;
}
GL_BeginRendering (&glx, &gly, &glwidth, &glheight); GL_BeginRendering (&glx, &gly, &glwidth, &glheight);
// //
@ -890,12 +899,6 @@ void SCR_UpdateScreen (void)
vid.recalc_refdef = true; vid.recalc_refdef = true;
} }
if (oldscreensize != scr_viewsize.value)
{
oldscreensize = scr_viewsize.value;
vid.recalc_refdef = true;
}
if (vid.recalc_refdef) if (vid.recalc_refdef)
SCR_CalcRefdef (); SCR_CalcRefdef ();
@ -938,7 +941,6 @@ void SCR_UpdateScreen (void)
{ {
if (crosshair.value) if (crosshair.value)
Draw_Crosshair(); Draw_Crosshair();
// Draw_Character (scr_vrect.x + scr_vrect.width/2, scr_vrect.y + scr_vrect.height/2, '+');
SCR_DrawRam (); SCR_DrawRam ();
SCR_DrawNet (); SCR_DrawNet ();
@ -955,4 +957,3 @@ void SCR_UpdateScreen (void)
GL_EndRendering (); GL_EndRendering ();
} }

View file

@ -1,6 +1,8 @@
/* /*
Copyright (C) 1996-1997 Id Software, Inc. Copyright (C) 1996-1997 Id Software, Inc.
Portions Copyright (C) 1999,2000 Nelson Rush. Portions 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 This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License modify it under the terms of the GNU General Public License
@ -23,6 +25,56 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "quakedef.h" #include "quakedef.h"
#include "r_local.h" #include "r_local.h"
#include <time.h>
/*
background clear
rendering
turtle/net/ram icons
sbar
centerprint / slow centerprint
notify lines
intermission / finale overlay
loading plaque
console
menu
required background clears
required update regions
syncronous draw mode or async
One off screen buffer, with updates either copied or xblited
Need to double buffer?
async draw will require the refresh area to be cleared, because it will be
xblited, but sync draw can just ignore it.
sync
draw
CenterPrint ()
SlowPrint ()
Screen_Update ();
Con_Printf ();
net
turn off messages option
the refresh is allways rendered, unless the console is full screen
console is:
notify lines
half
full
*/
// only the refresh window will be updated unless these variables are flagged // only the refresh window will be updated unless these variables are flagged
int scr_copytop; int scr_copytop;
int scr_copyeverything; int scr_copyeverything;
@ -31,6 +83,7 @@ float scr_con_current;
float scr_conlines; // lines of console to display float scr_conlines; // lines of console to display
float oldscreensize, oldfov; float oldscreensize, oldfov;
float oldsbar;
cvar_t scr_viewsize = {"viewsize","100", true}; cvar_t scr_viewsize = {"viewsize","100", true};
cvar_t scr_fov = {"fov","90"}; // 10 - 170 cvar_t scr_fov = {"fov","90"}; // 10 - 170
cvar_t scr_conspeed = {"scr_conspeed","300"}; cvar_t scr_conspeed = {"scr_conspeed","300"};
@ -51,6 +104,8 @@ int scr_fullupdate;
int clearconsole; int clearconsole;
int clearnotify; int clearnotify;
int sb_lines;
viddef_t vid; // global video state viddef_t vid; // global video state
vrect_t *pconupdate; vrect_t *pconupdate;
@ -59,6 +114,7 @@ vrect_t scr_vrect;
qboolean scr_disabled_for_loading; qboolean scr_disabled_for_loading;
qboolean scr_drawloading; qboolean scr_drawloading;
float scr_disabled_time; float scr_disabled_time;
qboolean scr_skipupdate; qboolean scr_skipupdate;
qboolean block_drawing; qboolean block_drawing;
@ -120,7 +176,7 @@ void SCR_EraseCenterString (void)
y = 48; y = 48;
scr_copytop = 1; scr_copytop = 1;
Draw_TileClear (0, y,vid.width, 8*scr_erase_lines); Draw_TileClear (0, y, vid.width, min(8*scr_erase_lines, vid.height - y - 1));
} }
void SCR_DrawCenterString (void) void SCR_DrawCenterString (void)
@ -287,8 +343,10 @@ Keybinding command
*/ */
void SCR_SizeUp_f (void) void SCR_SizeUp_f (void)
{ {
if (scr_viewsize.value < 120) {
Cvar_SetValue ("viewsize",scr_viewsize.value+10); Cvar_SetValue ("viewsize",scr_viewsize.value+10);
vid.recalc_refdef = 1; vid.recalc_refdef = 1;
}
} }
@ -330,9 +388,9 @@ void SCR_Init (void)
Cmd_AddCommand ("sizeup",SCR_SizeUp_f); Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
Cmd_AddCommand ("sizedown",SCR_SizeDown_f); Cmd_AddCommand ("sizedown",SCR_SizeDown_f);
scr_ram = Draw_PicFromWad ("ram"); scr_ram = W_GetLumpName ("ram");
scr_net = Draw_PicFromWad ("net"); scr_net = W_GetLumpName ("net");
scr_turtle = Draw_PicFromWad ("turtle"); scr_turtle = W_GetLumpName ("turtle");
scr_initialized = true; scr_initialized = true;
} }
@ -403,7 +461,6 @@ Backported by Jules Bean <jules@jellybean.co.uk> from
quakeworld client quakeworld client
=============== ===============
*/ */
void SCR_DrawFPS (void) void SCR_DrawFPS (void)
{ {
extern cvar_t show_fps; extern cvar_t show_fps;
@ -452,7 +509,6 @@ void SCR_DrawPause (void)
} }
/* /*
============== ==============
SCR_DrawLoading SCR_DrawLoading
@ -470,8 +526,6 @@ void SCR_DrawLoading (void)
(vid.height - 48 - pic->height)/2, pic); (vid.height - 48 - pic->height)/2, pic);
} }
//============================================================================= //=============================================================================
@ -558,7 +612,6 @@ void SCR_DrawConsole (void)
============================================================================== ==============================================================================
*/ */
typedef struct typedef struct
{ {
char manufacturer; char manufacturer;
@ -668,7 +721,7 @@ void SCR_ScreenShot_f (void)
} }
if (i==100) if (i==100)
{ {
Con_Printf ("SCR_ScreenShot_f: Couldn't create a PCX file\n"); Con_Printf ("SCR_ScreenShot_f: Couldn't create a PCX");
return; return;
} }
@ -687,10 +740,8 @@ void SCR_ScreenShot_f (void)
Con_Printf ("Wrote %s\n", pcxname); Con_Printf ("Wrote %s\n", pcxname);
} }
//============================================================================= //=============================================================================
/* /*
=============== ===============
SCR_BeginLoadingPlaque SCR_BeginLoadingPlaque
@ -734,9 +785,6 @@ void SCR_EndLoadingPlaque (void)
scr_fullupdate = 0; scr_fullupdate = 0;
Con_ClearNotify (); Con_ClearNotify ();
} }
//=============================================================================
char *scr_notifystring; char *scr_notifystring;
qboolean scr_drawdialog; qboolean scr_drawdialog;
@ -772,6 +820,8 @@ void SCR_DrawNotifyString (void)
} while (1); } while (1);
} }
//=============================================================================
/* /*
================== ==================
SCR_ModalMessage SCR_ModalMessage
@ -865,8 +915,17 @@ void SCR_UpdateScreen (void)
return; return;
} }
#ifdef _WIN32
{ // don't suck up any cpu if minimized
extern int Minimized;
if (Minimized)
return;
}
#endif
if (cls.state == ca_dedicated) if (cls.state == ca_dedicated)
return; // stdout only return;
if (!scr_initialized || !con_initialized) if (!scr_initialized || !con_initialized)
return; // not initialized yet return; // not initialized yet
@ -898,6 +957,12 @@ void SCR_UpdateScreen (void)
vid.recalc_refdef = true; vid.recalc_refdef = true;
} }
if (oldsbar != cl_sbar.value)
{
oldsbar = cl_sbar.value;
vid.recalc_refdef = true;
}
if (vid.recalc_refdef) if (vid.recalc_refdef)
{ {
// something changed, so reorder the screen // something changed, so reorder the screen
@ -926,9 +991,7 @@ void SCR_UpdateScreen (void)
// for linear writes all the time // for linear writes all the time
VID_LockBuffer (); VID_LockBuffer ();
V_RenderView (); V_RenderView ();
VID_UnlockBuffer (); VID_UnlockBuffer ();
D_EnableBackBufferAccess (); // of all overlay stuff if drawing directly D_EnableBackBufferAccess (); // of all overlay stuff if drawing directly
@ -971,6 +1034,7 @@ void SCR_UpdateScreen (void)
M_Draw (); M_Draw ();
} }
D_DisableBackBufferAccess (); // for adapters that can't stay mapped in D_DisableBackBufferAccess (); // for adapters that can't stay mapped in
// for linear writes all the time // for linear writes all the time
if (pconupdate) if (pconupdate)
@ -983,7 +1047,6 @@ void SCR_UpdateScreen (void)
// //
// update one of three areas // update one of three areas
// //
if (scr_copyeverything) if (scr_copyeverything)
{ {
vrect.x = 0; vrect.x = 0;
@ -1016,7 +1079,6 @@ void SCR_UpdateScreen (void)
} }
} }
/* /*
================== ==================
SCR_UpdateWholeScreen SCR_UpdateWholeScreen