summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrey Nazarov <skuller@skuller.net>2013-03-16 19:26:58 +0400
committerAndrey Nazarov <skuller@skuller.net>2013-03-20 22:04:53 +0400
commit48c4d307ec6c7a3fa75425ffd73bf9eef6bb61fb (patch)
tree80c9c8dd364b04e0bdae3ba92f649a48abe202d2
parent5b90200a5fb8facbb431c789f37495ed7a6e9c10 (diff)
Use TURB_SIZE constant where appropriate.
Also force resampling of all turbulent textures to 64x64.
-rw-r--r--src/refresh/sw/edge.c2
-rw-r--r--src/refresh/sw/image.c5
-rw-r--r--src/refresh/sw/poly.c6
-rw-r--r--src/refresh/sw/scan.c6
-rw-r--r--src/refresh/sw/sw.h4
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