refactored flat_model_enabler

This commit is contained in:
Zeno Rogue 2020-04-17 15:54:48 +02:00
parent 9c61da86f3
commit 0a6c80e909
5 changed files with 25 additions and 24 deletions

View File

@ -1974,11 +1974,7 @@ EX void showCustomizeChar() {
int firsty = dialog::items[0].position / 2;
int scale = firsty - 2 * vid.fsize;
dynamicval<eModel> pm(pmodel, flat_model());
glClear(GL_DEPTH_BUFFER_BIT);
dynamicval<ld> va(pconf.alpha, 1);
dynamicval<ld> vs(pconf.scale, 1);
dynamicval<ld> vc(pconf.camera_angle, 0);
flat_model_enabler fme;
initquickqueue();
transmatrix V = atscreenpos(vid.xres/2, firsty, scale);

10
hud.cpp
View File

@ -401,20 +401,12 @@ EX void drawStats() {
if(geometry == gRotSpace || geometry == gProduct) rots::draw_underlying(!cornermode);
{
dynamicval<eModel> pm(pmodel, flat_model());
glClear(GL_DEPTH_BUFFER_BIT);
// dynamicval<videopar> v(vid, vid);
// pconf.alpha = vid.scale = 1;
dynamicval<ld> va(pconf.alpha, 1);
dynamicval<ld> vs(pconf.scale, 1);
dynamicval<ld> vc(pconf.camera_angle, 0);
if(prod) pconf.alpha = 30, pconf.scale = 30;
auto& cd = current_display;
auto xc = cd->xcenter;
auto yc = cd->ycenter;
calcparam();
flat_model_enabler fme;
if(crosshair_color && crosshair_size > 0) {
initquickqueue();

View File

@ -1518,6 +1518,27 @@ transmatrix screenpos(ld x, ld y) {
EX eModel flat_model() { return MDIM == 4 ? mdPixel : mdDisk; }
/** \brief enable the 'flat' model for drawing HUD. See hr::flat_model_enabler */
EX void enable_flat_model() {
glClear(GL_DEPTH_BUFFER_BIT);
pmodel = flat_model();
pconf.alpha = 1;
pconf.scale = 1;
pconf.camera_angle = 0;
pconf.stretch = 1;
if(prod) pconf.alpha = 30, pconf.scale = 30;
calcparam();
}
#if HDR
/** \brief enable the 'flat' model for drawing HUD. Use RAII so it will be switched back later */
struct flat_model_enabler {
projection_configuration bak;
flat_model_enabler() { bak = pconf; enable_flat_model(); }
~flat_model_enabler() { pconf = bak; calcparam(); }
};
#endif
EX transmatrix atscreenpos(ld x, ld y, ld size) {
transmatrix V = Id;

View File

@ -513,14 +513,7 @@ EX namespace inv {
int j = 0, oc = 6;
if(1) {
dynamicval<eModel> pm(pmodel, flat_model());
glClear(GL_DEPTH_BUFFER_BIT);
// dynamicval<videopar> v(vid, vid);
// pconf.alpha = vid.scale = 1;
dynamicval<ld> va(pconf.alpha, 1);
dynamicval<ld> vs(pconf.scale, 1);
dynamicval<ld> vc(pconf.camera_angle, 0);
calcparam();
flat_model_enabler fme;
for(int i=0; i<ittypes; i++) {
eItem o = eItem(i);

View File

@ -1381,8 +1381,7 @@ EX void drawStats() {
if(!racing::on) return;
dynamicval<eModel> pm(pmodel, flat_model());
glClear(GL_DEPTH_BUFFER_BIT);
flat_model_enabler fme;
initquickqueue();
int bsize = vid.fsize * 2;