mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-11-25 05:11:23 +00:00
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:
parent
392ba79ded
commit
8e85621d15
9 changed files with 223 additions and 153 deletions
6
NEWS
6
NEWS
|
@ -1,6 +1,12 @@
|
|||
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
|
||||
You may now specify multiple game directories with -game. If for
|
||||
example you wanted to use the original registered game with MegaTF
|
||||
|
|
|
@ -76,6 +76,7 @@ void VID_UnlockBuffer (void);
|
|||
#include "cdaudio.h"
|
||||
|
||||
#include "glquake.h"
|
||||
#include "cvars.h"
|
||||
|
||||
#ifndef max
|
||||
#define max(a,b) ((a) > (b) ? (a) : (b))
|
||||
|
|
|
@ -23,6 +23,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#ifndef _CVARS_H
|
||||
#define _CVARS_H
|
||||
|
||||
extert cvar_t gl_flashblend;
|
||||
extern cvar_t gl_flashblend;
|
||||
|
||||
#endif _CVARS_H
|
||||
|
|
|
@ -36,7 +36,6 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
|
||||
#define SURFCACHE_SIZE_AT_320X200 600*1024
|
||||
|
||||
/*
|
||||
typedef struct surfcache_s
|
||||
{
|
||||
struct surfcache_s *next;
|
||||
|
@ -50,7 +49,6 @@ typedef struct surfcache_s
|
|||
struct texture_s *texture; // checked for animating textures
|
||||
byte data[4]; // width*height elements
|
||||
} surfcache_t;
|
||||
*/
|
||||
|
||||
// !!! if this is changed, it must be changed in asm_draw.h too !!!
|
||||
typedef struct sspan_s
|
||||
|
|
|
@ -657,7 +657,7 @@ void VID_Init(unsigned char *palette)
|
|||
if (QF_XMesaSetFXmode) {
|
||||
#ifdef XMESA
|
||||
const char *str = getenv("MESA_GLX_FX");
|
||||
if (*str && *str != 'd') {
|
||||
if (str != NULL && *str != 'f') {
|
||||
if (tolower(*str) == 'w') {
|
||||
Cvar_SetValue("vid_glx_fullscreen", 0);
|
||||
} else {
|
||||
|
|
|
@ -117,6 +117,7 @@ void R_TimeRefresh_f (void);
|
|||
void R_ReadPointFile_f (void);
|
||||
texture_t *R_TextureAnimation (texture_t *base);
|
||||
|
||||
/*
|
||||
typedef struct surfcache_s
|
||||
{
|
||||
struct surfcache_s *next;
|
||||
|
@ -130,6 +131,7 @@ typedef struct surfcache_s
|
|||
struct texture_s *texture; // checked for animating textures
|
||||
byte data[4]; // width*height elements
|
||||
} surfcache_t;
|
||||
*/
|
||||
|
||||
|
||||
//====================================================
|
||||
|
|
|
@ -11,8 +11,8 @@ AC_DEFINE_UNQUOTED(VERSION,"$VERSION")
|
|||
dnl Set to yes for releases
|
||||
RELEASE=no
|
||||
|
||||
dnl At some point this might be set to yes by default
|
||||
NEWSTYLE=no
|
||||
dnl Set this to no for Id defaults
|
||||
NEWSTYLE=yes
|
||||
|
||||
AC_CANONICAL_SYSTEM
|
||||
AC_LANG_C
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
/*
|
||||
Copyright (C) 1996-1997 Id Software, Inc.
|
||||
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
|
||||
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 <time.h>
|
||||
|
||||
/*
|
||||
|
||||
background clear
|
||||
|
@ -90,7 +94,6 @@ cvar_t scr_showturtle = {"showturtle","0"};
|
|||
cvar_t scr_showpause = {"showpause","1"};
|
||||
cvar_t scr_printspeed = {"scr_printspeed","8"};
|
||||
cvar_t gl_triplebuffer = {"gl_triplebuffer", "1", true };
|
||||
|
||||
extern cvar_t crosshair;
|
||||
|
||||
qboolean scr_initialized; // ready to draw
|
||||
|
@ -301,11 +304,14 @@ static void SCR_CalcRefdef (void)
|
|||
if (cl.intermission)
|
||||
{
|
||||
full = true;
|
||||
size = 100;
|
||||
size = 100.0;
|
||||
sb_lines = 0;
|
||||
}
|
||||
size /= 100.0;
|
||||
|
||||
if (!cl_sbar.value && full)
|
||||
h = vid.height;
|
||||
else
|
||||
h = vid.height - sb_lines;
|
||||
|
||||
r_refdef.vrect.width = vid.width * size;
|
||||
|
@ -316,9 +322,10 @@ static void SCR_CalcRefdef (void)
|
|||
}
|
||||
|
||||
r_refdef.vrect.height = vid.height * size;
|
||||
if (cl_sbar.value || !full) {
|
||||
if (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.x = (vid.width - r_refdef.vrect.width)/2;
|
||||
if (full)
|
||||
|
@ -369,7 +376,6 @@ SCR_Init
|
|||
*/
|
||||
void SCR_Init (void)
|
||||
{
|
||||
|
||||
Cvar_RegisterVariable (&scr_fov);
|
||||
Cvar_RegisterVariable (&scr_viewsize);
|
||||
Cvar_RegisterVariable (&scr_conspeed);
|
||||
|
@ -460,7 +466,6 @@ Backported by Jules Bean <jules@jellybean.co.uk> from
|
|||
quakeworld client
|
||||
===============
|
||||
*/
|
||||
|
||||
void SCR_DrawFPS (void)
|
||||
{
|
||||
extern cvar_t show_fps;
|
||||
|
@ -488,6 +493,7 @@ void SCR_DrawFPS (void)
|
|||
Draw_String(x, y, st);
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
==============
|
||||
DrawPause
|
||||
|
@ -676,10 +682,6 @@ void SCR_ScreenShot_f (void)
|
|||
Con_Printf ("Wrote %s\n", pcxname);
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
|
||||
|
||||
/*
|
||||
===============
|
||||
SCR_BeginLoadingPlaque
|
||||
|
@ -843,6 +845,8 @@ void SCR_TileClear (void)
|
|||
}
|
||||
}
|
||||
|
||||
float oldsbar = 0;
|
||||
|
||||
/*
|
||||
==================
|
||||
SCR_UpdateScreen
|
||||
|
@ -879,6 +883,11 @@ void SCR_UpdateScreen (void)
|
|||
return; // not initialized yet
|
||||
|
||||
|
||||
if (oldsbar != cl_sbar.value) {
|
||||
oldsbar = cl_sbar.value;
|
||||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
GL_BeginRendering (&glx, &gly, &glwidth, &glheight);
|
||||
|
||||
//
|
||||
|
@ -890,12 +899,6 @@ void SCR_UpdateScreen (void)
|
|||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
if (oldscreensize != scr_viewsize.value)
|
||||
{
|
||||
oldscreensize = scr_viewsize.value;
|
||||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
if (vid.recalc_refdef)
|
||||
SCR_CalcRefdef ();
|
||||
|
||||
|
@ -938,7 +941,6 @@ void SCR_UpdateScreen (void)
|
|||
{
|
||||
if (crosshair.value)
|
||||
Draw_Crosshair();
|
||||
// Draw_Character (scr_vrect.x + scr_vrect.width/2, scr_vrect.y + scr_vrect.height/2, '+');
|
||||
|
||||
SCR_DrawRam ();
|
||||
SCR_DrawNet ();
|
||||
|
@ -955,4 +957,3 @@ void SCR_UpdateScreen (void)
|
|||
|
||||
GL_EndRendering ();
|
||||
}
|
||||
|
||||
|
|
102
uquake/screen.c
102
uquake/screen.c
|
@ -1,6 +1,8 @@
|
|||
/*
|
||||
Copyright (C) 1996-1997 Id Software, Inc.
|
||||
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
|
||||
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 "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
|
||||
int scr_copytop;
|
||||
int scr_copyeverything;
|
||||
|
@ -31,6 +83,7 @@ float scr_con_current;
|
|||
float scr_conlines; // lines of console to display
|
||||
|
||||
float oldscreensize, oldfov;
|
||||
float oldsbar;
|
||||
cvar_t scr_viewsize = {"viewsize","100", true};
|
||||
cvar_t scr_fov = {"fov","90"}; // 10 - 170
|
||||
cvar_t scr_conspeed = {"scr_conspeed","300"};
|
||||
|
@ -51,6 +104,8 @@ int scr_fullupdate;
|
|||
int clearconsole;
|
||||
int clearnotify;
|
||||
|
||||
int sb_lines;
|
||||
|
||||
viddef_t vid; // global video state
|
||||
|
||||
vrect_t *pconupdate;
|
||||
|
@ -59,6 +114,7 @@ vrect_t scr_vrect;
|
|||
qboolean scr_disabled_for_loading;
|
||||
qboolean scr_drawloading;
|
||||
float scr_disabled_time;
|
||||
|
||||
qboolean scr_skipupdate;
|
||||
|
||||
qboolean block_drawing;
|
||||
|
@ -120,7 +176,7 @@ void SCR_EraseCenterString (void)
|
|||
y = 48;
|
||||
|
||||
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)
|
||||
|
@ -287,9 +343,11 @@ Keybinding command
|
|||
*/
|
||||
void SCR_SizeUp_f (void)
|
||||
{
|
||||
if (scr_viewsize.value < 120) {
|
||||
Cvar_SetValue ("viewsize",scr_viewsize.value+10);
|
||||
vid.recalc_refdef = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
|
@ -330,9 +388,9 @@ void SCR_Init (void)
|
|||
Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
|
||||
Cmd_AddCommand ("sizedown",SCR_SizeDown_f);
|
||||
|
||||
scr_ram = Draw_PicFromWad ("ram");
|
||||
scr_net = Draw_PicFromWad ("net");
|
||||
scr_turtle = Draw_PicFromWad ("turtle");
|
||||
scr_ram = W_GetLumpName ("ram");
|
||||
scr_net = W_GetLumpName ("net");
|
||||
scr_turtle = W_GetLumpName ("turtle");
|
||||
|
||||
scr_initialized = true;
|
||||
}
|
||||
|
@ -403,7 +461,6 @@ Backported by Jules Bean <jules@jellybean.co.uk> from
|
|||
quakeworld client
|
||||
===============
|
||||
*/
|
||||
|
||||
void SCR_DrawFPS (void)
|
||||
{
|
||||
extern cvar_t show_fps;
|
||||
|
@ -452,7 +509,6 @@ void SCR_DrawPause (void)
|
|||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
==============
|
||||
SCR_DrawLoading
|
||||
|
@ -470,8 +526,6 @@ void SCR_DrawLoading (void)
|
|||
(vid.height - 48 - pic->height)/2, pic);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//=============================================================================
|
||||
|
||||
|
||||
|
@ -558,7 +612,6 @@ void SCR_DrawConsole (void)
|
|||
==============================================================================
|
||||
*/
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char manufacturer;
|
||||
|
@ -668,7 +721,7 @@ void SCR_ScreenShot_f (void)
|
|||
}
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -687,10 +740,8 @@ void SCR_ScreenShot_f (void)
|
|||
Con_Printf ("Wrote %s\n", pcxname);
|
||||
}
|
||||
|
||||
|
||||
//=============================================================================
|
||||
|
||||
|
||||
/*
|
||||
===============
|
||||
SCR_BeginLoadingPlaque
|
||||
|
@ -734,9 +785,6 @@ void SCR_EndLoadingPlaque (void)
|
|||
scr_fullupdate = 0;
|
||||
Con_ClearNotify ();
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
||||
char *scr_notifystring;
|
||||
qboolean scr_drawdialog;
|
||||
|
||||
|
@ -772,6 +820,8 @@ void SCR_DrawNotifyString (void)
|
|||
} while (1);
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
|
||||
/*
|
||||
==================
|
||||
SCR_ModalMessage
|
||||
|
@ -865,8 +915,17 @@ void SCR_UpdateScreen (void)
|
|||
return;
|
||||
}
|
||||
|
||||
#ifdef _WIN32
|
||||
{ // don't suck up any cpu if minimized
|
||||
extern int Minimized;
|
||||
|
||||
if (Minimized)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (cls.state == ca_dedicated)
|
||||
return; // stdout only
|
||||
return;
|
||||
|
||||
if (!scr_initialized || !con_initialized)
|
||||
return; // not initialized yet
|
||||
|
@ -898,6 +957,12 @@ void SCR_UpdateScreen (void)
|
|||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
if (oldsbar != cl_sbar.value)
|
||||
{
|
||||
oldsbar = cl_sbar.value;
|
||||
vid.recalc_refdef = true;
|
||||
}
|
||||
|
||||
if (vid.recalc_refdef)
|
||||
{
|
||||
// something changed, so reorder the screen
|
||||
|
@ -926,9 +991,7 @@ void SCR_UpdateScreen (void)
|
|||
// for linear writes all the time
|
||||
|
||||
VID_LockBuffer ();
|
||||
|
||||
V_RenderView ();
|
||||
|
||||
VID_UnlockBuffer ();
|
||||
|
||||
D_EnableBackBufferAccess (); // of all overlay stuff if drawing directly
|
||||
|
@ -971,6 +1034,7 @@ void SCR_UpdateScreen (void)
|
|||
M_Draw ();
|
||||
}
|
||||
|
||||
|
||||
D_DisableBackBufferAccess (); // for adapters that can't stay mapped in
|
||||
// for linear writes all the time
|
||||
if (pconupdate)
|
||||
|
@ -983,7 +1047,6 @@ void SCR_UpdateScreen (void)
|
|||
//
|
||||
// update one of three areas
|
||||
//
|
||||
|
||||
if (scr_copyeverything)
|
||||
{
|
||||
vrect.x = 0;
|
||||
|
@ -1016,7 +1079,6 @@ void SCR_UpdateScreen (void)
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
==================
|
||||
SCR_UpdateWholeScreen
|
||||
|
|
Loading…
Reference in a new issue