X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=r_shadow.c;h=9603b03cfb3e114034f60fbb88491ac22ada5034;hb=7da3f74c75363169da55547a5758a10735352b95;hp=7a2d2d907d238d1d1e994b46fe883341314e6370;hpb=d5942f724b953a6a958e67604a68091427ae76c8;p=xonotic%2Fdarkplaces.git diff --git a/r_shadow.c b/r_shadow.c index 7a2d2d90..9603b03c 100644 --- a/r_shadow.c +++ b/r_shadow.c @@ -1121,12 +1121,12 @@ void R_Shadow_Stage_StencilShadowVolumes(void) r_shadowstage = R_SHADOWSTAGE_STENCILTWOSIDE; qglDisable(GL_CULL_FACE); qglEnable(GL_STENCIL_TEST_TWO_SIDE_EXT); - qglActiveStencilFaceEXT(GL_FRONT); // quake is backwards, this is back faces - qglStencilMask(~0); - qglStencilOp(GL_KEEP, GL_DECR, GL_KEEP); qglActiveStencilFaceEXT(GL_BACK); // quake is backwards, this is front faces qglStencilMask(~0); qglStencilOp(GL_KEEP, GL_INCR, GL_KEEP); + qglActiveStencilFaceEXT(GL_FRONT); // quake is backwards, this is back faces + qglStencilMask(~0); + qglStencilOp(GL_KEEP, GL_DECR, GL_KEEP); } else { @@ -1368,7 +1368,7 @@ qboolean R_Shadow_ScissorForBBox(const float *mins, const float *maxs) return true; // the light area is visible, set up the scissor rectangle - GL_Scissor(ix1, vid.realheight - iy2, ix2 - ix1, iy2 - iy1); + GL_Scissor(ix1, vid.height - iy2, ix2 - ix1, iy2 - iy1); //qglScissor(ix1, iy1, ix2 - ix1, iy2 - iy1); //qglEnable(GL_SCISSOR_TEST); c_rt_scissored++; @@ -2632,7 +2632,7 @@ void R_RTLight_Compile(rtlight_t *rtlight) { // this variable directs the DrawShadowVolume and DrawLight code to capture into the mesh chain instead of rendering r_shadow_compilingrtlight = rtlight; - R_Shadow_EnlargeLeafSurfaceBuffer(model->brush.num_leafs, model->brush.num_surfaces); + R_Shadow_EnlargeLeafSurfaceBuffer(model->brush.num_leafs, model->num_surfaces); model->GetLightInfo(ent, rtlight->shadoworigin, rtlight->radius, rtlight->cullmins, rtlight->cullmaxs, r_shadow_buffer_leaflist, r_shadow_buffer_leafpvs, &numleafs, r_shadow_buffer_surfacelist, r_shadow_buffer_surfacepvs, &numsurfaces); numleafpvsbytes = (model->brush.num_leafs + 7) >> 3; data = Mem_Alloc(r_shadow_mempool, sizeof(int) * numleafs + numleafpvsbytes + sizeof(int) * numsurfaces); @@ -2872,7 +2872,7 @@ void R_DrawRTLight(rtlight_t *rtlight, qboolean visible) { // dynamic light, world available and can receive realtime lighting // calculate lit surfaces and leafs - R_Shadow_EnlargeLeafSurfaceBuffer(r_refdef.worldmodel->brush.num_leafs, r_refdef.worldmodel->brush.num_surfaces); + R_Shadow_EnlargeLeafSurfaceBuffer(r_refdef.worldmodel->brush.num_leafs, r_refdef.worldmodel->num_surfaces); r_refdef.worldmodel->GetLightInfo(r_refdef.worldentity, rtlight->shadoworigin, rtlight->radius, rtlight->cullmins, rtlight->cullmaxs, r_shadow_buffer_leaflist, r_shadow_buffer_leafpvs, &numleafs, r_shadow_buffer_surfacelist, r_shadow_buffer_surfacepvs, &numsurfaces); leaflist = r_shadow_buffer_leaflist; leafpvs = r_shadow_buffer_leafpvs;