Small tweak to temporalscene cache to adhere to r_novis. Change sort order of water shaders when refract_fbo isn't active, to ensure the refraction scene is actually drawn before its read.
git-svn-id: https://svn.code.sf.net/p/fteqw/code/trunk@5853 fc73d0e0-1445-4013-8a0c-d673dee63da5
This commit is contained in:
parent
d5fa80a0d4
commit
cdbf3614a3
2 changed files with 13 additions and 2 deletions
|
@ -3312,7 +3312,14 @@ void R_GenWorldEBO(void *ctx, void *data, size_t a, size_t b)
|
||||||
}
|
}
|
||||||
|
|
||||||
//maybe we should just use fatpvs instead, and wait for completion when outside?
|
//maybe we should just use fatpvs instead, and wait for completion when outside?
|
||||||
if (es->cluster[1] != -1 && es->cluster[0] != es->cluster[1])
|
if (r_novis.ival)
|
||||||
|
{
|
||||||
|
if (es->pvs.buffersize < es->wmodel->pvsbytes)
|
||||||
|
es->pvs.buffer = BZ_Realloc(es->pvs.buffer, es->pvs.buffersize=es->wmodel->pvsbytes);
|
||||||
|
memset(es->pvs.buffer, 0xff, es->pvs.buffersize);
|
||||||
|
pvs = es->pvs.buffer;
|
||||||
|
}
|
||||||
|
else if (es->cluster[1] != -1 && es->cluster[0] != es->cluster[1])
|
||||||
{ //view is near to a water boundary. this implies the water crosses the near clip plane. we need both leafs.
|
{ //view is near to a water boundary. this implies the water crosses the near clip plane. we need both leafs.
|
||||||
pvs = es->wmodel->funcs.ClusterPVS(es->wmodel, es->cluster[0], &es->pvs, PVM_REPLACE);
|
pvs = es->wmodel->funcs.ClusterPVS(es->wmodel, es->cluster[0], &es->pvs, PVM_REPLACE);
|
||||||
pvs = es->wmodel->funcs.ClusterPVS(es->wmodel, es->cluster[1], &es->pvs, PVM_MERGE);
|
pvs = es->wmodel->funcs.ClusterPVS(es->wmodel, es->cluster[1], &es->pvs, PVM_MERGE);
|
||||||
|
|
|
@ -5550,7 +5550,11 @@ done:;
|
||||||
|
|
||||||
if (!s->sort)
|
if (!s->sort)
|
||||||
{
|
{
|
||||||
s->sort = SHADER_SORT_OPAQUE;
|
extern cvar_t r_refract_fbo;
|
||||||
|
if ((s->flags & SHADER_HASREFRACT) && !r_refract_fbo.ival)
|
||||||
|
s->sort = SHADER_SORT_UNDERWATER;
|
||||||
|
else
|
||||||
|
s->sort = SHADER_SORT_OPAQUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((s->flags & SHADER_SKY) && (s->flags & SHADER_DEPTHWRITE))
|
if ((s->flags & SHADER_SKY) && (s->flags & SHADER_DEPTHWRITE))
|
||||||
|
|
Loading…
Reference in a new issue