ref: e5e155f8fb17097cbf2bee55515a3a81d839eb64
parent: 8bd89358c5cb1c25e5ed98080fe6b81db29b2c03
author: Sigrid Solveig Haflínudóttir <sigrid@ftrv.se>
date: Sat Dec 30 21:00:48 EST 2023
get rid of screenwidth and rowbytes
--- a/d_edge.c
+++ b/d_edge.c
@@ -34,7 +34,7 @@
int u, u2;
for(span = surf->spans; span; span=span->pnext){
- pdest = dvars.viewbuffer + screenwidth*span->v;
+ pdest = dvars.viewbuffer + dvars.width*span->v;
u2 = span->u + span->count - 1;
for(u = span->u; u <= u2; u++)
pdest[u] = color;
--- a/d_init.c
+++ b/d_init.c
@@ -26,7 +26,7 @@
int i;
dvars.viewbuffer = r_dowarp ? r_warpbuffer : vid.buffer;
- screenwidth = vid.rowbytes;
+ dvars.width = vid.width;
d_roverwrapped = false;
d_initial_rover = sc_rover;
--- a/d_local.h
+++ b/d_local.h
@@ -13,8 +13,8 @@
pixel_t *cacheblock;
pixel_t *viewbuffer;
uzint *zbuffer;
+ unsigned width;
unsigned cachewidth;
- unsigned zwidth;
fixed16_t sadjust, tadjust;
fixed16_t bbextents, bbextentt;
float sdivzstepu, tdivzstepu, zistepu;
--- a/d_modech.c
+++ b/d_modech.c
@@ -9,10 +9,8 @@
void
D_ViewChanged (void)
{
- int rowbytes, i;
+ int i;
- dvars.zwidth = vid.width;
- rowbytes = vid.rowbytes;
scale_for_mip = max(xscale, yscale);
d_pix_scale = 90.0 / max(r_refdef.fov_x, r_refdef.fov_y);
@@ -26,8 +24,8 @@
d_vrectbottom_particle = r_refdef.vrectbottom - d_pix_max;
for(i = 0; i < vid.height; i++){
- d_scantable[i] = i*rowbytes;
- zspantable[i] = dvars.zbuffer + i*dvars.zwidth;
+ d_scantable[i] = i * dvars.width;
+ zspantable[i] = dvars.zbuffer + i*dvars.width;
}
}
--- a/d_part.c
+++ b/d_part.c
@@ -35,7 +35,7 @@
return;
}
- pz = dvars.zbuffer + dvars.zwidth*v + u;
+ pz = dvars.zbuffer + v*dvars.width + u;
pdest = dvars.viewbuffer + d_scantable[v] + u;
izi = zi * 0x8000 * 0x10000;
@@ -45,7 +45,7 @@
pix = 1;
color = pparticle->color;
- for(count = pix; count; count--, pz += dvars.zwidth, pdest += screenwidth){
+ for(count = pix; count; count--, pz += dvars.width, pdest += dvars.width){
for(i = 0; i < pix; i++){
if(pz[i] <= izi){
pz[i] = izi;
--- a/d_polyse.c
+++ b/d_polyse.c
@@ -628,8 +628,8 @@
d_light[1] = plefttop->l[1];
d_light[2] = plefttop->l[2];
- d_pdest = dvars.viewbuffer + ystart * screenwidth + plefttop->u;
- d_pz = dvars.zbuffer + ystart * dvars.zwidth + plefttop->u;
+ d_pdest = dvars.viewbuffer + ystart * dvars.width + plefttop->u;
+ d_pz = dvars.zbuffer + ystart * dvars.width + plefttop->u;
if (initialleftheight == 1)
{
@@ -654,9 +654,8 @@
D_PolysetSetUpForLineScan(plefttop->u, plefttop->v,
pleftbottom->u, pleftbottom->v);
- d_pzbasestep = dvars.zwidth + ubasestep;
+ d_pdestbasestep = d_pzbasestep = dvars.width + ubasestep;
d_pzextrastep = d_pzbasestep + 1;
- d_pdestbasestep = screenwidth + ubasestep;
d_pdestextrastep = d_pdestbasestep + 1;
// TODO: can reuse partial expressions here
@@ -720,8 +719,8 @@
d_light[1] = plefttop->l[1];
d_light[2] = plefttop->l[2];
- d_pdest = dvars.viewbuffer + ystart * screenwidth + plefttop->u;
- d_pz = dvars.zbuffer + ystart * dvars.zwidth + plefttop->u;
+ d_pdest = dvars.viewbuffer + ystart * dvars.width + plefttop->u;
+ d_pz = dvars.zbuffer + ystart * dvars.width + plefttop->u;
if (height == 1)
{
@@ -744,9 +743,8 @@
D_PolysetSetUpForLineScan(plefttop->u, plefttop->v,
pleftbottom->u, pleftbottom->v);
- d_pdestbasestep = screenwidth + ubasestep;
+ d_pzbasestep = d_pdestbasestep = dvars.width + ubasestep;
d_pdestextrastep = d_pdestbasestep + 1;
- d_pzbasestep = dvars.zwidth + ubasestep;
d_pzextrastep = d_pzbasestep + 1;
if (ubasestep < 0){
--- a/d_scan.c
+++ b/d_scan.c
@@ -30,15 +30,15 @@
hratio = h / (float)scr_vrect.height;
for(v = 0; v < scr_vrect.height+AMP2*2; v++)
- rowptr[v] = dvars.viewbuffer + (r_refdef.vrect.y * screenwidth) + (screenwidth * (int)((float)v * hratio * h / (h + AMP2 * 2)));
+ rowptr[v] = dvars.viewbuffer + (r_refdef.vrect.y * dvars.width) + (dvars.width * (int)((float)v * hratio * h / (h + AMP2 * 2)));
for(u = 0; u < scr_vrect.width+AMP2*2; u++)
column[u] = r_refdef.vrect.x + (int)((float)u * wratio * w / (w + AMP2 * 2));
turb = intsintable + ((int)(cl.time*SPEED)&(CYCLE-1));
- dest = vid.buffer + scr_vrect.y * vid.rowbytes + scr_vrect.x;
+ dest = vid.buffer + scr_vrect.y * vid.width + scr_vrect.x;
- for(v = 0; v < scr_vrect.height; v++, dest += vid.rowbytes){
+ for(v = 0; v < scr_vrect.height; v++, dest += vid.width){
col = &column[turb[v]];
row = &rowptr[v];
@@ -56,7 +56,8 @@
D_DrawTurbulent8Span
=============
*/
-void D_DrawTurbulent8Span (int izi, byte alpha)
+static inline void
+D_DrawTurbulent8Span (int izi, byte alpha)
{
int sturb, tturb;
@@ -93,8 +94,9 @@
zi16stepu = dvars.zistepu * 16;
do{
- r_turb_pdest = dvars.viewbuffer + screenwidth*pspan->v + pspan->u;
- r_turb_z = dvars.zbuffer + dvars.zwidth*pspan->v + pspan->u;
+ r_turb_pdest = dvars.viewbuffer + pspan->v*dvars.width + pspan->u;
+ r_turb_z = dvars.zbuffer + pspan->v*dvars.width + pspan->u;
+ zi = dvars.ziorigin + pspan->v*dvars.zistepv + pspan->u*dvars.zistepu;
count = pspan->count;
@@ -104,7 +106,6 @@
sdivz = dvars.sdivzorigin + dv*dvars.sdivzstepv + du*dvars.sdivzstepu;
tdivz = dvars.tdivzorigin + dv*dvars.tdivzstepv + du*dvars.tdivzstepu;
- zi = dvars.ziorigin + dv*dvars.zistepv + du*dvars.zistepu;
z = (float)0x10000 / zi; // prescale to 16.16 fixed-point
r_turb_s = (int)(sdivz * z) + dvars.sadjust;
@@ -192,8 +193,9 @@
izistep = (int)(dvars.zistepu * 0x8000 * 0x10000);
do{
- pdest = dvars.viewbuffer + screenwidth*pspan->v + pspan->u;
- pz = dvars.zbuffer + dvars.zwidth*pspan->v + pspan->u;
+ pdest = dvars.viewbuffer + pspan->v*dvars.width + pspan->u;
+ pz = dvars.zbuffer + pspan->v*dvars.width + pspan->u;
+ zi = dvars.ziorigin + pspan->v*dvars.zistepv + pspan->u*dvars.zistepu;
count = pspan->count;
@@ -203,7 +205,6 @@
sdivz = dvars.sdivzorigin + dv*dvars.sdivzstepv + du*dvars.sdivzstepu;
tdivz = dvars.tdivzorigin + dv*dvars.tdivzstepv + du*dvars.tdivzstepu;
- zi = dvars.ziorigin + dv*dvars.zistepv + du*dvars.zistepu;
z = (float)0x10000 / zi; // prescale to 16.16 fixed-point
s = (int)(sdivz * z) + dvars.sadjust;
@@ -288,7 +289,7 @@
izistep = dvars.zistepu * 0x8000 * 0x10000;
do{
- pz = dvars.zbuffer + pspan->v*dvars.zwidth + pspan->u;
+ pz = dvars.zbuffer + pspan->v*dvars.width + pspan->u;
zi = dvars.ziorigin + pspan->v*dvars.zistepv + pspan->u*dvars.zistepu;
count = pspan->count;
--- a/d_sky.c
+++ b/d_sky.c
@@ -52,7 +52,7 @@
do
{
- pdest = dvars.viewbuffer + (screenwidth * pspan->v) + pspan->u;
+ pdest = dvars.viewbuffer + pspan->v*dvars.width + pspan->u;
count = pspan->count;
// calculate the initial s & t
--- a/d_sprite.c
+++ b/d_sprite.c
@@ -33,8 +33,8 @@
do
{
- pdest = dvars.viewbuffer + screenwidth * pspan->v + pspan->u;
- pz = dvars.zbuffer + dvars.zwidth * pspan->v + pspan->u;
+ pdest = dvars.viewbuffer + dvars.width * pspan->v + pspan->u;
+ pz = dvars.zbuffer + dvars.width * pspan->v + pspan->u;
count = pspan->count;
--- a/draw.c
+++ b/draw.c
@@ -138,7 +138,7 @@
}
else
drawline = 8;
- dest = vid.conbuffer + y*vid.conrowbytes + x;
+ dest = vid.conbuffer + y*vid.conwidth + x;
while(drawline--){
if(source[0]) dest[0] = source[0];
if(source[1]) dest[1] = source[1];
@@ -149,7 +149,7 @@
if(source[6]) dest[6] = source[6];
if(source[7]) dest[7] = source[7];
source += 128;
- dest += vid.conrowbytes;
+ dest += vid.conwidth;
}
}
@@ -186,13 +186,13 @@
fatal ("Draw_Pic: bad coordinates");
}
source = pic->pixels;
- dest = vid.buffer + y * vid.rowbytes + x;
+ dest = vid.buffer + y * vid.width + x;
for(py = 0; py < pic->height; py++){
for(px = 0; px < pic->width; px++){
if(opaque(source[px]))
dest[px] = source[px];
}
- dest += vid.rowbytes;
+ dest += vid.width;
source += pic->width;
}
}
@@ -212,13 +212,13 @@
fatal ("Draw_TransPic: bad coordinates");
source = pic->pixels;
- dest = vid.buffer + y * vid.rowbytes + x;
+ dest = vid.buffer + y * vid.width + x;
if(pic->width & 7){ // general
for(v=0; v<pic->height; v++){
for(u=0; u<pic->width; u++)
if(opaque(tpix = source[u]))
dest[u] = tpix;
- dest += vid.rowbytes;
+ dest += vid.width;
source += pic->width;
}
}else{ // unwound
@@ -241,7 +241,7 @@
if(opaque(tpix = source[u+7]))
dest[u+7] = tpix;
}
- dest += vid.rowbytes;
+ dest += vid.width;
source += pic->width;
}
}
@@ -262,13 +262,13 @@
fatal ("Draw_TransPic: bad coordinates");
source = pic->pixels;
- dest = vid.buffer + y * vid.rowbytes + x;
+ dest = vid.buffer + y * vid.width + x;
if (pic->width & 7){ // general
for(v=0; v<pic->height; v++){
for(u=0; u<pic->width; u++)
if(opaque(tpix = source[u]))
dest[u] = tpix;
- dest += vid.rowbytes;
+ dest += vid.width;
source += pic->width;
}
}else{ // unwound
@@ -291,7 +291,7 @@
if(opaque(tpix = source[u+7]))
dest[u+7] = tpix;
}
- dest += vid.rowbytes;
+ dest += vid.width;
source += pic->width;
}
}
@@ -344,7 +344,7 @@
for (x=0 ; x<n ; x++)
Draw_CharToConback (ver[x], dest+(x<<3));
dest = vid.conbuffer;
- for(y=0; y<lines; y++, dest+=vid.conrowbytes){
+ for(y=0; y<lines; y++, dest+=vid.conwidth){
v = (vid.conheight - lines + y) * 200 / vid.conheight;
src = conback->pixels + v * 320;
if(vid.conwidth == 320)
@@ -373,10 +373,10 @@
pixel_t t, *pdest;
int i, j, srcdelta, destdelta;
- pdest = vid.buffer + (prect->y * vid.rowbytes) + prect->x;
+ pdest = vid.buffer + (prect->y * vid.width) + prect->x;
srcdelta = rowbytes - prect->width;
- destdelta = vid.rowbytes - prect->width;
+ destdelta = vid.width - prect->width;
if (transparent)
{
@@ -395,7 +395,7 @@
for (i=0 ; i<prect->height ; i++){
memcpy (pdest, psrc, prect->width*sizeof(pixel_t));
psrc += rowbytes;
- pdest += vid.rowbytes;
+ pdest += vid.width;
}
}
}
@@ -476,8 +476,8 @@
pixel_t *dest;
int u, v;
- dest = vid.buffer + y*vid.rowbytes + x;
- for(v=0; v<h; v++, dest+=vid.rowbytes)
+ dest = vid.buffer + y*vid.width + x;
+ for(v=0; v<h; v++, dest+=vid.width)
for(u=0; u<w; u++)
dest[u] = c;
}
@@ -497,7 +497,7 @@
{
int t;
- pbuf = vid.buffer + vid.rowbytes*y;
+ pbuf = vid.buffer + vid.width*y;
t = (y & 1) << 1;
for (x=0 ; x<vid.width ; x++)
--- a/r_edge.c
+++ b/r_edge.c
@@ -25,8 +25,6 @@
int r_currentkey;
-extern int screenwidth;
-
static int current_iv, edge_head_u_shift20, edge_tail_u_shift20;
static edge_t edge_head, edge_tail, edge_aftertail, edge_sentinel;
static float fv;
--- a/r_local.h
+++ b/r_local.h
@@ -196,8 +196,6 @@
extern edge_t *newedges[MAXHEIGHT];
extern edge_t *removeedges[MAXHEIGHT];
-extern int screenwidth;
-
// FIXME: make stack vars when debugging done
extern int r_bmodelactive;
--- a/r_main.c
+++ b/r_main.c
@@ -41,8 +41,6 @@
float xscaleshrink, yscaleshrink;
float aliasxscale, aliasyscale, aliasxcenter, aliasycenter;
-int screenwidth;
-
float pixelAspect;
float screenAspect;
float xOrigin, yOrigin;
--- a/r_shared.h
+++ b/r_shared.h
@@ -17,8 +17,6 @@
//===================================================================
-extern int screenwidth;
-
extern float pixelAspect;
extern int r_drawnpolycount;
--- a/vid.h
+++ b/vid.h
@@ -16,7 +16,6 @@
pixel_t *buffer; // invisible buffer
pixel_t *colormap; // 256 * VID_GRADES size
int fullbright; // index of first fullbright color
- unsigned rowbytes; // may be > width if displayed in a window
int width;
int height;
float aspect; // width / height -- < 0 is taller than wide
@@ -23,7 +22,6 @@
int numpages;
int recalc_refdef; // if true, recalc vid-based stuff
pixel_t *conbuffer;
- int conrowbytes;
unsigned conwidth;
unsigned conheight;
int maxwarpwidth;
--- a/vid_plan9.c
+++ b/vid_plan9.c
@@ -45,9 +45,7 @@
surfcache = (byte*)(dvars.zbuffer + vid.width * vid.height);
D_InitCaches(surfcache, scachesz);
- vid.rowbytes = vid.width;
vid.aspect = (float)vid.height / (float)vid.width * (320.0/240.0);
- vid.conrowbytes = vid.rowbytes;
vid.conwidth = vid.width;
vid.conheight = vid.height;
--- a/vid_sdl.c
+++ b/vid_sdl.c
@@ -26,9 +26,7 @@
if(vid.height < 160)
vid.height = 160;
- vid.rowbytes = vid.width;
vid.aspect = (float)vid.height / (float)vid.width * (320.0/240.0);
- vid.conrowbytes = vid.rowbytes;
vid.conwidth = vid.width;
vid.conheight = vid.height;
--- a/view.c
+++ b/view.c
@@ -856,7 +856,7 @@
// render two interleaved views
int i;
- vid.rowbytes <<= 1;
+ vid.width <<= 1;
vid.aspect *= 0.5;
r_refdef.viewangles[YAW] -= lcd_yaw.value;
@@ -864,7 +864,7 @@
r_refdef.vieworg[i] -= right[i]*lcd_x.value;
R_RenderView ();
- vid.buffer += vid.rowbytes>>1;
+ vid.buffer += vid.width>>1;
R_PushDlights ();
@@ -873,11 +873,11 @@
r_refdef.vieworg[i] += 2*right[i]*lcd_x.value;
R_RenderView ();
- vid.buffer -= vid.rowbytes>>1;
+ vid.buffer -= vid.width>>1;
r_refdef.vrect.height <<= 1;
- vid.rowbytes >>= 1;
+ vid.width >>= 1;
vid.aspect *= 2;
}
else