diff options
author | Andrey Nazarov <skuller@skuller.net> | 2013-03-16 19:26:58 +0400 |
---|---|---|
committer | Andrey Nazarov <skuller@skuller.net> | 2013-03-20 22:04:53 +0400 |
commit | 48c4d307ec6c7a3fa75425ffd73bf9eef6bb61fb (patch) | |
tree | 80c9c8dd364b04e0bdae3ba92f649a48abe202d2 | |
parent | 5b90200a5fb8facbb431c789f37495ed7a6e9c10 (diff) |
Use TURB_SIZE constant where appropriate.
Also force resampling of all turbulent textures to 64x64.
-rw-r--r-- | src/refresh/sw/edge.c | 2 | ||||
-rw-r--r-- | src/refresh/sw/image.c | 5 | ||||
-rw-r--r-- | src/refresh/sw/poly.c | 6 | ||||
-rw-r--r-- | src/refresh/sw/scan.c | 6 | ||||
-rw-r--r-- | src/refresh/sw/sw.h | 4 |
5 files changed, 14 insertions, 9 deletions
diff --git a/src/refresh/sw/edge.c b/src/refresh/sw/edge.c index da51a57..252311d 100644 --- a/src/refresh/sw/edge.c +++ b/src/refresh/sw/edge.c @@ -803,7 +803,7 @@ static void D_TurbulentSurf(surf_t *s) pface = s->msurf; miplevel = 0; cacheblock = pface->texinfo->image->pixels[0]; - cachewidth = 64 * TEX_BYTES; + cachewidth = TURB_SIZE * TEX_BYTES; if (s->insubmodel) { // FIXME: we don't want to do all this for every polygon! diff --git a/src/refresh/sw/image.c b/src/refresh/sw/image.c index 58c8d3e..29a3a80 100644 --- a/src/refresh/sw/image.c +++ b/src/refresh/sw/image.c @@ -55,6 +55,11 @@ void IMG_Load(image_t *image, byte *pic, int width, int height) { int i, c, b; + if (image->flags & IF_TURBULENT) { + image->width = TURB_SIZE; + image->height = TURB_SIZE; + } + image->upload_width = width; image->upload_height = height; diff --git a/src/refresh/sw/poly.c b/src/refresh/sw/poly.c index a31436e..6fcab6a 100644 --- a/src/refresh/sw/poly.c +++ b/src/refresh/sw/poly.c @@ -80,11 +80,11 @@ static void R_DrawSpanletTurbulentBlended(void) byte *ptex; do { - sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & 63; - tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & 63; + sturb = ((s_spanletvars.s + r_turb_turb[(s_spanletvars.t >> 16) & (CYCLE - 1)]) >> 16) & TURB_MASK; + tturb = ((s_spanletvars.t + r_turb_turb[(s_spanletvars.s >> 16) & (CYCLE - 1)]) >> 16) & TURB_MASK; if (*s_spanletvars.pz <= (s_spanletvars.izi >> 16)) { - ptex = s_spanletvars.pbase + (sturb) * TEX_BYTES + (tturb) * 64 * TEX_BYTES; + ptex = s_spanletvars.pbase + (sturb) * TEX_BYTES + (tturb) * TURB_SIZE * TEX_BYTES; s_spanletvars.pdest[0] = (s_spanletvars.pdest[0] * r_polydesc.one_minus_alpha + ptex[2] * r_polydesc.alpha) >> 8; s_spanletvars.pdest[1] = (s_spanletvars.pdest[1] * r_polydesc.one_minus_alpha + ptex[1] * r_polydesc.alpha) >> 8; s_spanletvars.pdest[2] = (s_spanletvars.pdest[2] * r_polydesc.one_minus_alpha + ptex[0] * r_polydesc.alpha) >> 8; diff --git a/src/refresh/sw/scan.c b/src/refresh/sw/scan.c index 5833fe4..b885a20 100644 --- a/src/refresh/sw/scan.c +++ b/src/refresh/sw/scan.c @@ -195,9 +195,9 @@ void D_DrawTurbulent16(espan_t *pspan, int *warptable) t = t & ((CYCLE << 16) - 1); do { - turb_s = ((s + turb[(t >> 16) & (CYCLE - 1)]) >> 16) & 63; - turb_t = ((t + turb[(s >> 16) & (CYCLE - 1)]) >> 16) & 63; - ptex = pbase + (turb_t * 64 * TEX_BYTES) + turb_s * TEX_BYTES; + turb_s = ((s + turb[(t >> 16) & (CYCLE - 1)]) >> 16) & TURB_MASK; + turb_t = ((t + turb[(s >> 16) & (CYCLE - 1)]) >> 16) & TURB_MASK; + ptex = pbase + (turb_t * TURB_SIZE * TEX_BYTES) + turb_s * TEX_BYTES; pdest[0] = ptex[2]; pdest[1] = ptex[1]; pdest[2] = ptex[0]; diff --git a/src/refresh/sw/sw.h b/src/refresh/sw/sw.h index 701bb76..22b2269 100644 --- a/src/refresh/sw/sw.h +++ b/src/refresh/sw/sw.h @@ -124,8 +124,8 @@ extern oldrefdef_t r_refdef; #define TRANSPARENT_COLOR 0xFF - -#define TURB_TEX_SIZE 64 // base turbulent texture size +#define TURB_SIZE 64 // base turbulent texture size +#define TURB_MASK (TURB_SIZE - 1) #define CYCLE 128 // turbulent cycle size |