- R_Shadow_RenderVolume(mesh->numverts, mesh->numtriangles, mesh->elements, visiblevolume);
- }
-}
-
-void R_DrawShadowVolumes (void)
-{
- int i, lnum;
- entity_render_t *ent;
- vec3_t mins, maxs;//, relativelightorigin;
- mlight_t *sl;
- rdlight_t *rd;
- rmeshstate_t m;
-
- for (lnum = 0, sl = cl.worldmodel->lights;lnum < cl.worldmodel->numlights;lnum++, sl++)
- {
- if (d_lightstylevalue[sl->style] <= 0)
- continue;
- if (r_light_debuglight.integer >= 0 && lnum != r_light_debuglight.integer)
- continue;
- /*
- mins[0] = sl->origin[0] - sl->cullradius;
- maxs[0] = sl->origin[0] + sl->cullradius;
- mins[1] = sl->origin[1] - sl->cullradius;
- maxs[1] = sl->origin[1] + sl->cullradius;
- mins[2] = sl->origin[2] - sl->cullradius;
- maxs[2] = sl->origin[2] + sl->cullradius;
- if (R_CullBox(mins, maxs))
- continue;
- */
- if (R_CullBox(sl->mins, sl->maxs))
- continue;
- memset(&m, 0, sizeof(m));
- m.blendfunc1 = GL_ONE;
- m.blendfunc2 = GL_ONE;
- R_Mesh_State(&m);
- GL_Color(0.0 * r_colorscale, 0.0125 * r_colorscale, 0.1 * r_colorscale, 1);
- if (sl->shadowvolume && r_staticworldlights.integer)
- R_DrawWorldLightShadowVolume(sl, true);
- else
- {
- ent = &cl_entities[0].render;
- R_TestAndDrawShadowVolume(ent, sl->origin, sl->cullradius, true);
- }
- /*
- ent = &cl_entities[0].render;
- if (ent->model && ent->model->DrawShadowVolume && ent->maxs[0] >= mins[0] && ent->mins[0] <= maxs[0] && ent->maxs[1] >= mins[1] && ent->mins[1] <= maxs[1] && ent->maxs[2] >= mins[2] && ent->mins[2] <= maxs[2])
- {
- Matrix4x4_Transform(&ent->inversematrix, sl->origin, relativelightorigin);
- ent->model->DrawShadowVolume (ent, relativelightorigin, sl->cullradius, true);
- }
- */
- if (r_drawentities.integer)
- {
- for (i = 0;i < r_refdef.numentities;i++)
- {
- ent = r_refdef.entities[i];
- /*
- if (ent->mins[0] <= sl->maxs[0]
- && ent->maxs[0] >= sl->mins[0]
- && ent->mins[1] <= sl->maxs[1]
- && ent->maxs[1] >= sl->mins[1]
- && ent->mins[2] <= sl->maxs[2]
- && ent->maxs[2] >= sl->mins[2])
- */
- R_TestAndDrawShadowVolume(ent, sl->origin, sl->cullradius, true);
- /*
- ent = r_refdef.entities[i];
- if (ent->model && ent->model->DrawShadowVolume && ent->maxs[0] >= mins[0] && ent->mins[0] <= maxs[0] && ent->maxs[1] >= mins[1] && ent->mins[1] <= maxs[1] && ent->maxs[2] >= mins[2] && ent->mins[2] <= maxs[2])
- {
- Matrix4x4_Transform(&ent->inversematrix, sl->origin, relativelightorigin);
- ent->model->DrawShadowVolume (ent, relativelightorigin, sl->cullradius, true);
- }
- */
- }
- }
- }
-
- for (lnum = 0, rd = r_dlight;lnum < r_numdlights;lnum++, rd++)
- {
- mins[0] = rd->origin[0] - rd->cullradius;
- maxs[0] = rd->origin[0] + rd->cullradius;
- mins[1] = rd->origin[1] - rd->cullradius;
- maxs[1] = rd->origin[1] + rd->cullradius;
- mins[2] = rd->origin[2] - rd->cullradius;
- maxs[2] = rd->origin[2] + rd->cullradius;
- if (R_CullBox(mins, maxs))
- continue;
- memset(&m, 0, sizeof(m));
- m.blendfunc1 = GL_ONE;
- m.blendfunc2 = GL_ONE;
- R_Mesh_State(&m);
- GL_Color(0.1 * r_colorscale, 0.0125 * r_colorscale, 0.0 * r_colorscale, 1);
- ent = &cl_entities[0].render;
- if (ent != rd->ent)
- R_TestAndDrawShadowVolume(ent, rd->origin, rd->cullradius, true);
- /*
- ent = &cl_entities[0].render;
- if (ent != rd->ent && ent->model && ent->model->DrawShadowVolume && ent->maxs[0] >= mins[0] && ent->mins[0] <= maxs[0] && ent->maxs[1] >= mins[1] && ent->mins[1] <= maxs[1] && ent->maxs[2] >= mins[2] && ent->mins[2] <= maxs[2])
- {
- Matrix4x4_Transform(&ent->inversematrix, rd->origin, relativelightorigin);
- ent->model->DrawShadowVolume (ent, relativelightorigin, rd->cullradius, true);
- }
- */
- if (r_drawentities.integer)
- {
- for (i = 0;i < r_refdef.numentities;i++)
- {
- ent = r_refdef.entities[i];
- if (ent != rd->ent)
- R_TestAndDrawShadowVolume(ent, rd->origin, rd->cullradius, true);
- /*
- ent = r_refdef.entities[i];
- if (ent != rd->ent && ent->model && ent->model->DrawShadowVolume && ent->maxs[0] >= mins[0] && ent->mins[0] <= maxs[0] && ent->maxs[1] >= mins[1] && ent->mins[1] <= maxs[1] && ent->maxs[2] >= mins[2] && ent->mins[2] <= maxs[2])
- {
- Matrix4x4_Transform(&ent->inversematrix, rd->origin, relativelightorigin);
- ent->model->DrawShadowVolume (ent, relativelightorigin, rd->cullradius, true);
- }
- */
- }
- }