mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2025-02-15 16:30:50 +00:00
configure.in:
make DGA off by default merge qw_client/screen.c and uquake/screen.c into common/screen.c
This commit is contained in:
parent
b2b6b999ae
commit
0efddfca3b
3 changed files with 128 additions and 1112 deletions
|
@ -25,16 +25,24 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#include <qtypes.h>
|
#include <qtypes.h>
|
||||||
#include <quakedef.h>
|
#include <quakedef.h>
|
||||||
#include <r_local.h>
|
#include <r_local.h>
|
||||||
|
#include <wad.h>
|
||||||
#include <draw.h>
|
#include <draw.h>
|
||||||
#include <cvar.h>
|
#include <cvar.h>
|
||||||
#include <console.h>
|
#include <console.h>
|
||||||
#include <keys.h>
|
#include <keys.h>
|
||||||
#include <sbar.h>
|
#include <sbar.h>
|
||||||
|
#include <keys.h>
|
||||||
|
#include <sys.h>
|
||||||
|
#include <console.h>
|
||||||
|
#include <cmd.h>
|
||||||
#include <sound.h>
|
#include <sound.h>
|
||||||
#include <screen.h>
|
#include <screen.h>
|
||||||
|
#include <lib_replace.h>
|
||||||
#include <menu.h>
|
#include <menu.h>
|
||||||
|
#include <view.h>
|
||||||
|
#include <mathlib.h>
|
||||||
#include <input.h>
|
#include <input.h>
|
||||||
|
#include <plugin.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <mathlib.h>
|
#include <mathlib.h>
|
||||||
|
|
||||||
|
@ -133,6 +141,8 @@ vrect_t *pconupdate;
|
||||||
vrect_t scr_vrect;
|
vrect_t scr_vrect;
|
||||||
|
|
||||||
qboolean scr_disabled_for_loading;
|
qboolean scr_disabled_for_loading;
|
||||||
|
qboolean scr_drawloading;
|
||||||
|
float scr_disabled_time;
|
||||||
|
|
||||||
qboolean scr_skipupdate;
|
qboolean scr_skipupdate;
|
||||||
|
|
||||||
|
@ -419,7 +429,9 @@ void SCR_Init (void)
|
||||||
// register our commands
|
// register our commands
|
||||||
//
|
//
|
||||||
Cmd_AddCommand ("screenshot",SCR_ScreenShot_f);
|
Cmd_AddCommand ("screenshot",SCR_ScreenShot_f);
|
||||||
|
#ifdef QUAKEWORLD
|
||||||
Cmd_AddCommand ("snap",SCR_RSShot_f);
|
Cmd_AddCommand ("snap",SCR_RSShot_f);
|
||||||
|
#endif
|
||||||
Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
|
Cmd_AddCommand ("sizeup",SCR_SizeUp_f);
|
||||||
Cmd_AddCommand ("sizedown",SCR_SizeDown_f);
|
Cmd_AddCommand ("sizedown",SCR_SizeDown_f);
|
||||||
|
|
||||||
|
@ -480,7 +492,11 @@ SCR_DrawNet
|
||||||
*/
|
*/
|
||||||
void SCR_DrawNet (void)
|
void SCR_DrawNet (void)
|
||||||
{
|
{
|
||||||
|
#ifdef QUAKEWORLD
|
||||||
if (cls.netchan.outgoing_sequence - cls.netchan.incoming_acknowledged < UPDATE_BACKUP-1)
|
if (cls.netchan.outgoing_sequence - cls.netchan.incoming_acknowledged < UPDATE_BACKUP-1)
|
||||||
|
#else
|
||||||
|
if (realtime - cl.last_received_message < 0.3)
|
||||||
|
#endif
|
||||||
return;
|
return;
|
||||||
if (cls.demoplayback)
|
if (cls.demoplayback)
|
||||||
return;
|
return;
|
||||||
|
@ -488,6 +504,14 @@ void SCR_DrawNet (void)
|
||||||
Draw_Pic (scr_vrect.x+64, scr_vrect.y, scr_net);
|
Draw_Pic (scr_vrect.x+64, scr_vrect.y, scr_net);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
===============
|
||||||
|
SCR_DrawFPS
|
||||||
|
|
||||||
|
Backported by Jules Bean <jules@jellybean.co.uk> from
|
||||||
|
quakeworld client
|
||||||
|
===============
|
||||||
|
*/
|
||||||
void SCR_DrawFPS (void)
|
void SCR_DrawFPS (void)
|
||||||
{
|
{
|
||||||
extern cvar_t *show_fps;
|
extern cvar_t *show_fps;
|
||||||
|
@ -536,6 +560,23 @@ void SCR_DrawPause (void)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
==============
|
||||||
|
SCR_DrawLoading
|
||||||
|
==============
|
||||||
|
*/
|
||||||
|
void SCR_DrawLoading (void)
|
||||||
|
{
|
||||||
|
qpic_t *pic;
|
||||||
|
|
||||||
|
if (!scr_drawloading)
|
||||||
|
return;
|
||||||
|
|
||||||
|
pic = Draw_CachePic ("gfx/loading.lmp");
|
||||||
|
Draw_Pic ( (vid.width - pic->width)/2,
|
||||||
|
(vid.height - 48 - pic->height)/2, pic);
|
||||||
|
}
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
|
||||||
|
|
||||||
|
@ -548,6 +589,9 @@ void SCR_SetUpToDrawConsole (void)
|
||||||
{
|
{
|
||||||
Con_CheckResize ();
|
Con_CheckResize ();
|
||||||
|
|
||||||
|
if (scr_drawloading)
|
||||||
|
return; // never a console with loading plaque
|
||||||
|
|
||||||
// decide on the height of the console
|
// decide on the height of the console
|
||||||
if (cls.state != ca_active)
|
if (cls.state != ca_active)
|
||||||
{
|
{
|
||||||
|
@ -679,9 +723,11 @@ void WritePCXfile (char *filename, byte *data, int width, int height,
|
||||||
|
|
||||||
// write output file
|
// write output file
|
||||||
length = pack - (byte *)pcx;
|
length = pack - (byte *)pcx;
|
||||||
|
#ifdef QUAKEWORLD
|
||||||
if (upload)
|
if (upload)
|
||||||
CL_StartUpload((void *)pcx, length);
|
CL_StartUpload((void *)pcx, length);
|
||||||
else
|
else
|
||||||
|
#endif
|
||||||
COM_WriteFile (filename, pcx, length);
|
COM_WriteFile (filename, pcx, length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -808,7 +854,7 @@ void SCR_DrawStringToSnap (const char *s, byte *buf, int x, int y, int width)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef QUAKEWORLD
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
SCR_RSShot_f
|
SCR_RSShot_f
|
||||||
|
@ -934,10 +980,54 @@ void SCR_RSShot_f (void)
|
||||||
// Con_Printf ("Wrote %s\n", pcxname);
|
// Con_Printf ("Wrote %s\n", pcxname);
|
||||||
Con_Printf ("Sending shot to server...\n");
|
Con_Printf ("Sending shot to server...\n");
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
//=============================================================================
|
//=============================================================================
|
||||||
|
/*
|
||||||
|
===============
|
||||||
|
SCR_BeginLoadingPlaque
|
||||||
|
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void SCR_BeginLoadingPlaque (void)
|
||||||
|
{
|
||||||
|
S_StopAllSounds (true);
|
||||||
|
|
||||||
|
if (cls.state < ca_connected)
|
||||||
|
return;
|
||||||
|
if (cls.signon != SIGNONS)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// redraw with no console and the loading plaque
|
||||||
|
Con_ClearNotify ();
|
||||||
|
scr_centertime_off = 0;
|
||||||
|
scr_con_current = 0;
|
||||||
|
|
||||||
|
scr_drawloading = true;
|
||||||
|
scr_fullupdate = 0;
|
||||||
|
Sbar_Changed ();
|
||||||
|
SCR_UpdateScreen ();
|
||||||
|
scr_drawloading = false;
|
||||||
|
|
||||||
|
scr_disabled_for_loading = true;
|
||||||
|
scr_disabled_time = realtime;
|
||||||
|
scr_fullupdate = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
===============
|
||||||
|
SCR_EndLoadingPlaque
|
||||||
|
|
||||||
|
|
||||||
|
================
|
||||||
|
*/
|
||||||
|
void SCR_EndLoadingPlaque (void)
|
||||||
|
{
|
||||||
|
scr_disabled_for_loading = false;
|
||||||
|
scr_fullupdate = 0;
|
||||||
|
Con_ClearNotify ();
|
||||||
|
}
|
||||||
char *scr_notifystring;
|
char *scr_notifystring;
|
||||||
qboolean scr_drawdialog;
|
qboolean scr_drawdialog;
|
||||||
|
|
||||||
|
@ -973,6 +1063,8 @@ void SCR_DrawNotifyString (void)
|
||||||
} while (1);
|
} while (1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
/*
|
/*
|
||||||
==================
|
==================
|
||||||
SCR_ModalMessage
|
SCR_ModalMessage
|
||||||
|
@ -983,6 +1075,9 @@ keypress.
|
||||||
*/
|
*/
|
||||||
int SCR_ModalMessage (char *text)
|
int SCR_ModalMessage (char *text)
|
||||||
{
|
{
|
||||||
|
if (cls.state == ca_dedicated)
|
||||||
|
return true;
|
||||||
|
|
||||||
scr_notifystring = text;
|
scr_notifystring = text;
|
||||||
|
|
||||||
// draw a fresh screen
|
// draw a fresh screen
|
||||||
|
@ -1043,13 +1138,25 @@ needs almost the entire 256k of stack space!
|
||||||
void SCR_UpdateScreen (void)
|
void SCR_UpdateScreen (void)
|
||||||
{
|
{
|
||||||
static float oldscr_viewsize;
|
static float oldscr_viewsize;
|
||||||
|
static float oldlcd_x;
|
||||||
vrect_t vrect;
|
vrect_t vrect;
|
||||||
|
|
||||||
if (scr_skipupdate || block_drawing)
|
if (scr_skipupdate || block_drawing)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
scr_copytop = 0;
|
||||||
|
scr_copyeverything = 0;
|
||||||
|
|
||||||
if (scr_disabled_for_loading)
|
if (scr_disabled_for_loading)
|
||||||
|
{
|
||||||
|
if (realtime - scr_disabled_time > 60)
|
||||||
|
{
|
||||||
|
scr_disabled_for_loading = false;
|
||||||
|
Con_Printf ("load failed.\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
{ // don't suck up any cpu if minimized
|
{ // don't suck up any cpu if minimized
|
||||||
|
@ -1063,6 +1170,9 @@ void SCR_UpdateScreen (void)
|
||||||
scr_copytop = 0;
|
scr_copytop = 0;
|
||||||
scr_copyeverything = 0;
|
scr_copyeverything = 0;
|
||||||
|
|
||||||
|
if (cls.state == ca_dedicated)
|
||||||
|
return;
|
||||||
|
|
||||||
if (!scr_initialized || !con_initialized)
|
if (!scr_initialized || !con_initialized)
|
||||||
return; // not initialized yet
|
return; // not initialized yet
|
||||||
|
|
||||||
|
@ -1081,6 +1191,12 @@ void SCR_UpdateScreen (void)
|
||||||
vid.recalc_refdef = true;
|
vid.recalc_refdef = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (oldlcd_x != lcd_x->value)
|
||||||
|
{
|
||||||
|
oldlcd_x = lcd_x->value;
|
||||||
|
vid.recalc_refdef = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (oldscreensize != scr_viewsize->value)
|
if (oldscreensize != scr_viewsize->value)
|
||||||
{
|
{
|
||||||
oldscreensize = scr_viewsize->value;
|
oldscreensize = scr_viewsize->value;
|
||||||
|
@ -1133,6 +1249,11 @@ void SCR_UpdateScreen (void)
|
||||||
SCR_DrawNotifyString ();
|
SCR_DrawNotifyString ();
|
||||||
scr_copyeverything = true;
|
scr_copyeverything = true;
|
||||||
}
|
}
|
||||||
|
else if (scr_drawloading)
|
||||||
|
{
|
||||||
|
SCR_DrawLoading ();
|
||||||
|
Sbar_Draw ();
|
||||||
|
}
|
||||||
else if (cl.intermission == 1 && key_dest == key_game)
|
else if (cl.intermission == 1 && key_dest == key_game)
|
||||||
{
|
{
|
||||||
Sbar_IntermissionOverlay ();
|
Sbar_IntermissionOverlay ();
|
||||||
|
@ -1142,6 +1263,10 @@ void SCR_UpdateScreen (void)
|
||||||
Sbar_FinaleOverlay ();
|
Sbar_FinaleOverlay ();
|
||||||
SCR_CheckDrawCenterString ();
|
SCR_CheckDrawCenterString ();
|
||||||
}
|
}
|
||||||
|
else if (cl.intermission == 3 && key_dest == key_game)
|
||||||
|
{
|
||||||
|
SCR_CheckDrawCenterString ();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
SCR_DrawRam ();
|
SCR_DrawRam ();
|
|
@ -179,7 +179,7 @@ dnl Check for DGA support
|
||||||
AC_ARG_ENABLE(DGA,
|
AC_ARG_ENABLE(DGA,
|
||||||
[ --enable-DGA use XFree86 DGA extension, if available],
|
[ --enable-DGA use XFree86 DGA extension, if available],
|
||||||
HAS_DGA=$enableval, HAS_DGA=auto)
|
HAS_DGA=$enableval, HAS_DGA=auto)
|
||||||
if test "x$HAS_DGA" != xno; then
|
if test "x$HAS_DGA" == xyes; then
|
||||||
save_CPPFLAGS="$CPPFLAGS"
|
save_CPPFLAGS="$CPPFLAGS"
|
||||||
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
|
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
|
||||||
AC_CHECK_HEADER(X11/extensions/xf86dga.h, HAS_DGA=yes, HAS_DGA=no)
|
AC_CHECK_HEADER(X11/extensions/xf86dga.h, HAS_DGA=yes, HAS_DGA=no)
|
||||||
|
|
1109
uquake/screen.c
1109
uquake/screen.c
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue