mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-16 09:21:12 +00:00
Remove code disabled by #ifdef OBSOLETE_RENDMODES
git-svn-id: https://svn.eduke32.com/eduke32@3756 1a8010ca-5511-0410-912e-c29ae57300e0
This commit is contained in:
parent
995d679b28
commit
edb222ea4a
3 changed files with 0 additions and 337 deletions
|
@ -2324,13 +2324,8 @@ static int32_t globalx, globaly, globalz;
|
||||||
int16_t sectorborder[256], sectorbordercnt;
|
int16_t sectorborder[256], sectorbordercnt;
|
||||||
int32_t ydim16, qsetmode = 0;
|
int32_t ydim16, qsetmode = 0;
|
||||||
int16_t pointhighlight=-1, linehighlight=-1, highlightcnt=0;
|
int16_t pointhighlight=-1, linehighlight=-1, highlightcnt=0;
|
||||||
#ifndef OBSOLETE_RENDMODES
|
|
||||||
static int32_t lastx[MAXYDIM];
|
static int32_t lastx[MAXYDIM];
|
||||||
static char *transluc;
|
static char *transluc;
|
||||||
#else
|
|
||||||
int32_t lastx[MAXYDIM];
|
|
||||||
char *transluc;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static char paletteloaded = 0;
|
static char paletteloaded = 0;
|
||||||
|
|
||||||
|
|
|
@ -26,8 +26,6 @@ extern "C" {
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//#define OBSOLETE_RENDMODES
|
|
||||||
|
|
||||||
extern uint8_t basepalcount;
|
extern uint8_t basepalcount;
|
||||||
extern uint8_t curbasepal;
|
extern uint8_t curbasepal;
|
||||||
|
|
||||||
|
@ -60,10 +58,6 @@ extern char inpreparemirror;
|
||||||
extern int32_t curbrightness, gammabrightness;
|
extern int32_t curbrightness, gammabrightness;
|
||||||
extern char britable[16][256];
|
extern char britable[16][256];
|
||||||
extern char picsiz[MAXTILES];
|
extern char picsiz[MAXTILES];
|
||||||
#ifdef OBSOLETE_RENDMODES
|
|
||||||
extern int32_t lastx[MAXYDIM];
|
|
||||||
extern char *transluc;
|
|
||||||
#endif
|
|
||||||
extern int16_t sectorborder[256], sectorbordercnt;
|
extern int16_t sectorborder[256], sectorbordercnt;
|
||||||
extern int32_t qsetmode;
|
extern int32_t qsetmode;
|
||||||
extern int32_t hitallsprites;
|
extern int32_t hitallsprites;
|
||||||
|
|
|
@ -126,13 +126,6 @@ double gdo, gdx, gdy;
|
||||||
|
|
||||||
static int32_t preview_mouseaim=0; // when 1, displays a CROSSHAIR tsprite at the _real_ aimed position
|
static int32_t preview_mouseaim=0; // when 1, displays a CROSSHAIR tsprite at the _real_ aimed position
|
||||||
|
|
||||||
#ifdef OBSOLETE_RENDMODES
|
|
||||||
# if (USEZBUFFER != 0)
|
|
||||||
static int32_t zbufysiz = 0, zbufbpl = 0, *zbufoff = 0;
|
|
||||||
static intptr_t zbufmem = 0;
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef USE_OPENGL
|
#ifdef USE_OPENGL
|
||||||
static int32_t srepeat = 0, trepeat = 0;
|
static int32_t srepeat = 0, trepeat = 0;
|
||||||
|
|
||||||
|
@ -2081,14 +2074,6 @@ static float alpha = 0.f;
|
||||||
|
|
||||||
void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
{
|
{
|
||||||
#ifdef OBSOLETE_RENDMODES
|
|
||||||
double rdp;
|
|
||||||
double ngdx2, ngux2, ngvx2;
|
|
||||||
int32_t x, y, z, mini, maxi, tsizxm1 = 0, tsizym1 = 0, ltsizy = 0;
|
|
||||||
int32_t xi, d0, u0, v0, d1, u1, v1, xmodnice = 0, ymulnice = 0;
|
|
||||||
char dacol = 0, *palptr = NULL, *vidp, *vide;
|
|
||||||
char *walptr;
|
|
||||||
#endif
|
|
||||||
double ngdx = 0.0, ngdy = 0.0, ngdo = 0.0, ngux = 0.0, nguy = 0.0, nguo = 0.0;
|
double ngdx = 0.0, ngdy = 0.0, ngdo = 0.0, ngux = 0.0, nguy = 0.0, nguo = 0.0;
|
||||||
double ngvx = 0.0, ngvy = 0.0, ngvo = 0.0, dp, up, vp, du0 = 0.0, du1 = 0.0, dui, duj;
|
double ngvx = 0.0, ngvy = 0.0, ngvo = 0.0, dp, up, vp, du0 = 0.0, du1 = 0.0, dui, duj;
|
||||||
double f, r, ox, oy, oz, ox2, oy2, oz2, dd[16], uu[16], vv[16], px[16], py[16], uoffs;
|
double f, r, ox, oy, oz, ox2, oy2, oz2, dd[16], uu[16], vv[16], px[16], py[16], uoffs;
|
||||||
|
@ -2133,9 +2118,6 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
tsizx = tsizy = 1; method = 1; //Hack to update Z-buffer for invalid mirror textures
|
tsizx = tsizy = 1; method = 1; //Hack to update Z-buffer for invalid mirror textures
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#ifdef OBSOLETE_RENDMODES
|
|
||||||
walptr = (char *)waloff[globalpicnum];
|
|
||||||
#endif
|
|
||||||
|
|
||||||
j = 0; dorot = ((gchang != 1.0) || (gctang != 1.0));
|
j = 0; dorot = ((gchang != 1.0) || (gctang != 1.0));
|
||||||
if (dorot)
|
if (dorot)
|
||||||
|
@ -2156,9 +2138,6 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
oy = ox2*gstang + oy2*gctang;
|
oy = ox2*gstang + oy2*gctang;
|
||||||
oz = oz2;
|
oz = oz2;
|
||||||
|
|
||||||
#ifdef OBSOLETE_RENDMODES
|
|
||||||
if ((oz < SCISDIST) && (rendmode < 3)) return; //annoying hack to avoid bugs in software rendering
|
|
||||||
#endif
|
|
||||||
r = ghalfx / oz;
|
r = ghalfx / oz;
|
||||||
|
|
||||||
dd[j] = (dpx[i]*gdx + dpy[i]*gdy + gdo)*r;
|
dd[j] = (dpx[i]*gdx + dpy[i]*gdy + gdo)*r;
|
||||||
|
@ -2602,310 +2581,6 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef OBSOLETE_RENDMODES
|
|
||||||
if (rendmode == 2)
|
|
||||||
{
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
if ((!zbufmem) || (zbufbpl != bytesperline) || (zbufysiz != ydim))
|
|
||||||
{
|
|
||||||
zbufbpl = bytesperline;
|
|
||||||
zbufysiz = ydim;
|
|
||||||
zbufmem = (intptr_t)Brealloc((void *)zbufmem,zbufbpl*zbufysiz*4);
|
|
||||||
}
|
|
||||||
zbufoff = (int32_t *)(zbufmem-(frameplace<<2));
|
|
||||||
#endif
|
|
||||||
if ((!transluc)) method = (method&~3)+1; //In case translucent table doesn't exist
|
|
||||||
|
|
||||||
if (!dorot)
|
|
||||||
{
|
|
||||||
ngdx = gdx; ngdy = gdy; ngdo = gdo+(ngdx+ngdy)*.5;
|
|
||||||
ngux = gux; nguy = guy; nguo = guo+(ngux+nguy)*.5;
|
|
||||||
ngvx = gvx; ngvy = gvy; ngvo = gvo+(ngvx+ngvy)*.5;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
//General equations:
|
|
||||||
//dd[i] = (px[i]*gdx + py[i]*gdy + gdo)
|
|
||||||
//uu[i] = (px[i]*gux + py[i]*guy + guo)/dd[i]
|
|
||||||
//vv[i] = (px[i]*gvx + py[i]*gvy + gvo)/dd[i]
|
|
||||||
//
|
|
||||||
//px[0]*gdx + py[0]*gdy + 1*gdo = dd[0]
|
|
||||||
//px[1]*gdx + py[1]*gdy + 1*gdo = dd[1]
|
|
||||||
//px[2]*gdx + py[2]*gdy + 1*gdo = dd[2]
|
|
||||||
//
|
|
||||||
//px[0]*gux + py[0]*guy + 1*guo = uu[0]*dd[0] (uu[i] premultiplied by dd[i] above)
|
|
||||||
//px[1]*gux + py[1]*guy + 1*guo = uu[1]*dd[1]
|
|
||||||
//px[2]*gux + py[2]*guy + 1*guo = uu[2]*dd[2]
|
|
||||||
//
|
|
||||||
//px[0]*gvx + py[0]*gvy + 1*gvo = vv[0]*dd[0] (vv[i] premultiplied by dd[i] above)
|
|
||||||
//px[1]*gvx + py[1]*gvy + 1*gvo = vv[1]*dd[1]
|
|
||||||
//px[2]*gvx + py[2]*gvy + 1*gvo = vv[2]*dd[2]
|
|
||||||
ox = py[1]-py[2]; oy = py[2]-py[0]; oz = py[0]-py[1];
|
|
||||||
r = 1.0 / (ox*px[0] + oy*px[1] + oz*px[2]);
|
|
||||||
ngdx = (ox*dd[0] + oy*dd[1] + oz*dd[2])*r;
|
|
||||||
ngux = (ox*uu[0] + oy*uu[1] + oz*uu[2])*r;
|
|
||||||
ngvx = (ox*vv[0] + oy*vv[1] + oz*vv[2])*r;
|
|
||||||
ox = px[2]-px[1]; oy = px[0]-px[2]; oz = px[1]-px[0];
|
|
||||||
ngdy = (ox*dd[0] + oy*dd[1] + oz*dd[2])*r;
|
|
||||||
nguy = (ox*uu[0] + oy*uu[1] + oz*uu[2])*r;
|
|
||||||
ngvy = (ox*vv[0] + oy*vv[1] + oz*vv[2])*r;
|
|
||||||
ox = px[0]-.5; oy = py[0]-.5; //.5 centers texture nicely
|
|
||||||
ngdo = dd[0] - ox*ngdx - oy*ngdy;
|
|
||||||
nguo = uu[0] - ox*ngux - oy*nguy;
|
|
||||||
ngvo = vv[0] - ox*ngvx - oy*ngvy;
|
|
||||||
}
|
|
||||||
palptr = &palookup[globalpal][min(max((int32_t)(globalshade * shadescale),0),numshades-1)<<8]; //<-need to make shade not static!
|
|
||||||
|
|
||||||
tsizxm1 = tsizx-1; xmodnice = (!(tsizxm1&tsizx));
|
|
||||||
tsizym1 = tsizy-1; ymulnice = (!(tsizym1&tsizy));
|
|
||||||
if ((method&4) && (!xmodnice)) //Sprites don't need a mod on texture coordinates
|
|
||||||
{ xmodnice = 1; for (tsizxm1=1; tsizxm1<tsizx; tsizxm1=(tsizxm1<<1)+1); }
|
|
||||||
if (!ymulnice) { for (tsizym1=1; tsizym1+1<tsizy; tsizym1=(tsizym1<<1)+1); }
|
|
||||||
ltsizy = (picsiz[globalpicnum]>>4);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
dacol = palookup[0][(int32_t)(*(char *)(waloff[globalpicnum]))+(min(max((int32_t)(globalshade * shadescale),0),numshades-1)<<8)];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (grhalfxdown10x < 0) //Hack for mirrors
|
|
||||||
{
|
|
||||||
for (i=((n-1)>>1); i>=0; i--)
|
|
||||||
{
|
|
||||||
r = px[i]; px[i] = ((double)xdimen)-px[n-1-i]; px[n-1-i] = ((double)xdimen)-r;
|
|
||||||
r = py[i]; py[i] = py[n-1-i]; py[n-1-i] = r;
|
|
||||||
}
|
|
||||||
ngdo += ((double)xdimen)*ngdx; ngdx = -ngdx;
|
|
||||||
nguo += ((double)xdimen)*ngux; ngux = -ngux;
|
|
||||||
ngvo += ((double)xdimen)*ngvx; ngvx = -ngvx;
|
|
||||||
}
|
|
||||||
|
|
||||||
ngdx2 = ngdx*(1<<LINTERPSIZ);
|
|
||||||
ngux2 = ngux*(1<<LINTERPSIZ);
|
|
||||||
ngvx2 = ngvx*(1<<LINTERPSIZ);
|
|
||||||
|
|
||||||
mini = (py[0] >= py[1]); maxi = 1-mini;
|
|
||||||
for (z=2; z<n; z++)
|
|
||||||
{
|
|
||||||
if (py[z] < py[mini]) mini = z;
|
|
||||||
if (py[z] > py[maxi]) maxi = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
i = maxi; dtol(py[i],&yy); if (yy > ydimen) yy = ydimen;
|
|
||||||
do
|
|
||||||
{
|
|
||||||
j = i+1; if (j == n) j = 0;
|
|
||||||
dtol(py[j],&y); if (y < 0) y = 0;
|
|
||||||
if (y < yy)
|
|
||||||
{
|
|
||||||
f = (px[j]-px[i])/(py[j]-py[i]); dtol(f*16384.0,&xi);
|
|
||||||
dtol((((double)yy-.5-py[j])*f + px[j])*16384.0+8192.0,&x);
|
|
||||||
for (; yy>y; yy--,x-=xi) lastx[yy-1] = (x>>14);
|
|
||||||
}
|
|
||||||
i = j;
|
|
||||||
}
|
|
||||||
while (i != mini);
|
|
||||||
do
|
|
||||||
{
|
|
||||||
j = i+1; if (j == n) j = 0;
|
|
||||||
dtol(py[j],&yy); if (yy > ydimen) yy = ydimen;
|
|
||||||
if (y < yy)
|
|
||||||
{
|
|
||||||
f = (px[j]-px[i])/(py[j]-py[i]); dtol(f*16384.0,&xi);
|
|
||||||
dtol((((double)y+.5-py[j])*f + px[j])*16384.0+8192.0,&x);
|
|
||||||
for (; y<yy; y++,x+=xi)
|
|
||||||
{
|
|
||||||
ix0 = lastx[y]; if (ix0 < 0) ix0 = 0;
|
|
||||||
ix1 = (x>>14); if (ix1 > xdimen) ix1 = xdimen;
|
|
||||||
if (ix0 < ix1)
|
|
||||||
{
|
|
||||||
if (rendmode == 1)
|
|
||||||
memset((void *)(ylookup[y]+ix0+frameoffset),dacol,ix1-ix0);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
vidp = (char *)(ylookup[y]+frameoffset+ix0);
|
|
||||||
dp = ngdx*(double)ix0 + ngdy*(double)y + ngdo;
|
|
||||||
up = ngux*(double)ix0 + nguy*(double)y + nguo;
|
|
||||||
vp = ngvx*(double)ix0 + ngvy*(double)y + ngvo;
|
|
||||||
rdp = 65536.0/dp; dp += ngdx2;
|
|
||||||
dtol(rdp,&d0);
|
|
||||||
dtol(up*rdp,&u0); up += ngux2;
|
|
||||||
dtol(vp*rdp,&v0); vp += ngvx2;
|
|
||||||
rdp = 65536.0/dp;
|
|
||||||
|
|
||||||
switch (method&3)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
if (xmodnice&ymulnice) //both u&v texture sizes are powers of 2 :)
|
|
||||||
{
|
|
||||||
for (xx=ix0; xx<ix1; xx+=(1<<LINTERPSIZ))
|
|
||||||
{
|
|
||||||
dtol(rdp,&d1); dp += ngdx2; d1 = ((d1-d0)>>LINTERPSIZ);
|
|
||||||
dtol(up*rdp,&u1); up += ngux2; u1 = ((u1-u0)>>LINTERPSIZ);
|
|
||||||
dtol(vp*rdp,&v1); vp += ngvx2; v1 = ((v1-v0)>>LINTERPSIZ);
|
|
||||||
rdp = 65536.0/dp; vide = &vidp[min(ix1-xx,1<<LINTERPSIZ)];
|
|
||||||
while (vidp < vide)
|
|
||||||
{
|
|
||||||
#if (DEPTHDEBUG == 0)
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
zbufoff[(intptr_t)vidp] = d0+16384; //+ hack so wall&floor sprites don't disappear
|
|
||||||
#endif
|
|
||||||
vidp[0] = palptr[walptr[(((u0>>16)&tsizxm1)<<ltsizy) + ((v0>>16)&tsizym1)]]; //+((d0>>13)&0x3f00)];
|
|
||||||
#else
|
|
||||||
vidp[0] = ((d0>>16)&255);
|
|
||||||
#endif
|
|
||||||
d0 += d1; u0 += u1; v0 += v1; vidp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (xx=ix0; xx<ix1; xx+=(1<<LINTERPSIZ))
|
|
||||||
{
|
|
||||||
dtol(rdp,&d1); dp += ngdx2; d1 = ((d1-d0)>>LINTERPSIZ);
|
|
||||||
dtol(up*rdp,&u1); up += ngux2; u1 = ((u1-u0)>>LINTERPSIZ);
|
|
||||||
dtol(vp*rdp,&v1); vp += ngvx2; v1 = ((v1-v0)>>LINTERPSIZ);
|
|
||||||
rdp = 65536.0/dp; vide = &vidp[min(ix1-xx,1<<LINTERPSIZ)];
|
|
||||||
while (vidp < vide)
|
|
||||||
{
|
|
||||||
#if (DEPTHDEBUG == 0)
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
zbufoff[(intptr_t)vidp] = d0;
|
|
||||||
#endif
|
|
||||||
vidp[0] = palptr[walptr[imod(u0>>16,tsizx)*tsizy + ((v0>>16)&tsizym1)]]; //+((d0>>13)&0x3f00)];
|
|
||||||
#else
|
|
||||||
vidp[0] = ((d0>>16)&255);
|
|
||||||
#endif
|
|
||||||
d0 += d1; u0 += u1; v0 += v1; vidp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
if (xmodnice) //both u&v texture sizes are powers of 2 :)
|
|
||||||
{
|
|
||||||
for (xx=ix0; xx<ix1; xx+=(1<<LINTERPSIZ))
|
|
||||||
{
|
|
||||||
dtol(rdp,&d1); dp += ngdx2; d1 = ((d1-d0)>>LINTERPSIZ);
|
|
||||||
dtol(up*rdp,&u1); up += ngux2; u1 = ((u1-u0)>>LINTERPSIZ);
|
|
||||||
dtol(vp*rdp,&v1); vp += ngvx2; v1 = ((v1-v0)>>LINTERPSIZ);
|
|
||||||
rdp = 65536.0/dp; vide = &vidp[min(ix1-xx,1<<LINTERPSIZ)];
|
|
||||||
while (vidp < vide)
|
|
||||||
{
|
|
||||||
dacol = walptr[(((u0>>16)&tsizxm1)*tsizy) + ((v0>>16)&tsizym1)];
|
|
||||||
#if (DEPTHDEBUG == 0)
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
if ((dacol != 255) && (d0 <= zbufoff[(intptr_t)vidp]))
|
|
||||||
{
|
|
||||||
zbufoff[(intptr_t)vidp] = d0;
|
|
||||||
vidp[0] = palptr[((int32_t)dacol)]; //+((d0>>13)&0x3f00)];
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (dacol != 255) vidp[0] = palptr[((int32_t)dacol)]; //+((d0>>13)&0x3f00)];
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
if ((dacol != 255) && (vidp[0] > (d0>>16))) vidp[0] = ((d0>>16)&255);
|
|
||||||
#endif
|
|
||||||
d0 += d1; u0 += u1; v0 += v1; vidp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (xx=ix0; xx<ix1; xx+=(1<<LINTERPSIZ))
|
|
||||||
{
|
|
||||||
dtol(rdp,&d1); dp += ngdx2; d1 = ((d1-d0)>>LINTERPSIZ);
|
|
||||||
dtol(up*rdp,&u1); up += ngux2; u1 = ((u1-u0)>>LINTERPSIZ);
|
|
||||||
dtol(vp*rdp,&v1); vp += ngvx2; v1 = ((v1-v0)>>LINTERPSIZ);
|
|
||||||
rdp = 65536.0/dp; vide = &vidp[min(ix1-xx,1<<LINTERPSIZ)];
|
|
||||||
while (vidp < vide)
|
|
||||||
{
|
|
||||||
dacol = walptr[imod(u0>>16,tsizx)*tsizy + ((v0>>16)&tsizym1)];
|
|
||||||
#if (DEPTHDEBUG == 0)
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
if ((dacol != 255) && (d0 <= zbufoff[(intptr_t)vidp]))
|
|
||||||
{
|
|
||||||
zbufoff[(intptr_t)vidp] = d0;
|
|
||||||
vidp[0] = palptr[((int32_t)dacol)]; //+((d0>>13)&0x3f00)];
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (dacol != 255) vidp[0] = palptr[((int32_t)dacol)]; //+((d0>>13)&0x3f00)];
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
if ((dacol != 255) && (vidp[0] > (d0>>16))) vidp[0] = ((d0>>16)&255);
|
|
||||||
#endif
|
|
||||||
d0 += d1; u0 += u1; v0 += v1; vidp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 2: //Transluscence #1
|
|
||||||
for (xx=ix0; xx<ix1; xx+=(1<<LINTERPSIZ))
|
|
||||||
{
|
|
||||||
dtol(rdp,&d1); dp += ngdx2; d1 = ((d1-d0)>>LINTERPSIZ);
|
|
||||||
dtol(up*rdp,&u1); up += ngux2; u1 = ((u1-u0)>>LINTERPSIZ);
|
|
||||||
dtol(vp*rdp,&v1); vp += ngvx2; v1 = ((v1-v0)>>LINTERPSIZ);
|
|
||||||
rdp = 65536.0/dp; vide = &vidp[min(ix1-xx,1<<LINTERPSIZ)];
|
|
||||||
while (vidp < vide)
|
|
||||||
{
|
|
||||||
dacol = walptr[imod(u0>>16,tsizx)*tsizy + ((v0>>16)&tsizym1)];
|
|
||||||
//dacol = walptr[(((u0>>16)&tsizxm1)<<ltsizy) + ((v0>>16)&tsizym1)];
|
|
||||||
#if (DEPTHDEBUG == 0)
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
if ((dacol != 255) && (d0 <= zbufoff[(intptr_t)vidp]))
|
|
||||||
{
|
|
||||||
zbufoff[(intptr_t)vidp] = d0;
|
|
||||||
vidp[0] = transluc[(((int32_t)vidp[0])<<8)+((int32_t)palptr[((int32_t)dacol)])]; //+((d0>>13)&0x3f00)])];
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (dacol != 255)
|
|
||||||
vidp[0] = transluc[(((int32_t)vidp[0])<<8)+((int32_t)palptr[((int32_t)dacol)])]; //+((d0>>13)&0x3f00)])];
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
if ((dacol != 255) && (vidp[0] > (d0>>16))) vidp[0] = ((d0>>16)&255);
|
|
||||||
#endif
|
|
||||||
d0 += d1; u0 += u1; v0 += v1; vidp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case 3: //Transluscence #2
|
|
||||||
for (xx=ix0; xx<ix1; xx+=(1<<LINTERPSIZ))
|
|
||||||
{
|
|
||||||
dtol(rdp,&d1); dp += ngdx2; d1 = ((d1-d0)>>LINTERPSIZ);
|
|
||||||
dtol(up*rdp,&u1); up += ngux2; u1 = ((u1-u0)>>LINTERPSIZ);
|
|
||||||
dtol(vp*rdp,&v1); vp += ngvx2; v1 = ((v1-v0)>>LINTERPSIZ);
|
|
||||||
rdp = 65536.0/dp; vide = &vidp[min(ix1-xx,1<<LINTERPSIZ)];
|
|
||||||
while (vidp < vide)
|
|
||||||
{
|
|
||||||
dacol = walptr[imod(u0>>16,tsizx)*tsizy + ((v0>>16)&tsizym1)];
|
|
||||||
//dacol = walptr[(((u0>>16)&tsizxm1)<<ltsizy) + ((v0>>16)&tsizym1)];
|
|
||||||
#if (DEPTHDEBUG == 0)
|
|
||||||
#if (USEZBUFFER != 0)
|
|
||||||
if ((dacol != 255) && (d0 <= zbufoff[(intptr_t)vidp]))
|
|
||||||
{
|
|
||||||
zbufoff[(intptr_t)vidp] = d0;
|
|
||||||
vidp[0] = transluc[((int32_t)vidp[0])+(((int32_t)palptr[((int32_t)dacol)/*+((d0>>13)&0x3f00)*/])<<8)];
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
if (dacol != 255)
|
|
||||||
vidp[0] = transluc[((int32_t)vidp[0])+(((int32_t)palptr[((int32_t)dacol)/*+((d0>>13)&0x3f00)*/])<<8)];
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
if ((dacol != 255) && (vidp[0] > (d0>>16))) vidp[0] = ((d0>>16)&255);
|
|
||||||
#endif
|
|
||||||
d0 += d1; u0 += u1; v0 += v1; vidp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
i = j;
|
|
||||||
}
|
|
||||||
while (i != maxi);
|
|
||||||
|
|
||||||
if (rendmode == 1)
|
if (rendmode == 1)
|
||||||
{
|
{
|
||||||
if (method&3) //Only draw border around sprites/maskwalls
|
if (method&3) //Only draw border around sprites/maskwalls
|
||||||
|
@ -2918,7 +2593,6 @@ void drawpoly(double *dpx, double *dpy, int32_t n, int32_t method)
|
||||||
//ox /= (double)n; oy /= (double)n;
|
//ox /= (double)n; oy /= (double)n;
|
||||||
//for(i=0,j=n-1;i<n;j=i,i++) drawline2d(px[i]+(ox-px[i])*.125,py[i]+(oy-py[i])*.125,px[j]+(ox-px[j])*.125,py[j]+(oy-py[j])*.125,31);
|
//for(i=0,j=n-1;i<n;j=i,i++) drawline2d(px[i]+(ox-px[i])*.125,py[i]+(oy-py[i])*.125,px[j]+(ox-px[j])*.125,py[j]+(oy-py[j])*.125,31);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue