Allow viewmodel to draw in a second pass (r_viewmodelpass 1)

This commit is contained in:
Marco Cawthorne 2020-03-30 14:47:17 +02:00
parent 576547f249
commit cee8a25d82
2 changed files with 18 additions and 13 deletions

View file

@ -46,6 +46,8 @@ var vector autocvar_cl_logocolor = [255,0,0];
var vector autocvar_con_color = [255,150,0];
var vector autocvar_vgui_color = [255,170,0];
var vector autocvar_v_gunofs = [0,0,0];
var int autocvar_r_viewmodelpass = 0;
var float autocvar_r_viewmodelfov = 90.0f;
/* particle descriptors */
var float PARTICLE_BLOOD;

View file

@ -267,19 +267,22 @@ CSQC_UpdateView(float w, float h, float focus)
setproperty(VF_SKYROOM_CAMERA, g_skypos + realpos);
}
/* draw the world/entities */
renderscene();
/* Now we draw the viewmodel in a second pass */
clearscene();
setproperty(VF_MIN, video_mins);
setproperty(VF_SIZE, video_res);
setproperty(VF_ANGLES, view_angles + pl.punchangle);
setproperty(VF_DRAWWORLD, 0);
setproperty(VF_AFOV, cvar("cl_viewmodelfov"));
setproperty(VF_ORIGIN, pSeat->vPlayerOrigin + pl.view_ofs);
View_DrawViewModel();
renderscene();
/* draw the viewmodel in a second pass if desired */
if (autocvar_r_viewmodelpass) {
renderscene();
clearscene();
setproperty(VF_MIN, video_mins);
setproperty(VF_SIZE, video_res);
setproperty(VF_ANGLES, view_angles + pl.punchangle);
setproperty(VF_DRAWWORLD, 0);
setproperty(VF_AFOV, autocvar_r_viewmodelfov);
setproperty(VF_ORIGIN, pSeat->vPlayerOrigin + pl.view_ofs);
View_DrawViewModel();
renderscene();
} else {
View_DrawViewModel();
renderscene();
}
/* Run this on all players */
for (entity b = world; (b = find(b, ::classname, "player"));) {