]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - gl_rsurf.c
some const fixes and type fixes found by gcc -combine
[xonotic/darkplaces.git] / gl_rsurf.c
index 23e6f3af66fd6440fe43ad3af964e67cb4c05de9..586219e5bbf87b7e82a9572b7cf48de2cc0155bb 100644 (file)
@@ -43,7 +43,7 @@ void R_BuildLightMap (const entity_render_t *ent, msurface_t *surface)
        int smax, tmax, i, size, size3, maps, l;
        int *bl, scale;
        unsigned char *lightmap, *out, *stain;
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        int *intblocklights;
        unsigned char *templight;
 
@@ -162,7 +162,7 @@ void R_BuildLightMap (const entity_render_t *ent, msurface_t *surface)
        }
 }
 
-void R_StainNode (mnode_t *node, model_t *model, const vec3_t origin, float radius, const float fcolor[8])
+void R_StainNode (mnode_t *node, dp_model_t *model, const vec3_t origin, float radius, const float fcolor[8])
 {
        float ndist, a, ratio, maxdist, maxdist2, maxdist3, invradius, sdtable[256], td, dist2;
        msurface_t *surface, *endsurface;
@@ -289,7 +289,7 @@ void R_Stain (const vec3_t origin, float radius, int cr1, int cg1, int cb1, int
        int n;
        float fcolor[8];
        entity_render_t *ent;
-       model_t *model;
+       dp_model_t *model;
        vec3_t org;
        if (r_refdef.scene.worldmodel == NULL || !r_refdef.scene.worldmodel->brush.data_nodes || !r_refdef.scene.worldmodel->brushq1.lightdata)
                return;
@@ -370,7 +370,7 @@ void R_DrawPortals(void)
        int i, leafnum;
        mportal_t *portal;
        float center[3], f;
-       model_t *model = r_refdef.scene.worldmodel;
+       dp_model_t *model = r_refdef.scene.worldmodel;
        if (model == NULL)
                return;
        for (leafnum = 0;leafnum < r_refdef.scene.worldmodel->brush.num_leafs;leafnum++)
@@ -400,7 +400,7 @@ void R_View_WorldVisibility(qboolean forcenovis)
        int i, j, *mark;
        mleaf_t *leaf;
        mleaf_t *viewleaf;
-       model_t *model = r_refdef.scene.worldmodel;
+       dp_model_t *model = r_refdef.scene.worldmodel;
 
        if (!model)
                return;
@@ -465,7 +465,7 @@ void R_View_WorldVisibility(qboolean forcenovis)
                }
                // just check if each leaf in the PVS is on screen
                // (unless portal culling is enabled)
-               else if (r_useportalculling.integer < 1 || (r_useportalculling.integer < 2 && !r_novis.integer))
+               else if (!model->brush.data_portals || r_useportalculling.integer < 1 || (r_useportalculling.integer < 2 && !r_novis.integer))
                {
                        // pvs method:
                        // simply check if each leaf is in the Potentially Visible Set,
@@ -545,7 +545,7 @@ void R_Q1BSP_DrawSky(entity_render_t *ent)
 
 void R_Q1BSP_DrawAddWaterPlanes(entity_render_t *ent)
 {
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        if (model == NULL)
                return;
        if (ent == r_refdef.scene.worldentity)
@@ -556,7 +556,7 @@ void R_Q1BSP_DrawAddWaterPlanes(entity_render_t *ent)
 
 void R_Q1BSP_Draw(entity_render_t *ent)
 {
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        if (model == NULL)
                return;
        if (ent == r_refdef.scene.worldentity)
@@ -567,7 +567,7 @@ void R_Q1BSP_Draw(entity_render_t *ent)
 
 void R_Q1BSP_DrawDepth(entity_render_t *ent)
 {
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        if (model == NULL)
                return;
        GL_ColorMask(0,0,0,0);
@@ -598,7 +598,7 @@ void R_Q1BSP_DrawDebug(entity_render_t *ent)
 
 typedef struct r_q1bsp_getlightinfo_s
 {
-       model_t *model;
+       dp_model_t *model;
        vec3_t relativelightorigin;
        float lightradius;
        int *outleaflist;
@@ -925,12 +925,12 @@ void R_Q1BSP_GetLightInfo(entity_render_t *ent, vec3_t relativelightorigin, floa
                info.pvs = NULL;
        R_UpdateAllTextureInfo(ent);
 
-       if (r_shadow_frontsidecasting.integer && r_shadow_compilingrtlight && r_shadow_realtime_world_compileportalculling.integer)
+       if (r_shadow_frontsidecasting.integer && r_shadow_compilingrtlight && r_shadow_realtime_world_compileportalculling.integer && info.model->brush.data_portals)
        {
                // use portal recursion for exact light volume culling, and exact surface checking
                Portal_Visibility(info.model, info.relativelightorigin, info.outleaflist, info.outleafpvs, &info.outnumleafs, info.outsurfacelist, info.outsurfacepvs, &info.outnumsurfaces, NULL, 0, true, info.lightmins, info.lightmaxs, info.outmins, info.outmaxs, info.outshadowtrispvs, info.outlighttrispvs);
        }
-       else if (r_shadow_frontsidecasting.integer && r_shadow_realtime_dlight_portalculling.integer)
+       else if (r_shadow_frontsidecasting.integer && r_shadow_realtime_dlight_portalculling.integer && info.model->brush.data_portals)
        {
                // use portal recursion for exact light volume culling, but not the expensive exact surface checking
                Portal_Visibility(info.model, info.relativelightorigin, info.outleaflist, info.outleafpvs, &info.outnumleafs, info.outsurfacelist, info.outsurfacepvs, &info.outnumsurfaces, NULL, 0, r_shadow_realtime_dlight_portalculling.integer >= 2, info.lightmins, info.lightmaxs, info.outmins, info.outmaxs, info.outshadowtrispvs, info.outlighttrispvs);
@@ -958,7 +958,7 @@ void R_Q1BSP_GetLightInfo(entity_render_t *ent, vec3_t relativelightorigin, floa
 
 void R_Q1BSP_CompileShadowVolume(entity_render_t *ent, vec3_t relativelightorigin, vec3_t relativelightdirection, float lightradius, int numsurfaces, const int *surfacelist)
 {
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        msurface_t *surface;
        int surfacelistindex;
        float projectdistance = relativelightdirection ? lightradius : lightradius + model->radius*2 + r_shadow_projectdistance.value;
@@ -977,9 +977,9 @@ void R_Q1BSP_CompileShadowVolume(entity_render_t *ent, vec3_t relativelightorigi
 
 extern cvar_t r_polygonoffset_submodel_factor;
 extern cvar_t r_polygonoffset_submodel_offset;
-void R_Q1BSP_DrawShadowVolume(entity_render_t *ent, vec3_t relativelightorigin, vec3_t relativelightdirection, float lightradius, int modelnumsurfaces, const int *modelsurfacelist, const vec3_t lightmins, const vec3_t lightmaxs)
+void R_Q1BSP_DrawShadowVolume(entity_render_t *ent, const vec3_t relativelightorigin, const vec3_t relativelightdirection, float lightradius, int modelnumsurfaces, const int *modelsurfacelist, const vec3_t lightmins, const vec3_t lightmaxs)
 {
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        msurface_t *surface;
        int modelsurfacelistindex;
        float projectdistance = relativelightdirection ? lightradius : lightradius + model->radius*2 + r_shadow_projectdistance.value;
@@ -1030,7 +1030,7 @@ static void R_Q1BSP_DrawLight_TransparentCallback(const entity_render_t *ent, co
        msurface_t *surface;
        // note: in practice this never actually receives batches), oh well
        R_Shadow_RenderMode_Begin();
-       R_Shadow_RenderMode_ActiveLight((rtlight_t *)rtlight);
+       R_Shadow_RenderMode_ActiveLight(rtlight);
        R_Shadow_RenderMode_Lighting(false, true);
        R_Shadow_SetupEntityLight(ent);
        for (i = 0;i < numsurfaces;i = j)
@@ -1057,7 +1057,7 @@ static void R_Q1BSP_DrawLight_TransparentCallback(const entity_render_t *ent, co
 
 void R_Q1BSP_DrawLight(entity_render_t *ent, int numsurfaces, const int *surfacelist, const unsigned char *trispvs)
 {
-       model_t *model = ent->model;
+       dp_model_t *model = ent->model;
        msurface_t *surface;
        int i, k, kend, l, m, mend, endsurface, batchnumsurfaces, batchnumtriangles, batchfirstvertex, batchlastvertex, batchfirsttriangle;
        qboolean usebufferobject, culltriangles;
@@ -1177,7 +1177,7 @@ void R_Q1BSP_DrawLight(entity_render_t *ent, int numsurfaces, const int *surface
 //Made by [515]
 void R_ReplaceWorldTexture (void)
 {
-       model_t         *m;
+       dp_model_t              *m;
        texture_t       *t;
        int                     i;
        const char      *r, *newt;
@@ -1227,7 +1227,7 @@ void R_ReplaceWorldTexture (void)
 //Made by [515]
 void R_ListWorldTextures (void)
 {
-       model_t         *m;
+       dp_model_t              *m;
        texture_t       *t;
        int                     i;
        if (!r_refdef.scene.worldmodel)