X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=gl_rsurf.c;h=96f2bc8acf7a12fdd389c7026a2b90eafc33950a;hb=c9224df6b5391897c23a5f1ca33714b9390e8c87;hp=b8506b6b9af4bf0d15b883a363e96d0f6499795d;hpb=deb439e4d0f954489242e932c0fefee5cc2b3f77;p=xonotic%2Fdarkplaces.git diff --git a/gl_rsurf.c b/gl_rsurf.c index b8506b6b..96f2bc8a 100644 --- a/gl_rsurf.c +++ b/gl_rsurf.c @@ -344,14 +344,14 @@ static void R_DrawPortal_Callback(const entity_render_t *ent, const rtlight_t *r GL_PolygonOffset(r_refdef.polygonfactor, r_refdef.polygonoffset); GL_DepthTest(true); GL_CullFace(GL_NONE); - R_Mesh_Matrix(&identitymatrix); + R_EntityMatrix(&identitymatrix); numpoints = min(portal->numpoints, POLYGONELEMENTS_MAXPOINTS); R_Mesh_VertexPointer(vertex3f, 0, 0); R_Mesh_ColorPointer(NULL, 0, 0); R_Mesh_ResetTextureState(); - R_SetupGenericShader(false); + R_SetupShader_Generic(NULL, NULL, GL_MODULATE, 1); isvis = (portal->here->clusterindex >= 0 && portal->past->clusterindex >= 0 && portal->here->clusterindex != portal->past->clusterindex); @@ -608,7 +608,7 @@ void R_Q1BSP_DrawDepth(entity_render_t *ent) GL_AlphaTest(false); R_Mesh_ColorPointer(NULL, 0, 0); R_Mesh_ResetTextureState(); - R_SetupDepthOrShadowShader(); + R_SetupShader_DepthOrShadow(); if (ent == r_refdef.scene.worldentity) R_DrawWorldSurfaces(false, false, true, false, false); else @@ -724,7 +724,7 @@ static void R_Q1BSP_RecursiveGetLightInfo(r_q1bsp_getlightinfo_t *info, mnode_t { int i; mportal_t *portal; - static double points[128][3]; + static float points[128][3]; for (portal = leaf->portals;portal;portal = portal->next) { for (i = 0;i < portal->numpoints;i++) @@ -768,7 +768,7 @@ static void R_Q1BSP_RecursiveGetLightInfo(r_q1bsp_getlightinfo_t *info, mnode_t msurface_t *surface; const int *e; const vec_t *v[3]; - double v2[3][3]; + float v2[3][3]; for (leafsurfaceindex = 0;leafsurfaceindex < leaf->numleafsurfaces;leafsurfaceindex++) { surfaceindex = leaf->firstleafsurface[leafsurfaceindex]; @@ -790,8 +790,6 @@ static void R_Q1BSP_RecursiveGetLightInfo(r_q1bsp_getlightinfo_t *info, mnode_t { if (info->svbsp_insertoccluder) { - if (!(currentmaterialflags & MATERIALFLAG_NOCULLFACE) && r_shadow_frontsidecasting.integer != PointInfrontOfTriangle(info->relativelightorigin, v[0], v[1], v[2])) - continue; if (currentmaterialflags & MATERIALFLAG_NOSHADOW) continue; VectorCopy(v[0], v2[0]); @@ -859,7 +857,7 @@ static void R_Q1BSP_CallRecursiveGetLightInfo(r_q1bsp_getlightinfo_t *info, qboo { if (use_svbsp) { - double origin[3]; + float origin[3]; VectorCopy(info->relativelightorigin, origin); if (!r_svbsp.nodes) { @@ -920,11 +918,11 @@ static void R_Q1BSP_CallRecursiveGetLightInfo(r_q1bsp_getlightinfo_t *info, qboo info->svbsp_insertoccluder = false; R_Q1BSP_RecursiveGetLightInfo(info, info->model->brush.data_nodes); - if (developer.integer >= 100 && use_svbsp) + if (developer_extra.integer && use_svbsp) { - Con_Printf("GetLightInfo: svbsp built with %i nodes, polygon stats:\n", r_svbsp.numnodes); - Con_Printf("occluders: %i accepted, %i rejected, %i fragments accepted, %i fragments rejected.\n", r_svbsp.stat_occluders_accepted, r_svbsp.stat_occluders_rejected, r_svbsp.stat_occluders_fragments_accepted, r_svbsp.stat_occluders_fragments_rejected); - Con_Printf("queries : %i accepted, %i rejected, %i fragments accepted, %i fragments rejected.\n", r_svbsp.stat_queries_accepted, r_svbsp.stat_queries_rejected, r_svbsp.stat_queries_fragments_accepted, r_svbsp.stat_queries_fragments_rejected); + Con_DPrintf("GetLightInfo: svbsp built with %i nodes, polygon stats:\n", r_svbsp.numnodes); + Con_DPrintf("occluders: %i accepted, %i rejected, %i fragments accepted, %i fragments rejected.\n", r_svbsp.stat_occluders_accepted, r_svbsp.stat_occluders_rejected, r_svbsp.stat_occluders_fragments_accepted, r_svbsp.stat_occluders_fragments_rejected); + Con_DPrintf("queries : %i accepted, %i rejected, %i fragments accepted, %i fragments rejected.\n", r_svbsp.stat_queries_accepted, r_svbsp.stat_queries_rejected, r_svbsp.stat_queries_fragments_accepted, r_svbsp.stat_queries_fragments_rejected); } } @@ -1172,18 +1170,17 @@ static void R_Q1BSP_DrawLight_TransparentCallback(const entity_render_t *ent, co #define RSURF_MAX_BATCHSURFACES 8192 extern qboolean r_shadow_usingdeferredprepass; -void R_Q1BSP_DrawLight(entity_render_t *ent, int numsurfaces, const int *surfacelist, const unsigned char *trispvs) +void R_Q1BSP_DrawLight(entity_render_t *ent, int numsurfaces, const int *surfacelist, const unsigned char *lighttrispvs) { dp_model_t *model = ent->model; const msurface_t *surface; int i, k, kend, l, m, mend, endsurface, batchnumsurfaces, batchnumtriangles, batchfirstvertex, batchlastvertex, batchfirsttriangle; - qboolean usebufferobject, culltriangles; + qboolean usebufferobject; const int *element3i; static msurface_t *batchsurfacelist[RSURF_MAX_BATCHSURFACES]; static int batchelements[BATCHSIZE*3]; texture_t *tex; CHECKGLERROR - culltriangles = r_shadow_culltriangles.integer && !(ent->flags & RENDER_NOSELFSHADOW); element3i = rsurface.modelelement3i; // this is a double loop because non-visible surface skipping has to be // fast, and even if this is not the world model (and hence no visibility @@ -1244,17 +1241,9 @@ void R_Q1BSP_DrawLight(entity_render_t *ent, int numsurfaces, const int *surface RSurf_PrepareVerticesForBatch(true, true, 1, &surface); for (m = surface->num_firsttriangle, mend = m + surface->num_triangles;m < mend;m++) { - if (trispvs) - { - if (!CHECKPVSBIT(trispvs, m)) - { - usebufferobject = false; - continue; - } - } - else if (culltriangles) + if (lighttrispvs && r_test.integer) { - if (r_shadow_frontsidecasting.integer && !PointInfrontOfTriangle(rsurface.entitylightorigin, rsurface.vertex3f + element3i[m*3+0]*3, rsurface.vertex3f + element3i[m*3+1]*3, rsurface.vertex3f + element3i[m*3+2]*3)) + if (!CHECKPVSBIT(lighttrispvs, m)) { usebufferobject = false; continue;