mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-16 01:11:44 +00:00
Polymost: Enumify the lower bits of the method/dameth argument to various functions.
git-svn-id: https://svn.eduke32.com/eduke32@5464 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
0ddba3388f
commit
56f331574d
3 changed files with 48 additions and 36 deletions
|
@ -139,10 +139,22 @@ static inline float polymost_invsqrt_approximation(float x)
|
|||
|
||||
// Flags of the <dameth> argument of various functions
|
||||
enum {
|
||||
DAMETH_NOMASK = 0,
|
||||
DAMETH_MASK = 1,
|
||||
DAMETH_TRANS1 = 2,
|
||||
DAMETH_TRANS2 = 3,
|
||||
|
||||
DAMETH_MASKPROPS = 3,
|
||||
DAMETH_TEXPROPS = ~3,
|
||||
|
||||
DAMETH_CLAMPED = 4,
|
||||
|
||||
DAMETH_WALL = 32, // signals a texture for a wall (for r_npotwallmode)
|
||||
|
||||
// used internally by polymost_domost
|
||||
DAMETH_BACKFACECULL = -1,
|
||||
|
||||
// used internally by uploadtexture
|
||||
DAMETH_NOCOMPRESS = 4096,
|
||||
DAMETH_HI = 8192,
|
||||
DAMETH_NOFIX = 16384,
|
||||
|
|
|
@ -1111,7 +1111,7 @@ void polymer_drawrooms(int32_t daposx, int32_t daposy, int32_t da
|
|||
skyhoriz += 360.0f;
|
||||
|
||||
drawingskybox = 1;
|
||||
pth = texcache_fetch(cursky, 0, 0, 0);
|
||||
pth = texcache_fetch(cursky, 0, 0, DAMETH_NOMASK);
|
||||
drawingskybox = 0;
|
||||
|
||||
// if it's not a skybox, make the sky parallax
|
||||
|
@ -1661,7 +1661,7 @@ int16_t polymer_addlight(_prlight* light)
|
|||
loadtile(picnum);
|
||||
|
||||
pth = NULL;
|
||||
pth = texcache_fetch(picnum, 0, 0, 0);
|
||||
pth = texcache_fetch(picnum, 0, 0, DAMETH_NOMASK);
|
||||
|
||||
if (pth)
|
||||
light->lightmap = pth->glpic;
|
||||
|
@ -2798,7 +2798,7 @@ attributes:
|
|||
!Bmemcmp(&s->ceilingstat, &sec->ceilingstat, offsetof(sectortype, visibility) - offsetof(sectortype, ceilingstat)))
|
||||
goto finish;
|
||||
|
||||
s->floor.bucket = polymer_getbuildmaterial(&s->floor.material, floorpicnum, sec->floorpal, sec->floorshade, sec->visibility, 0);
|
||||
s->floor.bucket = polymer_getbuildmaterial(&s->floor.material, floorpicnum, sec->floorpal, sec->floorshade, sec->visibility, DAMETH_NOMASK);
|
||||
|
||||
if (sec->floorstat & 256) {
|
||||
if (sec->floorstat & 128) {
|
||||
|
@ -2808,7 +2808,7 @@ attributes:
|
|||
}
|
||||
}
|
||||
|
||||
s->ceil.bucket = polymer_getbuildmaterial(&s->ceil.material, ceilingpicnum, sec->ceilingpal, sec->ceilingshade, sec->visibility, 0);
|
||||
s->ceil.bucket = polymer_getbuildmaterial(&s->ceil.material, ceilingpicnum, sec->ceilingpal, sec->ceilingshade, sec->visibility, DAMETH_NOMASK);
|
||||
|
||||
if (sec->ceilingstat & 256) {
|
||||
if (sec->ceilingstat & 128) {
|
||||
|
@ -4128,7 +4128,7 @@ void polymer_drawsky(int16_t tilenum, char palnum, int8_t shade)
|
|||
bglScalef(1000.0f, 1000.0f, 1000.0f);
|
||||
|
||||
drawingskybox = 1;
|
||||
pth = texcache_fetch(tilenum,0,0,0);
|
||||
pth = texcache_fetch(tilenum, 0, 0, DAMETH_NOMASK);
|
||||
drawingskybox = 0;
|
||||
|
||||
if (pth && (pth->flags & PTH_SKYBOX))
|
||||
|
@ -4176,7 +4176,7 @@ static void polymer_drawartsky(int16_t tilenum, char palnum, int8_t shad
|
|||
DO_TILE_ANIM(picnum, 0);
|
||||
if (!waloff[picnum])
|
||||
loadtile(picnum);
|
||||
pth = texcache_fetch(picnum, palnum, 0, 0);
|
||||
pth = texcache_fetch(picnum, palnum, 0, DAMETH_NOMASK);
|
||||
glpics[i] = pth ? pth->glpic : 0;
|
||||
|
||||
glcolors[i][0] = glcolors[i][1] = glcolors[i][2] = getshadefactor(shade);
|
||||
|
@ -5001,7 +5001,7 @@ static _prbucket* polymer_getbuildmaterial(_prmaterial* material, int16_t tile
|
|||
}
|
||||
|
||||
// PR_BIT_DIFFUSE_DETAIL_MAP
|
||||
if (hicfindsubst(tilenum, DETAILPAL) && (pth = texcache_fetch(tilenum, DETAILPAL, 0, 0)) &&
|
||||
if (hicfindsubst(tilenum, DETAILPAL) && (pth = texcache_fetch(tilenum, DETAILPAL, 0, DAMETH_NOMASK)) &&
|
||||
pth->hicr && (pth->hicr->palnum == DETAILPAL))
|
||||
{
|
||||
material->detailmap = pth->glpic;
|
||||
|
@ -5010,17 +5010,17 @@ static _prbucket* polymer_getbuildmaterial(_prmaterial* material, int16_t tile
|
|||
}
|
||||
|
||||
// PR_BIT_GLOW_MAP
|
||||
if (hicfindsubst(tilenum, GLOWPAL) && (pth = texcache_fetch(tilenum, GLOWPAL, 0, 0)) &&
|
||||
if (hicfindsubst(tilenum, GLOWPAL) && (pth = texcache_fetch(tilenum, GLOWPAL, 0, DAMETH_NOMASK)) &&
|
||||
pth->hicr && (pth->hicr->palnum == GLOWPAL))
|
||||
material->glowmap = pth->glpic;
|
||||
|
||||
// PR_BIT_SPECULAR_MAP
|
||||
if (hicfindsubst(tilenum, SPECULARPAL) && (pth = texcache_fetch(tilenum, SPECULARPAL, 0, 0)) &&
|
||||
if (hicfindsubst(tilenum, SPECULARPAL) && (pth = texcache_fetch(tilenum, SPECULARPAL, 0, DAMETH_NOMASK)) &&
|
||||
pth->hicr && (pth->hicr->palnum == SPECULARPAL))
|
||||
material->specmap = pth->glpic;
|
||||
|
||||
// PR_BIT_NORMAL_MAP
|
||||
if (hicfindsubst(tilenum, NORMALPAL) && (pth = texcache_fetch(tilenum, NORMALPAL, 0, 0)) &&
|
||||
if (hicfindsubst(tilenum, NORMALPAL) && (pth = texcache_fetch(tilenum, NORMALPAL, 0, DAMETH_NOMASK)) &&
|
||||
pth->hicr && (pth->hicr->palnum == NORMALPAL))
|
||||
{
|
||||
material->normalmap = pth->glpic;
|
||||
|
@ -5731,7 +5731,7 @@ static void polymer_updatelights(void)
|
|||
loadtile(picnum);
|
||||
|
||||
pth = NULL;
|
||||
pth = texcache_fetch(picnum, 0, 0, 0);
|
||||
pth = texcache_fetch(picnum, 0, 0, DAMETH_NOMASK);
|
||||
|
||||
if (pth)
|
||||
light->lightmap = pth->glpic;
|
||||
|
|
|
@ -595,7 +595,7 @@ static void fixtransparency(coltype *dapic, vec2_t dasiz, vec2_t dasiz2, int32_t
|
|||
{
|
||||
vec2_t doxy = { dasiz2.x-1, dasiz2.y-1 };
|
||||
|
||||
if (dameth&4) { doxy.x = min(doxy.x, dasiz.x); doxy.y = min(doxy.y, dasiz.y); }
|
||||
if (dameth & DAMETH_CLAMPED) { doxy.x = min(doxy.x, dasiz.x); doxy.y = min(doxy.y, dasiz.y); }
|
||||
else { dasiz = dasiz2; } //Make repeating textures duplicate top/left parts
|
||||
|
||||
dasiz.x--; dasiz.y--; //Hacks for optimization inside loop
|
||||
|
@ -1378,7 +1378,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
if (g_nodraw) return;
|
||||
#endif
|
||||
|
||||
if (method == -1 || (uint32_t)globalpicnum >= MAXTILES) return;
|
||||
if (method == DAMETH_BACKFACECULL || (uint32_t)globalpicnum >= MAXTILES) return;
|
||||
|
||||
const int32_t method_ = method;
|
||||
|
||||
|
@ -1411,7 +1411,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
if (!waloff[globalpicnum])
|
||||
{
|
||||
tsiz.x = tsiz.y = 1;
|
||||
method = 1; //Hack to update Z-buffer for invalid mirror textures
|
||||
method = DAMETH_MASK; //Hack to update Z-buffer for invalid mirror textures
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1452,7 +1452,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
|
||||
if (skyclamphack) method |= DAMETH_CLAMPED;
|
||||
|
||||
pthtyp *pth = our_texcache_fetch(method&(~3));
|
||||
pthtyp *pth = our_texcache_fetch(method & DAMETH_TEXPROPS);
|
||||
|
||||
if (!pth)
|
||||
{
|
||||
|
@ -1505,7 +1505,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
if (r_detailmapping)
|
||||
{
|
||||
if (usehightile && !drawingskybox && hicfindsubst(globalpicnum, DETAILPAL) &&
|
||||
(detailpth = texcache_fetch(globalpicnum, DETAILPAL, 0, method & (~3))) &&
|
||||
(detailpth = texcache_fetch(globalpicnum, DETAILPAL, 0, method & DAMETH_TEXPROPS)) &&
|
||||
detailpth->hicr && detailpth->hicr->palnum == DETAILPAL)
|
||||
{
|
||||
polymost_setupdetailtexture(++texunits, detailpth ? detailpth->glpic : 0);
|
||||
|
@ -1529,7 +1529,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
if (r_glowmapping)
|
||||
{
|
||||
if (usehightile && !drawingskybox && hicfindsubst(globalpicnum, GLOWPAL) &&
|
||||
(glowpth = texcache_fetch(globalpicnum, GLOWPAL, 0, method&(~3))) &&
|
||||
(glowpth = texcache_fetch(globalpicnum, GLOWPAL, 0, method & DAMETH_TEXPROPS)) &&
|
||||
glowpth->hicr && (glowpth->hicr->palnum == GLOWPAL))
|
||||
polymost_setupglowtexture(++texunits, glowpth ? glowpth->glpic : 0);
|
||||
}
|
||||
|
@ -1553,7 +1553,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
; /* do nothing */
|
||||
}
|
||||
|
||||
if (!(method&3) && fullbright_pass < 2)
|
||||
if (!(method & DAMETH_MASKPROPS) && fullbright_pass < 2)
|
||||
{
|
||||
bglDisable(GL_BLEND);
|
||||
bglDisable(GL_ALPHA_TEST);
|
||||
|
@ -1578,7 +1578,7 @@ static void polymost_drawpoly(vec2f_t const * const dpxy, int32_t const n, int32
|
|||
pc[0] = pc[1] = pc[2] = getshadefactor(globalshade);
|
||||
|
||||
// spriteext full alpha control
|
||||
pc[3] = float_trans[method & 3] * (1.f - drawpoly_alpha);
|
||||
pc[3] = float_trans[method & DAMETH_MASKPROPS] * (1.f - drawpoly_alpha);
|
||||
|
||||
if (pth)
|
||||
{
|
||||
|
@ -1868,7 +1868,7 @@ static inline int32_t vsinsaft(int32_t const i)
|
|||
return r;
|
||||
}
|
||||
|
||||
static int32_t domostpolymethod = 0;
|
||||
static int32_t domostpolymethod = DAMETH_NOMASK;
|
||||
|
||||
#define DOMOST_OFFSET .01f
|
||||
|
||||
|
@ -2471,7 +2471,7 @@ static void polymost_internal_nonparallaxed(vec2f_t n0, vec2f_t n1, float ryp0,
|
|||
}
|
||||
}
|
||||
|
||||
domostpolymethod = (globalorientation>>7)&3;
|
||||
domostpolymethod = (globalorientation>>7) & DAMETH_MASKPROPS;
|
||||
|
||||
pow2xsplit = 0;
|
||||
drawpoly_alpha = 0.f;
|
||||
|
@ -2482,19 +2482,19 @@ static void polymost_internal_nonparallaxed(vec2f_t n0, vec2f_t n1, float ryp0,
|
|||
if (have_floor)
|
||||
{
|
||||
if (globalposz > getflorzofslope(sectnum, globalposx, globalposy))
|
||||
domostpolymethod = -1; //Back-face culling
|
||||
domostpolymethod = DAMETH_BACKFACECULL; //Back-face culling
|
||||
|
||||
polymost_domost(x0, y0, x1, y1); //flor
|
||||
}
|
||||
else
|
||||
{
|
||||
if (globalposz < getceilzofslope(sectnum, globalposx, globalposy))
|
||||
domostpolymethod = -1; //Back-face culling
|
||||
domostpolymethod = DAMETH_BACKFACECULL; //Back-face culling
|
||||
|
||||
polymost_domost(x1, y1, x0, y0); //ceil
|
||||
}
|
||||
|
||||
domostpolymethod = 0;
|
||||
domostpolymethod = DAMETH_NOMASK;
|
||||
}
|
||||
|
||||
static void calc_ypanning(int32_t refposz, float ryp0, float ryp1,
|
||||
|
@ -3233,7 +3233,7 @@ static void polymost_drawalls(int32_t const bunch)
|
|||
|
||||
float const ogux = xtex.u, oguy = ytex.u, oguo = otex.u;
|
||||
|
||||
Bassert(domostpolymethod == 0);
|
||||
Bassert(domostpolymethod == DAMETH_NOMASK);
|
||||
domostpolymethod = DAMETH_WALL;
|
||||
|
||||
if (nextsectnum >= 0)
|
||||
|
@ -3359,7 +3359,7 @@ static void polymost_drawalls(int32_t const bunch)
|
|||
} while (0);
|
||||
}
|
||||
|
||||
domostpolymethod = 0;
|
||||
domostpolymethod = DAMETH_NOMASK;
|
||||
|
||||
if (nextsectnum >= 0)
|
||||
if ((!(gotsector[nextsectnum>>3]&pow2char[nextsectnum&7])) && testvisiblemost(x0,x1))
|
||||
|
@ -3880,14 +3880,14 @@ void polymost_drawmaskwall(int32_t damaskwallcnt)
|
|||
}
|
||||
if (wal->cstat&256) { xtex.v = -xtex.v; ytex.v = -ytex.v; otex.v = -otex.v; } //yflip
|
||||
|
||||
int method = 1 | DAMETH_WALL;
|
||||
int method = DAMETH_MASK | DAMETH_WALL;
|
||||
|
||||
if (wal->cstat & 128)
|
||||
{
|
||||
if (!(wal->cstat & 512))
|
||||
method = 2 | DAMETH_WALL;
|
||||
method = DAMETH_TRANS1 | DAMETH_WALL;
|
||||
else
|
||||
method = 3 | DAMETH_WALL;
|
||||
method = DAMETH_TRANS2 | DAMETH_WALL;
|
||||
}
|
||||
|
||||
if (!nofog)
|
||||
|
@ -4095,14 +4095,14 @@ void polymost_drawsprite(int32_t snum)
|
|||
off.y = (int32_t)tspr->yoffset + flag ? h_yoffs[globalpicnum] : picanm[globalpicnum].yofs;
|
||||
}
|
||||
|
||||
int32_t method = 1 + 4;
|
||||
int32_t method = DAMETH_MASK | DAMETH_CLAMPED;
|
||||
|
||||
if (tspr->cstat & 2)
|
||||
{
|
||||
if (!(tspr->cstat & 512))
|
||||
method = 2 + 4;
|
||||
method = DAMETH_TRANS1 | DAMETH_CLAMPED;
|
||||
else
|
||||
method = 3 + 4;
|
||||
method = DAMETH_TRANS2 | DAMETH_CLAMPED;
|
||||
}
|
||||
|
||||
drawpoly_alpha = spriteext[spritenum].alpha;
|
||||
|
@ -4988,14 +4988,14 @@ void polymost_dorotatesprite(int32_t sx, int32_t sy, int32_t z, int16_t a, int16
|
|||
}
|
||||
#endif
|
||||
|
||||
int32_t method = 4; //Use OpenGL clamping - dorotatesprite never repeats
|
||||
int32_t method = DAMETH_CLAMPED; //Use OpenGL clamping - dorotatesprite never repeats
|
||||
|
||||
if (!(dastat & RS_NOMASK))
|
||||
{
|
||||
if (dastat & RS_TRANS1)
|
||||
method |= (dastat & RS_TRANS2) ? 3 : 2;
|
||||
method |= (dastat & RS_TRANS2) ? DAMETH_TRANS2 : DAMETH_TRANS1;
|
||||
else
|
||||
method |= 1;
|
||||
method |= DAMETH_MASK;
|
||||
}
|
||||
|
||||
drawpoly_alpha = daalpha * (1.0f / 255.0f);
|
||||
|
@ -5323,7 +5323,7 @@ void polymost_fillpolygon(int32_t npoints)
|
|||
if (gloy1 != -1) setpolymost2dview(); //disables blending, texturing, and depth testing
|
||||
bglEnable(GL_ALPHA_TEST);
|
||||
bglEnable(GL_TEXTURE_2D);
|
||||
pthtyp *pth = our_texcache_fetch(0);
|
||||
pthtyp *pth = our_texcache_fetch(DAMETH_NOMASK);
|
||||
bglBindTexture(GL_TEXTURE_2D, pth ? pth->glpic : 0);
|
||||
|
||||
float const f = getshadefactor(globalshade);
|
||||
|
|
Loading…
Reference in a new issue