Added timer_update() to stop/start/reset_time() functions so resumed last_timer_value will be precise; Added new FPS counter which actually does count the frames rendered per second and is less irritating; Added timer_dleay2 call to console to not stress CPU too much; Imporoved placement for show_time(), multi messages
This commit is contained in:
parent
41a3d3971e
commit
13faad1855
|
@ -1,5 +1,9 @@
|
||||||
D1X-Rebirth Changelog
|
D1X-Rebirth Changelog
|
||||||
|
|
||||||
|
20110122
|
||||||
|
--------
|
||||||
|
main/console.c, main/game.c, main/gamerend.c, main/gauges.c: Added timer_update() to stop/start/reset_time() functions so resumed last_timer_value will be precise; Added new FPS counter which actually does count the frames rendered per second and is less irritating; Added timer_dleay2 call to console to not stress CPU too much; Imporoved placement for show_time(), multi messages
|
||||||
|
|
||||||
20110121
|
20110121
|
||||||
--------
|
--------
|
||||||
main/render.c: Protection for negative array index in find_seg_side was accidentially checking for vv1 != -1 - fixed that
|
main/render.c: Protection for negative array index in find_seg_side was accidentially checking for vv1 != -1 - fixed that
|
||||||
|
|
|
@ -209,6 +209,7 @@ int con_handler(window *wind, d_event *event)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
case EVENT_WINDOW_DRAW:
|
case EVENT_WINDOW_DRAW:
|
||||||
|
timer_delay2(50);
|
||||||
if (con_state == CON_STATE_OPENING)
|
if (con_state == CON_STATE_OPENING)
|
||||||
{
|
{
|
||||||
if (con_size < CON_LINES_ONSCREEN && timer_query() >= last_scroll_time+(F1_0/30))
|
if (con_size < CON_LINES_ONSCREEN && timer_query() >= last_scroll_time+(F1_0/30))
|
||||||
|
|
|
@ -366,6 +366,7 @@ void stop_time()
|
||||||
{
|
{
|
||||||
if (time_paused==0) {
|
if (time_paused==0) {
|
||||||
fix64 time;
|
fix64 time;
|
||||||
|
timer_update();
|
||||||
time = timer_query();
|
time = timer_query();
|
||||||
last_timer_value = time - last_timer_value;
|
last_timer_value = time - last_timer_value;
|
||||||
if (last_timer_value < 0) {
|
if (last_timer_value < 0) {
|
||||||
|
@ -381,6 +382,7 @@ void start_time()
|
||||||
Assert(time_paused >= 0);
|
Assert(time_paused >= 0);
|
||||||
if (time_paused==0) {
|
if (time_paused==0) {
|
||||||
fix64 time;
|
fix64 time;
|
||||||
|
timer_update();
|
||||||
time = timer_query();
|
time = timer_query();
|
||||||
last_timer_value = time - last_timer_value;
|
last_timer_value = time - last_timer_value;
|
||||||
}
|
}
|
||||||
|
@ -431,6 +433,7 @@ void FixedStepCalc()
|
||||||
|
|
||||||
void reset_time()
|
void reset_time()
|
||||||
{
|
{
|
||||||
|
timer_update();
|
||||||
last_timer_value = timer_query();
|
last_timer_value = timer_query();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include "timer.h"
|
||||||
#include "pstypes.h"
|
#include "pstypes.h"
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
#include "inferno.h"
|
#include "inferno.h"
|
||||||
|
@ -68,72 +68,55 @@ void game_draw_multi_message()
|
||||||
gr_set_curfont(GAME_FONT);
|
gr_set_curfont(GAME_FONT);
|
||||||
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
||||||
sprintf( temp_string, "%s: %s_", TXT_MESSAGE, Network_message );
|
sprintf( temp_string, "%s: %s_", TXT_MESSAGE, Network_message );
|
||||||
gr_printf(0x8000, (SHEIGHT/5.555), temp_string );
|
gr_printf(0x8000, (LINE_SPACING*5)+FSPACY(1), temp_string );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( (Game_mode&GM_MULTI) && (multi_defining_message)) {
|
if ( (Game_mode&GM_MULTI) && (multi_defining_message)) {
|
||||||
gr_set_curfont(GAME_FONT);
|
gr_set_curfont(GAME_FONT);
|
||||||
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
||||||
sprintf( temp_string, "%s #%d: %s_", TXT_MACRO, multi_defining_message, Network_message );
|
sprintf( temp_string, "%s #%d: %s_", TXT_MACRO, multi_defining_message, Network_message );
|
||||||
gr_printf(0x8000, (SHEIGHT/5.555), temp_string );
|
gr_printf(0x8000, (LINE_SPACING*5)+FSPACY(1), temp_string );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fix frame_time_list[8] = {0,0,0,0,0,0,0,0};
|
|
||||||
fix frame_time_total=0;
|
|
||||||
int frame_time_cntr=0;
|
|
||||||
|
|
||||||
void ftoa(char *string, fix f)
|
|
||||||
{
|
|
||||||
int decimal, fractional;
|
|
||||||
|
|
||||||
decimal = f2i(f);
|
|
||||||
fractional = ((f & 0xffff)*100)/65536;
|
|
||||||
if (fractional < 0 )
|
|
||||||
fractional *= -1;
|
|
||||||
if (fractional > 99 ) fractional = 99;
|
|
||||||
sprintf( string, "FPS: %d.%02d", decimal, fractional );
|
|
||||||
}
|
|
||||||
|
|
||||||
void show_framerate()
|
void show_framerate()
|
||||||
{
|
{
|
||||||
char temp[13];
|
static int fps_count = 0, fps_rate = 0, aw = 0, w = 0, h = 0;
|
||||||
fix rate;
|
int y = GHEIGHT;
|
||||||
int aw,w,h;
|
static fix64 fps_time = 0;
|
||||||
|
|
||||||
frame_time_total += FrameTime - frame_time_list[frame_time_cntr];
|
if (w == 0) // w is static so size will only be calculated once
|
||||||
frame_time_list[frame_time_cntr] = FrameTime;
|
gr_get_string_size(GameArg.SysMaxFPS>999?"FPS: 0000":"FPS: 000",&w,&h,&aw);
|
||||||
frame_time_cntr = (frame_time_cntr+1)%8;
|
|
||||||
|
gr_set_curfont(GAME_FONT);
|
||||||
if (frame_time_total) {
|
gr_set_fontcolor(BM_XRGB(0,31,0),-1);
|
||||||
int y=GHEIGHT;
|
|
||||||
if (PlayerCfg.CockpitMode[1]==CM_FULL_SCREEN) {
|
if (PlayerCfg.CockpitMode[1] == CM_FULL_SCREEN) {
|
||||||
if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode && GM_MULTI))
|
if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode & GM_MULTI))
|
||||||
y -= LINE_SPACING * 10;
|
y -= LINE_SPACING * 10;
|
||||||
else
|
else
|
||||||
y -= LINE_SPACING * 4;
|
y -= LINE_SPACING * 4;
|
||||||
} else if (PlayerCfg.CockpitMode[1] == CM_STATUS_BAR) {
|
} else if (PlayerCfg.CockpitMode[1] == CM_STATUS_BAR) {
|
||||||
if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode && GM_MULTI))
|
if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode & GM_MULTI))
|
||||||
y -= LINE_SPACING * 6;
|
y -= LINE_SPACING * 6;
|
||||||
else
|
else
|
||||||
y -= LINE_SPACING * 1;
|
y -= LINE_SPACING * 1;
|
||||||
} else {
|
} else {
|
||||||
if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode && GM_MULTI))
|
if ((Game_mode & GM_MULTI) || (Newdemo_state == ND_STATE_PLAYBACK && Newdemo_game_mode & GM_MULTI))
|
||||||
y -= LINE_SPACING * 7;
|
y -= LINE_SPACING * 7;
|
||||||
else
|
else
|
||||||
y -= LINE_SPACING * 2;
|
y -= LINE_SPACING * 2;
|
||||||
}
|
|
||||||
|
|
||||||
rate = fixdiv(f1_0*8,frame_time_total);
|
|
||||||
|
|
||||||
gr_set_curfont(GAME_FONT);
|
|
||||||
gr_set_fontcolor(BM_XRGB(0,31,0),-1);
|
|
||||||
|
|
||||||
ftoa( temp, rate );
|
|
||||||
gr_get_string_size("FPS: 000.00",&w,&h,&aw);
|
|
||||||
gr_printf(SWIDTH-w-FSPACX(1),y,"%s", temp );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fps_count++;
|
||||||
|
if (timer_query() >= fps_time + F1_0)
|
||||||
|
{
|
||||||
|
fps_rate = fps_count;
|
||||||
|
fps_count = 0;
|
||||||
|
fps_time = timer_query();
|
||||||
|
}
|
||||||
|
gr_printf(SWIDTH-w-FSPACX(1),y,"FPS: %i",fps_rate);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NETWORK
|
#ifdef NETWORK
|
||||||
|
@ -282,7 +265,7 @@ void render_countdown_gauge()
|
||||||
if (!Endlevel_sequence && Control_center_destroyed && (Countdown_seconds_left>-1) && (Countdown_seconds_left<127)) {
|
if (!Endlevel_sequence && Control_center_destroyed && (Countdown_seconds_left>-1) && (Countdown_seconds_left<127)) {
|
||||||
gr_set_curfont(GAME_FONT);
|
gr_set_curfont(GAME_FONT);
|
||||||
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
gr_set_fontcolor(BM_XRGB(0,63,0),-1);
|
||||||
gr_printf(0x8000, (SHEIGHT/6.666), "T-%d s", Countdown_seconds_left );
|
gr_printf(0x8000, (LINE_SPACING*6)+FSPACY(1), "T-%d s", Countdown_seconds_left );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1313,7 +1313,7 @@ void show_time()
|
||||||
Color_0_31_0 = BM_XRGB(0,31,0);
|
Color_0_31_0 = BM_XRGB(0,31,0);
|
||||||
gr_set_fontcolor(Color_0_31_0, -1 );
|
gr_set_fontcolor(Color_0_31_0, -1 );
|
||||||
|
|
||||||
gr_printf(SWIDTH-FSPACX(25),(SHEIGHT/2),"%d:%02d", mins, secs);
|
gr_printf(SWIDTH-FSPACX(30),GHEIGHT-(LINE_SPACING*11),"%d:%02d", mins, secs);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue