vec3_t v;
entity_render_t *ent;
+ ent = &cl_entities[0].render;
+ Matrix4x4_CreateIdentity(&ent->matrix);
+ Matrix4x4_CreateIdentity(&ent->inversematrix);
+
R_FarClip_Box(cl.worldmodel->normalmins, cl.worldmodel->normalmaxs);
if (!r_drawentities.integer)
if (R_VisibleCullBox(ent->mins, ent->maxs))
continue;
+ VectorCopy(ent->angles, v);
+ if (ent->model->type != mod_brush)
+ v[0] = -v[0];
+ Matrix4x4_CreateFromQuakeEntity(&ent->matrix, ent->origin[0], ent->origin[1], ent->origin[2], v[0], v[1], v[2], ent->scale);
+ Matrix4x4_Invert_Simple(&ent->inversematrix, &ent->matrix);
R_LerpAnimation(ent);
ent->visframe = r_framecount;
R_FarClip_Box(ent->mins, ent->maxs);
+
+ R_UpdateEntLights(ent);
}
}
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);
}
m.depthdisable = true; // magic
m.numtriangles = 1;
m.numverts = 3;
+ Matrix4x4_CreateIdentity(&m.matrix);
if (R_Mesh_Draw_GetBuffer(&m, false))
{
m.index[0] = 0;
R_SkyStartFrame();
R_BuildLightList();
- R_MeshQueue_BeginScene();
-
R_FarClip_Start(r_origin, vpn, 768.0f);
R_TimeReport("setup");
R_MarkEntities();
R_TimeReport("markentity");
- R_MarkWorldLights(world);
+ R_SurfMarkLights(world);
R_TimeReport("marklights");
r_farclip = R_FarClip_Finish() + 256.0f;
R_Mesh_Start(r_farclip);
+ R_MeshQueue_BeginScene();
+
if (skyrendermasked)
{
R_TimeReport("viewmodel");
}
- R_SetupForWorldRendering(world);
R_PrepareSurfaces(world);
R_TimeReport("surfprep");
R_DrawExplosions();
R_TimeReport("explosions");
- R_MeshQueue_EndScene();
-
- R_Mesh_AddTransparent();
+ R_MeshQueue_RenderTransparent();
R_TimeReport("addtrans");
R_DrawCoronas();
R_BlendView();
R_TimeReport("blendview");
+ R_MeshQueue_Render();
+
+ R_MeshQueue_EndScene();
+
R_Mesh_Finish();
R_TimeReport("meshfinish");
}