Con_Printf ("%f seconds (%f fps)\n", time, 128/time);
}
-extern cvar_t r_drawportals;
-
vec3_t fogcolor;
vec_t fogdensity;
float fog_density, fog_red, fog_green, fog_blue;
return sky;
}
+/*
+=============
+R_DrawViewModel
+=============
+*/
+void R_DrawViewModel (void)
+{
+ entity_render_t *ent;
+
+ // FIXME: move these checks to client
+ if (!r_drawviewmodel.integer || chase_active.integer || envmap || !r_drawentities.integer || cl.items & IT_INVISIBILITY || cl.stats[STAT_HEALTH] <= 0 || !cl.viewent.render.model)
+ return;
+
+ ent = &cl.viewent.render;
+ Mod_CheckLoaded(ent->model);
+ R_LerpAnimation(ent);
+ Matrix4x4_CreateFromQuakeEntity(&ent->matrix, ent->origin[0], ent->origin[1], ent->origin[2], -ent->angles[0], ent->angles[1], ent->angles[2], ent->scale);
+ Matrix4x4_Invert_Simple(&ent->inversematrix, &ent->matrix);
+ R_UpdateEntLights(ent);
+ ent->model->Draw(ent);
+}
+
void R_DrawNoModel(entity_render_t *ent);
void R_DrawModels (void)
{
if (!r_drawentities.integer)
return;
+ R_DrawViewModel();
for (i = 0;i < r_refdef.numentities;i++)
{
ent = r_refdef.entities[i];
}
}
-/*
-=============
-R_DrawViewModel
-=============
-*/
-void R_DrawViewModel (void)
-{
- entity_render_t *ent;
-
- // FIXME: move these checks to client
- if (!r_drawviewmodel.integer || chase_active.integer || envmap || !r_drawentities.integer || cl.items & IT_INVISIBILITY || cl.stats[STAT_HEALTH] <= 0 || !cl.viewent.render.model)
- return;
-
- ent = &cl.viewent.render;
- Mod_CheckLoaded(ent->model);
- R_LerpAnimation(ent);
- Matrix4x4_CreateFromQuakeEntity(&ent->matrix, ent->origin[0], ent->origin[1], ent->origin[2], -ent->angles[0], ent->angles[1], ent->angles[2], ent->scale);
- Matrix4x4_Invert_Simple(&ent->inversematrix, &ent->matrix);
- R_UpdateEntLights(ent);
- ent->model->Draw(ent);
-}
-
static void R_SetFrustum (void)
{
int i;
if (R_DrawBrushModelsSky())
R_TimeReport("bmodelsky");
- if (world->model)
- {
- R_DrawWorld(world);
- R_TimeReport("worldnode");
-
- R_SurfMarkLights(world);
- R_TimeReport("marklights");
-
- R_PrepareSurfaces(world);
- R_TimeReport("surfprep");
-
- R_DrawSurfaces(world, SHADERSTAGE_SKY);
- R_DrawSurfaces(world, SHADERSTAGE_NORMAL);
- R_TimeReport("surfdraw");
-
- if (r_drawportals.integer)
- {
- R_DrawPortals(world);
- R_TimeReport("portals");
- }
- }
-
- // don't let sound skip if going slow
- if (!intimerefresh && !r_speeds.integer)
- S_ExtraUpdate ();
-
- R_DrawViewModel();
- R_TimeReport("viewmodel");
-
R_DrawModels();
R_TimeReport("models");
R_DrawExplosions();
R_TimeReport("explosions");
+ // don't let sound skip if going slow
+ if (!intimerefresh && !r_speeds.integer)
+ S_ExtraUpdate ();
+
+ R_DrawWorld(world);
+ R_TimeReport("world");
+
R_MeshQueue_RenderTransparent();
- R_TimeReport("addtrans");
+ R_TimeReport("drawtrans");
R_DrawCoronas();
R_TimeReport("coronas");