Xonotic QuakeC
The free, fast arena FPS with crisp movement and a wide array of weapons
engineinfo.qc File Reference
#include "engineinfo.qh"
#include <client/draw.qh>
Include dependency graph for engineinfo.qc:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void HUD_EngineInfo (bool should_draw)
void HUD_EngineInfo_Export (int fh)

Variables

int framecounter
float frametimeavg
float frametimeavg1
float frametimeavg2
float prevfps
float prevfps_time

Function Documentation

◆ HUD_EngineInfo()

void HUD_EngineInfo ( bool should_draw)

Definition at line 20 of file engineinfo.qc.

21{
22 if (!should_draw)
23 return;
25 return;
26
28 vector pos = panel_pos;
29 vector mySize = panel_size;
30
33 else
37 {
38 pos += '1 1 0' * panel_bg_padding;
39 mySize -= '2 2 0' * panel_bg_padding;
40 }
41
42 float currentTime = gettime(GETTIME_FRAMESTART);
44 {
45 float currentframetime = currentTime - prevfps_time;
46 frametimeavg = (frametimeavg + frametimeavg1 + frametimeavg2 + currentframetime) * 0.25; // average three frametimes into framecounter for slightly more stable fps readings :P
49
50 if (currentframetime > 0.0001) // filter out insane values which sometimes seem to occur and throw off the average? If you are getting 10,000 fps or more, then you don't need a framerate counter.
51 {
52 if (fabs(prevfps - (1 / frametimeavg)) > prevfps * autocvar_hud_panel_engineinfo_fps_movingaverage_instantupdate_threshold) // if there was a big jump in fps, just force prevfps at current (1 / currentframetime) to make big updates instant
53 prevfps = 1 / currentframetime;
55 prevfps = (1 - weight) * prevfps + weight * (1 / frametimeavg); // framecounter just used so there's no need for a new variable, think of it as "frametime average"
56 }
57 prevfps_time = currentTime;
58 }
59 else
60 {
63 {
64 prevfps = framecounter / (currentTime - prevfps_time);
65 framecounter = 0;
66 prevfps_time = currentTime;
67 }
68 }
69
72}
void drawstring_aspect(vector pos, string text, vector sz, vector color, float theAlpha, float drawflag)
Definition draw.qc:109
const float DRAWFLAG_NORMAL
float GETTIME_FRAMESTART
vector color
Definition dynlight.qc:15
float prevfps
Definition engineinfo.qc:12
float prevfps_time
Definition engineinfo.qc:13
float frametimeavg
Definition engineinfo.qc:16
float frametimeavg2
Definition engineinfo.qc:18
float frametimeavg1
Definition engineinfo.qc:17
int framecounter
Definition engineinfo.qc:14
float autocvar_hud_panel_engineinfo_fps_time
Definition engineinfo.qh:7
float autocvar_hud_panel_engineinfo_fps_movingaverage
Definition engineinfo.qh:8
float autocvar_hud_panel_engineinfo_fps_movingaverage_weight
Definition engineinfo.qh:9
bool autocvar_hud_panel_engineinfo_dynamichud
Definition engineinfo.qh:5
float autocvar_hud_panel_engineinfo_fps_decimals
Definition engineinfo.qh:6
float autocvar_hud_panel_engineinfo_fps_movingaverage_instantupdate_threshold
Definition engineinfo.qh:10
bool autocvar_hud_panel_engineinfo
Definition engineinfo.qh:4
void HUD_Panel_LoadCvars()
Definition hud.qc:215
void HUD_Scale_Enable()
Definition hud.qc:91
vector HUD_Get_Num_Color(float hp, float maxvalue, bool blink)
Definition hud.qc:123
void HUD_Scale_Disable()
Definition hud.qc:84
vector panel_size
Definition hud.qh:163
float panel_fg_alpha
Definition hud.qh:169
float panel_bg_padding
Definition hud.qh:174
#define HUD_Panel_DrawBg()
Definition hud.qh:55
vector panel_pos
Definition hud.qh:162
bool autocvar__hud_configure
Definition hud_config.qh:3
float gettime(void)
float fabs(float f)
vector
Definition self.qh:92

References autocvar__hud_configure, autocvar_hud_panel_engineinfo, autocvar_hud_panel_engineinfo_dynamichud, autocvar_hud_panel_engineinfo_fps_decimals, autocvar_hud_panel_engineinfo_fps_movingaverage, autocvar_hud_panel_engineinfo_fps_movingaverage_instantupdate_threshold, autocvar_hud_panel_engineinfo_fps_movingaverage_weight, autocvar_hud_panel_engineinfo_fps_time, color, DRAWFLAG_NORMAL, drawstring_aspect(), fabs(), framecounter, frametimeavg, frametimeavg1, frametimeavg2, gettime(), GETTIME_FRAMESTART, HUD_Get_Num_Color(), HUD_Panel_DrawBg, HUD_Panel_LoadCvars(), HUD_Scale_Disable(), HUD_Scale_Enable(), panel_bg_padding, panel_fg_alpha, panel_pos, panel_size, prevfps, prevfps_time, and vector.

◆ HUD_EngineInfo_Export()

void HUD_EngineInfo_Export ( int fh)

Definition at line 7 of file engineinfo.qc.

8{
9 // allow saving cvars that aesthetically change the panel into hud skin files
10}

Variable Documentation

◆ framecounter

int framecounter

Definition at line 14 of file engineinfo.qc.

Referenced by HUD_EngineInfo().

◆ frametimeavg

float frametimeavg

Definition at line 16 of file engineinfo.qc.

Referenced by HUD_EngineInfo().

◆ frametimeavg1

float frametimeavg1

Definition at line 17 of file engineinfo.qc.

Referenced by HUD_EngineInfo().

◆ frametimeavg2

float frametimeavg2

Definition at line 18 of file engineinfo.qc.

Referenced by HUD_EngineInfo().

◆ prevfps

float prevfps

Definition at line 12 of file engineinfo.qc.

Referenced by HUD_EngineInfo().

◆ prevfps_time

float prevfps_time

Definition at line 13 of file engineinfo.qc.

Referenced by HUD_EngineInfo().