fix various HOM columns that appeared on some resolutions (#1626)

* fix automap solid bg HOM

* fix scaled window HOM on some resolutions

* fix black column on the right side of status bar on some resolutions
This commit is contained in:
Roman Fomin 2024-03-29 09:29:23 +07:00 committed by GitHub
parent ae388ef965
commit 11f958a17d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 10 additions and 30 deletions

View File

@ -599,7 +599,7 @@ static void AM_initScreenSize(void)
if (automapoverlay && scaledviewheight == SCREENHEIGHT)
f_h = video.height;
else
f_h = video.height - V_ScaleY(ST_HEIGHT);
f_h = V_ScaleY(SCREENHEIGHT - ST_HEIGHT);
}
void AM_ResetScreenSize(void)

View File

@ -43,12 +43,11 @@
// and the total size == width*height*depth/8.,
//
byte *viewimage;
int viewwidth;
int scaledviewwidth;
int scaledviewheight; // killough 11/98
int scaledviewx;
int scaledviewy;
int viewwidth;
int viewheight;
int viewwindowx;
int viewwindowy;
@ -941,8 +940,6 @@ void R_VideoErase(int x, int y, int w, int h)
void R_DrawViewBorder(void)
{
int side;
if (scaledviewwidth == video.unscaledw || background_buffer == NULL)
return;
@ -950,9 +947,9 @@ void R_DrawViewBorder(void)
R_VideoErase(0, 0, video.unscaledw, scaledviewy);
// copy sides
side = scaledviewx;
R_VideoErase(0, scaledviewy, side, scaledviewheight);
R_VideoErase(video.unscaledw - side, scaledviewy, side, scaledviewheight);
R_VideoErase(0, scaledviewy, scaledviewx, scaledviewheight);
R_VideoErase(scaledviewx + scaledviewwidth, scaledviewy, scaledviewx,
scaledviewheight);
// copy bottom
R_VideoErase(0, scaledviewy + scaledviewheight, video.unscaledw, scaledviewy);

View File

@ -650,7 +650,7 @@ void R_ExecuteSetViewSize (void)
}
// [crispy] forcefully initialize the status bar backing screen
ST_refreshBackground(true);
ST_refreshBackground();
pspr_interp = false;
}

View File

@ -377,7 +377,7 @@ static void ST_DrawSolidBackground(int st_x)
Z_ChangeTag (pal, PU_CACHE);
}
void ST_refreshBackground(boolean force)
void ST_refreshBackground(void)
{
int st_x;
@ -441,24 +441,7 @@ void ST_refreshBackground(boolean force)
// [crispy] copy entire video.unscaledw, to preserve the pattern to the left
// and right of the status bar in widescren mode
if (!force)
{
V_CopyRect(ST_X, 0, st_backing_screen,
video.unscaledw, ST_HEIGHT,
ST_X, ST_Y);
}
else
{
if (video.deltaw > 0 && !st_firsttime)
{
V_CopyRect(0, 0, st_backing_screen,
video.deltaw, ST_HEIGHT,
0, ST_Y);
V_CopyRect(SCREENWIDTH + video.deltaw, 0, st_backing_screen,
video.deltaw, ST_HEIGHT,
SCREENWIDTH + video.deltaw, ST_Y);
}
}
V_CopyRect(0, 0, st_backing_screen, video.unscaledw, ST_HEIGHT, 0, ST_Y);
}
// Respond to keyboard input events,
@ -1087,7 +1070,7 @@ void ST_Drawer(boolean fullscreen, boolean refresh)
st_firsttime = false;
// draw status bar background to off-screen buff
ST_refreshBackground(false);
ST_refreshBackground();
}
ST_drawWidgets();

View File

@ -56,7 +56,7 @@ void ST_Init(void);
void ST_Warnings(void);
// [crispy] forcefully initialize the status bar backing screen
void ST_refreshBackground(boolean force);
void ST_refreshBackground(void);
void ST_InitRes(void);