Fixes #6 by using xwd to take screenshots.
This commit is contained in:
parent
d068c4613e
commit
e6542eeca6
3 changed files with 120 additions and 331 deletions
8
README
8
README
|
@ -8,7 +8,7 @@ This is a novelty engine rendering in software mode, aka on your CPU.
|
|||
It uses standard X11 functions, so aside from that no dependencies are necessary.
|
||||
For sound, please get the Open Sound System running.
|
||||
|
||||
It can run Xuake with all its fancy waterwarping, too.
|
||||
It can run Q1 with all its fancy waterwarping, too.
|
||||
|
||||
************
|
||||
Features
|
||||
|
@ -42,8 +42,8 @@ For a release build (smaller and faster) issue 'make build_release'.
|
|||
- Main sound is done via OSS, not ALSA - aoss will most likely not work
|
||||
- The input is 'not good' right now
|
||||
- Originally based on engoo by leileilol
|
||||
- If you want to run Xuake with it, launch it with -data id1.
|
||||
You can get a particles.spr file for Quake here: http://euksy.oldtimes-software.com/files/NGUNIX/particle.spr
|
||||
- If you want to run Q1 with it, launch it with -data id1.
|
||||
You can get a particles.spr file for Q1 here: http://euksy.oldtimes-software.com/files/NGUNIX/particle.spr
|
||||
|
||||
*********
|
||||
Plans
|
||||
|
@ -51,6 +51,6 @@ For a release build (smaller and faster) issue 'make build_release'.
|
|||
|
||||
- Menu system done primarily using CSQC
|
||||
- HUD system done primarily using CSQC
|
||||
- Make the bots less Xuake specific, controllable via SSQC
|
||||
- Make the bots less Q1 specific, controllable via SSQC
|
||||
- Ship with a game directory that can be used as a base and torn apart for any use
|
||||
- Ship with a scratch QC base and the new engine extensions
|
||||
|
|
156
engine/sbar.c
156
engine/sbar.c
|
@ -22,7 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|||
#include "globaldef.h"
|
||||
|
||||
int sb_scaled;
|
||||
int sb_updates; // if >= vid.numpages, no update needed
|
||||
int sb_updates; // if >= vid.numpages, no update needed
|
||||
|
||||
#define STAT_MINUS 10 // num frame for '-' stats digit
|
||||
qpic_t *sb_nums[2][11];
|
||||
|
@ -63,92 +63,6 @@ cvar_t *hud_inv_align;
|
|||
void Sbar_MiniDeathmatchOverlay (void);
|
||||
void Sbar_DeathmatchOverlay (void);
|
||||
void M_DrawPic (int x, int y, qpic_t *pic);
|
||||
/*
|
||||
=============
|
||||
Draw_SubPic
|
||||
=============
|
||||
*/
|
||||
void Draw_SubPic(int x, int y, qpic_t *pic, int srcx, int srcy, int width, int height)
|
||||
{
|
||||
byte *dest, *source;
|
||||
unsigned short *pusdest;
|
||||
int v, u;
|
||||
|
||||
if ((x < 0) ||
|
||||
(x + width > vid.width) ||
|
||||
(y < 0) ||
|
||||
(y + height > vid.height))
|
||||
{
|
||||
Sys_Error ("Draw_SubPic: bad coordinates");
|
||||
}
|
||||
|
||||
source = pic->data + srcy * pic->width + srcx;
|
||||
|
||||
|
||||
{
|
||||
dest = vid.buffer + y * vid.rowbytes + x;
|
||||
|
||||
for (v=0 ; v<height ; v++)
|
||||
{
|
||||
Q_memcpy (dest, source, width);
|
||||
dest += vid.rowbytes;
|
||||
source += pic->width;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void Draw_SubPic_Scaled(int x, int y, qpic_t *pic, int srcx, int srcy, int width, int height)
|
||||
{
|
||||
byte *dest, *source;
|
||||
unsigned short *pusdest;
|
||||
int v, u, s;
|
||||
float vmax, umax;
|
||||
|
||||
if ((x < 0) ||
|
||||
(x + width > vid.width) ||
|
||||
(y < 0) ||
|
||||
(y + height > vid.height))
|
||||
{
|
||||
Sys_Error ("Draw_SubPic: bad coordinates");
|
||||
}
|
||||
|
||||
source = pic->data + srcy * pic->width + srcx;
|
||||
|
||||
umax = pic->width * vid.width / (float)vid.vconwidth;
|
||||
vmax = pic->height * vid.height / (float)vid.vconheight;
|
||||
|
||||
|
||||
{
|
||||
byte *dest = vid.buffer + (y*vid.height/vid.vconheight) * vid.rowbytes + (x*vid.width/vid.vconwidth);
|
||||
for (v = 0; v < vmax; v++)
|
||||
{
|
||||
for (u = 0; u < umax; u++)
|
||||
{
|
||||
s = u * vid.vconwidth / vid.width + (v * vid.vconheight/vid.height) * pic->width;
|
||||
dest[u] = source[s];
|
||||
}
|
||||
dest += vid.rowbytes;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
=============
|
||||
Sbar_DrawSubPic
|
||||
=============
|
||||
JACK: Draws a portion of the picture in the status bar.
|
||||
*/
|
||||
|
||||
void Sbar_DrawSubPic(int x, int y, qpic_t *pic, int srcx, int srcy, int width, int height)
|
||||
{
|
||||
if (sb_scaled){
|
||||
//Draw_SubPic_Scaled (x, y+(vid.vconheight-SBAR_HEIGHT), pic, srcx, srcy, vid.vconwidth, vid.vconheight);
|
||||
}else
|
||||
Draw_SubPic (x, y+(vid.height-SBAR_HEIGHT), pic, srcx, srcy, width, height);
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
===============
|
||||
|
@ -304,7 +218,7 @@ void Sbar_Init (void)
|
|||
hud_ammo_posy = Cvar_Get ("hud_ammo_posy", "0", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
hud_ammo_align = Cvar_Get ("hud_ammo_align", "0", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
|
||||
hud_inv = Cvar_Get ("hud_inv", "1", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
hud_inv = Cvar_Get ("hud_inv", "0", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
hud_inv_numbers = Cvar_Get ("hud_inv_numbers", "1", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
hud_inv_posx = Cvar_Get ("hud_inv_posx", "0", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
hud_inv_posy = Cvar_Get ("hud_inv_posy", "-24", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
|
@ -338,26 +252,8 @@ void Sbar_DrawPic (int x, int y, qpic_t *pic, int align)
|
|||
Draw_Pic_Scaled (x, y, pic);
|
||||
else
|
||||
Draw_Pic (x, y, pic);
|
||||
|
||||
}
|
||||
|
||||
void Sbar_DrawPicHalf (int x, int y, qpic_t *pic, int align)
|
||||
{
|
||||
if (cl.gametype != GAME_DEATHMATCH)
|
||||
x += ((vid.vconwidth - 320)>>1);
|
||||
|
||||
if(align)
|
||||
y += SBAR_HEIGHT;
|
||||
else
|
||||
y += (vid.vconheight-SBAR_HEIGHT);
|
||||
|
||||
if (sb_scaled)
|
||||
Draw_Pic_Scaled_Two (x, y, pic);
|
||||
else
|
||||
Draw_Pic (x, y, pic);
|
||||
}
|
||||
|
||||
|
||||
/*x
|
||||
================
|
||||
Sbar_DrawCharacter
|
||||
|
@ -378,9 +274,9 @@ void Sbar_DrawCharacter (int x, int y, int num, int align)
|
|||
|
||||
|
||||
if (sb_scaled)
|
||||
Draw_Character_Scaled ( x /*+ ((vid.vconwidth - 320)>>1) */ + 4 , y, num);
|
||||
Draw_Character_Scaled ( x + 4 , y, num);
|
||||
else
|
||||
Draw_Character ( x /*+ ((vid.width - 320)>>1) */ + 4 , y, num);
|
||||
Draw_Character ( x + 4 , y, num);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -478,13 +374,12 @@ void Sbar_DrawNum (int x, int y, int num, int digits, int color, int align)
|
|||
|
||||
//=============================================================================
|
||||
|
||||
int fragsort[MAX_SCOREBOARD];
|
||||
|
||||
int fragsort[MAX_SCOREBOARD];
|
||||
int scoreboardtop[MAX_SCOREBOARD];
|
||||
int scoreboardbottom[MAX_SCOREBOARD];
|
||||
int scoreboardcount[MAX_SCOREBOARD];
|
||||
int scoreboardlines;
|
||||
char scoreboardtext[MAX_SCOREBOARD][20];
|
||||
int scoreboardtop[MAX_SCOREBOARD];
|
||||
int scoreboardbottom[MAX_SCOREBOARD];
|
||||
int scoreboardcount[MAX_SCOREBOARD];
|
||||
int scoreboardlines;
|
||||
|
||||
/*
|
||||
===============
|
||||
|
@ -516,7 +411,7 @@ void Sbar_SortFrags (void)
|
|||
}
|
||||
}
|
||||
|
||||
int Sbar_ColorForMap (int m)
|
||||
int Sbar_ColorForMap (int m)
|
||||
{
|
||||
return m < 128 ? m + 8 : m + 8;
|
||||
}
|
||||
|
@ -710,11 +605,11 @@ Sbar_DrawFrags
|
|||
*/
|
||||
void Sbar_DrawFrags (void)
|
||||
{
|
||||
int i, k, l;
|
||||
int top, bottom;
|
||||
int x, y, f;
|
||||
int xofs;
|
||||
char num[12];
|
||||
int i, k, l;
|
||||
int top, bottom;
|
||||
int x, y, f;
|
||||
int xofs;
|
||||
char num[12];
|
||||
scoreboard_t *s;
|
||||
|
||||
Sbar_SortFrags ();
|
||||
|
@ -1093,23 +988,16 @@ Sbar_DeathmatchOverlay
|
|||
*/
|
||||
void Sbar_MiniDeathmatchOverlay (void)
|
||||
{
|
||||
// qpic_t *pic; // 2000-07-30 DJGPP compiler warning fix by Norberto Alfredo Bensa
|
||||
int i, k; //, l // 2001-12-10 Reduced compiler warnings by Jeff Ford
|
||||
int top, bottom;
|
||||
int x, y, f;
|
||||
char num[12];
|
||||
int i, k; //, l // 2001-12-10 Reduced compiler warnings by Jeff Ford
|
||||
int top, bottom;
|
||||
int x, y, f;
|
||||
char num[12];
|
||||
scoreboard_t *s;
|
||||
int numlines;
|
||||
int numlines;
|
||||
|
||||
if (sb_scaled){
|
||||
if (vid.vconwidth < 512)
|
||||
if ((sb_scaled && vid.vconwidth < 512) || (!sb_scaled && vid.width < 51))
|
||||
return;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (vid.width < 512)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
scr_copyeverything = 1;
|
||||
scr_fullupdate = 0;
|
||||
|
|
287
engine/screen.c
287
engine/screen.c
|
@ -258,11 +258,6 @@ float CalcFovy (float fov_x, float width, float height)
|
|||
return a;
|
||||
}
|
||||
|
||||
// QUAKESPASM CODE BY SEZERO END
|
||||
|
||||
// leilei - i am a dirty bitch for not figuring this out on my own .-_-.
|
||||
|
||||
|
||||
/*
|
||||
====================
|
||||
CalcFov
|
||||
|
@ -270,32 +265,14 @@ CalcFov
|
|||
*/
|
||||
float CalcFov (float fov_x, float width, float height)
|
||||
{
|
||||
/*
|
||||
float a;
|
||||
float x;
|
||||
float x;
|
||||
|
||||
if (fov_x < 1 || fov_x > 179){
|
||||
|
||||
fov_x = 179; // leilei - don't crash.
|
||||
}
|
||||
// Sys_Error ("Bad fov: %f", fov_x);
|
||||
|
||||
x = width/tan(fov_x/360*M_PI);
|
||||
|
||||
a = atan (height/x);
|
||||
|
||||
a = a*360/M_PI;
|
||||
|
||||
return a;
|
||||
*/
|
||||
float x;
|
||||
x = width / tan(fov_x / 360 * M_PI);
|
||||
return atan (height / x) * 360 / M_PI;
|
||||
}
|
||||
|
||||
|
||||
// MH's correct thing
|
||||
|
||||
float SCR_CalcFovX (float fov_y, float width, float height)
|
||||
{
|
||||
// bound, don't crash
|
||||
|
@ -361,8 +338,7 @@ float CalcFovOld (float fov_x, float width, float height)
|
|||
return a;
|
||||
}
|
||||
int yeahimconsoled;
|
||||
int screenfake; // leilei - forcing 320x200 metrics in any resolution no matter what (HACK HACK HACK!)
|
||||
|
||||
int screenfake;
|
||||
void SCR_StretchInit (void)
|
||||
{
|
||||
|
||||
|
@ -375,12 +351,10 @@ void SCR_StretchInit (void)
|
|||
vid.vconwidth = Q_atoi(com_argv[i+1]);
|
||||
scalefactor = vid.width / vid.vconwidth;
|
||||
scalefactorv = vid.height / vid.vconheight;
|
||||
// vid.vconwidth = vid.width / scalefactor;
|
||||
// vid.vconheight = vid.height / scalefactor; // leilei - variable height doesn't work right now.
|
||||
yeahimconsoled = 1;
|
||||
sb_scaled = 1;
|
||||
menu_scaled = 1;
|
||||
console_scaled = 1; // currently bugged
|
||||
console_scaled = 1;
|
||||
}
|
||||
|
||||
else if ((i = COM_CheckParm("-youpickedupaclip")) != 0){
|
||||
|
@ -388,122 +362,63 @@ void SCR_StretchInit (void)
|
|||
vid.vconheight = 32;
|
||||
scalefactor = vid.width / vid.vconwidth;
|
||||
scalefactorv = vid.height / 32;
|
||||
// vid.vconwidth = vid.width / scalefactor;
|
||||
// vid.vconheight = vid.height / scalefactor; // leilei - variable height doesn't work right now.
|
||||
yeahimconsoled = 0;
|
||||
sb_scaled = 1;
|
||||
menu_scaled = 0;
|
||||
console_scaled = 0; // currently bugged
|
||||
console_scaled = 0;
|
||||
}
|
||||
else if ((i = COM_CheckParm("-conheight")) != 0){
|
||||
vid.vconheight = Q_atoi(com_argv[i+1]);
|
||||
scalefactor = vid.width / vid.vconwidth;
|
||||
scalefactor = vid.width / vid.vconwidth;
|
||||
scalefactorv = vid.height / vid.vconheight;
|
||||
// vid.vconwidth = vid.width / scalefactor;
|
||||
// vid.vconheight = vid.height / scalefactor; // leilei - variable height doesn't work right now.
|
||||
yeahimconsoled = 1;
|
||||
sb_scaled = 1;
|
||||
menu_scaled = 1;
|
||||
console_scaled = 1; // currently bugged
|
||||
console_scaled = 1;
|
||||
}
|
||||
else{
|
||||
else
|
||||
scalefactor = 0; // we don't stretch.
|
||||
}
|
||||
|
||||
if (scalefactor > (vid.height / 200))
|
||||
scalefactor = vid.height / 200;
|
||||
|
||||
// scr_scale->value = scalefactor + scalefactorv / 2; // transfer are cvar's ovar.
|
||||
|
||||
|
||||
/*
|
||||
int i;
|
||||
float eh;
|
||||
if ((i = COM_CheckParm("-conwidth")) != 0){
|
||||
vid.vconwidth = Q_atoi(com_argv[i+1]);
|
||||
eh = vid.width / vid.vconwidth;
|
||||
vid.vconwidth = vid.width / eh;
|
||||
vid.vconheight = vid.height / eh; // leilei - variable height doesn't work right now.
|
||||
yeahimconsoled = 1;
|
||||
sb_scaled = 1;
|
||||
menu_scaled = 1;
|
||||
console_scaled = 0; // currently bugged
|
||||
}
|
||||
|
||||
else
|
||||
vid.vconwidth = vid.width;
|
||||
*/
|
||||
/*
|
||||
if (yeahimconsoled){
|
||||
vid.vconwidth &= 0xfff8; // make it a multiple of eight
|
||||
|
||||
// pick a conheight that matches with correct aspect
|
||||
// vid.vconheight = vid.vconwidth*3 / 4;
|
||||
|
||||
if ((i = COM_CheckParm("-conheight")) != 0)
|
||||
// vid.vconheight = Q_atoi(com_argv[i+1]);
|
||||
|
||||
vid.vconheight = vid.height / (vid.width / vid.vconwidth); // leilei - variable height doesn't work right now.
|
||||
if (vid.vconheight < 200)
|
||||
vid.vconheight = 200;
|
||||
}
|
||||
else
|
||||
{
|
||||
vid.vconwidth = vid.width;
|
||||
vid.vconheight = vid.height;
|
||||
}
|
||||
*/
|
||||
|
||||
|
||||
// if (vid.vconheight > vid.height)
|
||||
// vid.vconheight = 200; // clamping it crashes, so fall back to 320x200 anyway
|
||||
|
||||
// if (yeahimconsoled)
|
||||
// vid.vconheight = vid.height / (vid.width / vid.vconwidth); // leilei - variable height doesn't work right now.
|
||||
|
||||
|
||||
if (scalefactor > (vid.height / 200))
|
||||
scalefactor = vid.height / 200;
|
||||
};
|
||||
|
||||
void SCR_CvarCheck (void)
|
||||
{
|
||||
scalefactor = scr_scale->value;
|
||||
scalefactorv = scr_scale->value;
|
||||
scalefactor = scr_scale->value;
|
||||
scalefactorv = scr_scale->value;
|
||||
|
||||
if (scr_retroscale->value){
|
||||
|
||||
scalefactorv = vid.height / 200; // force old metrics etc!!
|
||||
if (scr_retroscale->value)
|
||||
{
|
||||
scalefactorv = vid.height / 200;
|
||||
scalefactor = scalefactorv;
|
||||
retroscalefactor = 1;
|
||||
}
|
||||
else
|
||||
retroscalefactor = 0;
|
||||
|
||||
scalefactor = scalefactorv;
|
||||
retroscalefactor = 1;
|
||||
}
|
||||
else
|
||||
retroscalefactor = 0;
|
||||
if (scalefactorv > (vid.height / 200))
|
||||
scalefactorv = vid.height / 200; // if we go beyond 320x200, then clamp!
|
||||
// if (scalefactor > (vid.width / 320))
|
||||
// scalefactor = vid.width / 320; // if we go beyond 320x200, then clamp!
|
||||
if (scalefactor < 1)
|
||||
scalefactor = 1;
|
||||
|
||||
if (scalefactorv < 1)
|
||||
scalefactorv = 1;
|
||||
|
||||
|
||||
|
||||
SCR_StretchRefresh();
|
||||
if (scalefactorv > (vid.height / 200))
|
||||
scalefactorv = vid.height / 200;
|
||||
if (scalefactor < 1)
|
||||
scalefactor = 1;
|
||||
if (scalefactorv < 1)
|
||||
scalefactorv = 1;
|
||||
|
||||
SCR_StretchRefresh();
|
||||
};
|
||||
|
||||
void SCR_StretchRefresh (void)
|
||||
{
|
||||
|
||||
int i;
|
||||
int i;
|
||||
float eh;
|
||||
|
||||
if (!scalefactor)
|
||||
return; // don't even try
|
||||
return; // don't even try
|
||||
if (!scalefactorv)
|
||||
return; // don't even try
|
||||
return; // don't even try
|
||||
/*
|
||||
screenfake = 0;
|
||||
|
||||
if (screenfake == 1){
|
||||
|
||||
vid.vconwidth = 320;
|
||||
|
@ -563,6 +478,8 @@ void SCR_StretchRefresh (void)
|
|||
return;
|
||||
|
||||
}
|
||||
*/
|
||||
|
||||
if (scalefactorv < 1){
|
||||
vid.vconheight = vid.height;
|
||||
yeahimconsoled = 0;
|
||||
|
@ -579,38 +496,33 @@ void SCR_StretchRefresh (void)
|
|||
return; // avoid div0 at all costs
|
||||
|
||||
}
|
||||
// if (scalefactor > (vid.height / 200))
|
||||
// scalefactor = vid.height / 200;
|
||||
// if (scalefactor < (vid.vconheight / vid.height))
|
||||
// scalefactor = vid.vconheight / vid.height;
|
||||
|
||||
vid.vconwidth = vid.width / scalefactor;
|
||||
vid.vconheight = vid.height / scalefactorv; // leilei - variable height doesn't work right now.
|
||||
yeahimconsoled = 1;
|
||||
sb_scaled = 1;
|
||||
menu_scaled = 1;
|
||||
console_scaled = 0; // currently bugged
|
||||
yeahimconsoled = 1;
|
||||
sb_scaled = 1;
|
||||
menu_scaled = 1;
|
||||
console_scaled = 0;
|
||||
|
||||
// minimum safeguards so we don't make a size too small to enter
|
||||
// the evil land of crash city
|
||||
if (vid.vconwidth < 320) vid.vconwidth = 320;
|
||||
if (vid.vconheight < 200) vid.vconheight = 200;
|
||||
if (vid.vconwidth < 320)
|
||||
vid.vconwidth = 320;
|
||||
if (vid.vconheight < 200)
|
||||
vid.vconheight = 200;
|
||||
|
||||
|
||||
if (vid.vconwidth > vid.width && vid.vconheight > vid.height){
|
||||
if (vid.vconwidth > vid.width && vid.vconheight > vid.height)
|
||||
{
|
||||
vid.vconwidth = vid.width;
|
||||
vid.vconheight = vid.height;
|
||||
yeahimconsoled = 0;
|
||||
sb_scaled = 0;
|
||||
menu_scaled = 0;
|
||||
sb_scaled = 0;
|
||||
menu_scaled = 0;
|
||||
console_scaled = 0;
|
||||
scalefactor = 1;
|
||||
scalefactor = 1;
|
||||
scalefactorv = 1;
|
||||
}
|
||||
|
||||
vid.recalc_refdef = 1; // yeah
|
||||
};
|
||||
|
||||
vid.recalc_refdef = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
=================
|
||||
|
@ -688,7 +600,6 @@ static void SCR_CalcRefdef (void)
|
|||
|
||||
// notify the refresh of the change
|
||||
R_ViewChanged (&vrect, sb_what_lines, vid.aspect);
|
||||
// R_ViewChanged (vid.aspect);
|
||||
}
|
||||
|
||||
//============================================================================
|
||||
|
@ -714,14 +625,12 @@ void SCR_Init_Cvars (void)
|
|||
scr_centertime = Cvar_Get ("scr_centertime", "2", CVAR_ORIGINAL);
|
||||
scr_printspeed = Cvar_Get ("scr_printspeed", "8", CVAR_ORIGINAL);
|
||||
scr_fov_adapt = Cvar_Get ("scr_fov_adapt", "1", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
// 2000-01-12 Variable console height by Fett start
|
||||
scr_conheight = Cvar_Get ("scr_conheight", "0.5", CVAR_ARCHIVE);
|
||||
Cvar_SetRangecheck (scr_conheight, Cvar_RangecheckFloat, 0, 1);
|
||||
Cvar_Set(scr_conheight, scr_conheight->string); // do rangecheck
|
||||
// 2000-01-12 Variable console height by Fett end
|
||||
Cvar_Set(scr_conheight, scr_conheight->string);
|
||||
|
||||
scr_scale = Cvar_Get ("scr_scale", "2", CVAR_ARCHIVE | CVAR_ORIGINAL); // leilei - default to 2
|
||||
scr_retroscale = Cvar_Get ("scr_retroscale", "1", CVAR_ARCHIVE | CVAR_ORIGINAL); // leilei - default to 1 since it's fast now.....
|
||||
scr_scale = Cvar_Get ("scr_scale", "2", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
scr_retroscale = Cvar_Get ("scr_retroscale", "1", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
scr_aspectmode = Cvar_Get ("scr_aspectmode", "1", CVAR_ARCHIVE | CVAR_ORIGINAL);
|
||||
}
|
||||
// 2001-09-18 New cvar system by Maddes (Init) end
|
||||
|
@ -733,7 +642,7 @@ SCR_Init
|
|||
*/
|
||||
void SCR_Init (void)
|
||||
{
|
||||
Cmd_AddCommand ("screenshot",SCR_ScreenShot_f);
|
||||
Cmd_AddCommand ("screenshot", SCR_ScreenShot_f);
|
||||
|
||||
scr_ram = Draw_PicFromWad ("ram");
|
||||
scr_net = Draw_PicFromWad ("net");
|
||||
|
@ -742,8 +651,6 @@ void SCR_Init (void)
|
|||
scr_initialized = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
==============
|
||||
SCR_DrawRam
|
||||
|
@ -753,13 +660,13 @@ void SCR_DrawRam (void)
|
|||
{
|
||||
if (!scr_showram->value)
|
||||
return;
|
||||
|
||||
if (!r_cache_thrash)
|
||||
return;
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled (scr_vrect.x+32, scr_vrect.y, scr_ram);
|
||||
else
|
||||
Draw_Pic (scr_vrect.x+32, scr_vrect.y, scr_ram);
|
||||
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled (scr_vrect.x+32, scr_vrect.y, scr_ram);
|
||||
else
|
||||
Draw_Pic (scr_vrect.x+32, scr_vrect.y, scr_ram);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -774,22 +681,21 @@ void SCR_DrawTurtle (void)
|
|||
if (!scr_showturtle->value)
|
||||
return;
|
||||
|
||||
// 2001-10-20 TIMESCALE extension by Tomaz/Maddes start
|
||||
// if (host_frametime < 0.1)
|
||||
if (host_cpu_frametime < 0.1)
|
||||
// 2001-10-20 TIMESCALE extension by Tomaz/Maddes end
|
||||
{
|
||||
count = 0;
|
||||
return;
|
||||
}
|
||||
|
||||
count++;
|
||||
|
||||
if (count < 3)
|
||||
return;
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled (scr_vrect.x, scr_vrect.y, scr_turtle);
|
||||
else
|
||||
Draw_Pic (scr_vrect.x, scr_vrect.y, scr_turtle);
|
||||
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled (scr_vrect.x, scr_vrect.y, scr_turtle);
|
||||
else
|
||||
Draw_Pic (scr_vrect.x, scr_vrect.y, scr_turtle);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -803,10 +709,11 @@ void SCR_DrawNet (void)
|
|||
return;
|
||||
if (cls.demoplayback)
|
||||
return;
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled (scr_vrect.x+64, scr_vrect.y, scr_net);
|
||||
else
|
||||
Draw_Pic (scr_vrect.x+64, scr_vrect.y, scr_net);
|
||||
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled (scr_vrect.x+64, scr_vrect.y, scr_net);
|
||||
else
|
||||
Draw_Pic (scr_vrect.x+64, scr_vrect.y, scr_net);
|
||||
}
|
||||
|
||||
// 2001-11-31 FPS display by QuakeForge/Muff start
|
||||
|
@ -828,22 +735,27 @@ void SCR_DrawFPS (void)
|
|||
return;
|
||||
|
||||
t = Sys_FloatTime ();
|
||||
if ((t - lastframetime) >= 1.0) {
|
||||
|
||||
if ((t - lastframetime) >= 1.0)
|
||||
{
|
||||
lastfps = fps_count;
|
||||
fps_count = 0;
|
||||
lastframetime = t;
|
||||
}
|
||||
|
||||
sprintf(st, "%3d FPS", lastfps);
|
||||
|
||||
if (sb_scaled)
|
||||
x = vid.vconwidth - strlen(st) * 16 - 16;
|
||||
x = vid.vconwidth - strlen(st) * 16 - 16;
|
||||
else
|
||||
x = vid.width - strlen(st) * 16 - 16;
|
||||
y = 0 ;
|
||||
x = vid.width - strlen(st) * 16 - 16;
|
||||
|
||||
y = 0;
|
||||
|
||||
if (sb_scaled)
|
||||
Draw_String_Scaled(x, y, st);
|
||||
Draw_String_Scaled(x, y, st);
|
||||
else
|
||||
Draw_String(x, y, st);
|
||||
Draw_String(x, y, st);
|
||||
|
||||
}
|
||||
// 2001-11-31 FPS display by QuakeForge/Muff end
|
||||
|
@ -859,11 +771,11 @@ void SCR_DrawPause (void)
|
|||
|
||||
if (!scr_showpause->value) // turn off for screenshots
|
||||
return;
|
||||
|
||||
if (!cl.paused)
|
||||
return;
|
||||
|
||||
pic = Draw_CachePic ("gfx/pause.lmp");
|
||||
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled ( (vid.vconwidth - pic->width)/2,
|
||||
(vid.vconheight - 48 - pic->height)/2, pic);
|
||||
|
@ -872,8 +784,6 @@ void SCR_DrawPause (void)
|
|||
(vid.height - 48 - pic->height)/2, pic);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
==============
|
||||
SCR_DrawLoading
|
||||
|
@ -887,12 +797,11 @@ void SCR_DrawLoading (void)
|
|||
return;
|
||||
|
||||
pic = Draw_CachePic ("gfx/loading.lmp");
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled ( (vid.vconwidth - pic->width)/2,
|
||||
(vid.vconheight - 48 - pic->height)/2, pic);
|
||||
else
|
||||
Draw_Pic ( (vid.width - pic->width)/2,
|
||||
(vid.height - 48 - pic->height)/2, pic);
|
||||
|
||||
if (menu_scaled)
|
||||
Draw_Pic_Scaled ( (vid.vconwidth - pic->width)/2, (vid.vconheight - 48 - pic->height)/2, pic);
|
||||
else
|
||||
Draw_Pic ( (vid.width - pic->width)/2, (vid.height - 48 - pic->height)/2, pic);
|
||||
}
|
||||
|
||||
|
||||
|
@ -905,7 +814,7 @@ else
|
|||
SCR_SetUpToDrawConsole
|
||||
==================
|
||||
*/
|
||||
extern cvar_t *con_alpha; // 2000-08-04 "Transparent" console background for software renderer by Norberto Alfredo Bensa/Maddes
|
||||
extern cvar_t *con_alpha;
|
||||
|
||||
void SCR_SetUpToDrawConsole (void)
|
||||
{
|
||||
|
@ -1116,7 +1025,7 @@ void SCR_ScreenShot_f (void)
|
|||
//
|
||||
// find a file name to save it to
|
||||
//
|
||||
#ifndef LINUX
|
||||
#ifndef linux
|
||||
strcpy(pcxname,"scrsh00.pcx");
|
||||
#else
|
||||
strcpy(pcxname,"scrsh00.xwd");
|
||||
|
@ -1132,28 +1041,20 @@ 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 screenshot!\n");
|
||||
return;
|
||||
}
|
||||
|
||||
#ifndef LINUX
|
||||
#ifndef linux
|
||||
|
||||
//
|
||||
// save the pcx file
|
||||
//
|
||||
D_EnableBackBufferAccess (); // enable direct drawing of console to back
|
||||
|
||||
printf("Writing PCX - %ix%i named %s\n", vid.width, vid.height, pcxname);
|
||||
#ifdef _WIN32
|
||||
WritePCXfile (pcxname, vid.buffer, vid.width, vid.height, vid.rowbytes, vid_curpal);
|
||||
#else
|
||||
WritePCXfile (pcxname, vid.buffer, vid.width, vid.height, vid.rowbytes, host_basepal);
|
||||
#endif
|
||||
|
||||
// WritePCXfile (pcxname, vid.buffer, vid.width, vid.height, vid.rowbytes, host_basepal);
|
||||
D_DisableBackBufferAccess (); // for adapters that can't stay mapped in
|
||||
#else
|
||||
sprintf(pcxnametwo, "xwd -name 'NGUNIX X11' -out %s", pcxname);
|
||||
sprintf(pcxnametwo, "xwd -name \"NGUNIX X11\" -display :0 -out ./%s/%s", com_gamedir, pcxname);
|
||||
system(pcxnametwo);
|
||||
// popen(buffer, "r");
|
||||
#endif
|
||||
|
||||
Con_Printf ("Wrote %s\n", pcxname);
|
||||
|
@ -1356,7 +1257,7 @@ void SCR_ReallyRender (void)
|
|||
V_RenderView ();
|
||||
}
|
||||
|
||||
int dontevendraw;
|
||||
int dontevendraw;
|
||||
void SCR_UpdateScreen (void)
|
||||
{
|
||||
static float oldlcd_x;
|
||||
|
|
Loading…
Reference in a new issue