- split GetWidth()/GetHeight() into separate functions for screen and UI. For virtualization of the UI size.

This commit is contained in:
Christoph Oelckers 2019-03-27 00:50:29 +01:00
parent ac5d8bca46
commit 8c9d7dd131
38 changed files with 271 additions and 262 deletions

View file

@ -1188,11 +1188,11 @@ void DAutomap::findMinMaxBoundaries ()
void DAutomap::calcMinMaxMtoF() void DAutomap::calcMinMaxMtoF()
{ {
const double safe_frame = 1.0 - am_emptyspacemargin / 100.0; const double safe_frame = 1.0 - am_emptyspacemargin / 100.0;
double a = safe_frame * (SCREENWIDTH / max_w); double a = safe_frame * (screen->GetUIWidth() / max_w);
double b = safe_frame * (StatusBar->GetTopOfStatusbar() / max_h); double b = safe_frame * (StatusBar->GetTopOfStatusbar() / max_h);
min_scale_mtof = a < b ? a : b; min_scale_mtof = a < b ? a : b;
max_scale_mtof = SCREENHEIGHT / (2*PLAYERRADIUS); max_scale_mtof = screen->GetUIHeight() / (2*PLAYERRADIUS);
} }
//============================================================================= //=============================================================================
@ -1275,8 +1275,8 @@ void DAutomap::changeWindowLoc ()
incx = m_paninc.x; incx = m_paninc.x;
incy = m_paninc.y; incy = m_paninc.y;
oincx = incx = m_paninc.x * SCREENWIDTH / 320; oincx = incx = m_paninc.x * screen->GetUIWidth() / 320;
oincy = incy = m_paninc.y * SCREENHEIGHT / 200; oincy = incy = m_paninc.y * screen->GetUIHeight() / 200;
if (am_rotate == 1 || (am_rotate == 2 && viewactive)) if (am_rotate == 1 || (am_rotate == 2 && viewactive))
{ {
rotate(&incx, &incy, players[consoleplayer].camera->Angles.Yaw - 90.); rotate(&incx, &incy, players[consoleplayer].camera->Angles.Yaw - 90.);
@ -1306,8 +1306,8 @@ void DAutomap::startDisplay()
m_paninc.x = m_paninc.y = 0; m_paninc.x = m_paninc.y = 0;
mtof_zoommul = 1.; mtof_zoommul = 1.;
m_w = FTOM(SCREENWIDTH); m_w = FTOM(screen->GetUIWidth());
m_h = FTOM(SCREENHEIGHT); m_h = FTOM(screen->GetUIHeight());
// find player to center on initially // find player to center on initially
if (!playeringame[pnum = consoleplayer]) if (!playeringame[pnum = consoleplayer])
@ -1413,7 +1413,7 @@ void DAutomap::NewResolution()
minOutWindowScale(); minOutWindowScale();
else if (scale_mtof > max_scale_mtof) else if (scale_mtof > max_scale_mtof)
maxOutWindowScale(); maxOutWindowScale();
f_w = screen->GetWidth(); f_w = screen->GetUIWidth();
f_h = StatusBar->GetTopOfStatusbar(); f_h = StatusBar->GetTopOfStatusbar();
activateNewScale(); activateNewScale();
} }
@ -3179,7 +3179,7 @@ void DAutomap::Drawer (int bottom)
// [RH] Set f_? here now to handle automap overlaying // [RH] Set f_? here now to handle automap overlaying
// and view size adjustments. // and view size adjustments.
f_x = f_y = 0; f_x = f_y = 0;
f_w = screen->GetWidth (); f_w = screen->GetUIWidth ();
f_h = bottom; f_h = bottom;
clearFB(AMColors[AMColors.Background]); clearFB(AMColors[AMColors.Background]);

View file

@ -1199,7 +1199,7 @@ static void PrintSecretString(const char *string, bool thislevel)
else colstr = TEXTCOLOR_GREEN; else colstr = TEXTCOLOR_GREEN;
} }
} }
auto brok = V_BreakLines(CurrentConsoleFont, screen->GetWidth()*95/100, string); auto brok = V_BreakLines(CurrentConsoleFont, screen->GetUIWidth()*95/100, string);
for (auto &line : brok) for (auto &line : brok)
{ {

View file

@ -217,14 +217,14 @@ public:
else else
{ {
screen->DrawChar(CurrentConsoleFont, CR_ORANGE, x, y, '\x1c', screen->DrawChar(CurrentConsoleFont, CR_ORANGE, x, y, '\x1c',
DTA_VirtualWidth, screen->GetWidth() / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, screen->GetHeight() / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
screen->DrawText(CurrentConsoleFont, CR_ORANGE, x + CurrentConsoleFont->GetCharWidth(0x1c), y, screen->DrawText(CurrentConsoleFont, CR_ORANGE, x + CurrentConsoleFont->GetCharWidth(0x1c), y,
&Text[StartPos], &Text[StartPos],
DTA_VirtualWidth, screen->GetWidth() / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, screen->GetHeight() / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
if (cursor) if (cursor)
@ -232,8 +232,8 @@ public:
screen->DrawChar(CurrentConsoleFont, CR_YELLOW, screen->DrawChar(CurrentConsoleFont, CR_YELLOW,
x + CurrentConsoleFont->GetCharWidth(0x1c) + (CursorPosCells - StartPosCells) * CurrentConsoleFont->GetCharWidth(0xb), x + CurrentConsoleFont->GetCharWidth(0x1c) + (CursorPosCells - StartPosCells) * CurrentConsoleFont->GetCharWidth(0xb),
y, '\xb', y, '\xb',
DTA_VirtualWidth, screen->GetWidth() / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, screen->GetHeight() / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
} }
} }
@ -973,14 +973,14 @@ void C_FlushDisplay ()
void C_AdjustBottom () void C_AdjustBottom ()
{ {
if (gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) if (gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP)
ConBottom = SCREENHEIGHT; ConBottom = screen->GetUIHeight();
else if (ConBottom > SCREENHEIGHT / 2 || ConsoleState == c_down) else if (ConBottom > screen->GetUIHeight() / 2 || ConsoleState == c_down)
ConBottom = SCREENHEIGHT / 2; ConBottom = screen->GetUIHeight() / 2;
} }
void C_NewModeAdjust () void C_NewModeAdjust ()
{ {
C_InitConsole (SCREENWIDTH, SCREENHEIGHT, true); C_InitConsole (screen->GetUIWidth(), screen->GetUIHeight(), true);
C_FlushDisplay (); C_FlushDisplay ();
C_AdjustBottom (); C_AdjustBottom ();
} }
@ -1003,16 +1003,16 @@ void C_Ticker()
{ {
if (ConsoleState == c_falling) if (ConsoleState == c_falling)
{ {
ConBottom += (consoletic - lasttic) * (SCREENHEIGHT * 2 / 25); ConBottom += (consoletic - lasttic) * (screen->GetUIHeight() * 2 / 25);
if (ConBottom >= SCREENHEIGHT / 2) if (ConBottom >= screen->GetUIHeight() / 2)
{ {
ConBottom = SCREENHEIGHT / 2; ConBottom = screen->GetUIHeight() / 2;
ConsoleState = c_down; ConsoleState = c_down;
} }
} }
else if (ConsoleState == c_rising) else if (ConsoleState == c_rising)
{ {
ConBottom -= (consoletic - lasttic) * (SCREENHEIGHT * 2 / 25); ConBottom -= (consoletic - lasttic) * (screen->GetUIHeight() * 2 / 25);
if (ConBottom <= 0) if (ConBottom <= 0)
{ {
ConsoleState = c_up; ConsoleState = c_up;
@ -1097,16 +1097,16 @@ void FNotifyBuffer::Draw()
int scale = active_con_scaletext(con_consolefont); int scale = active_con_scaletext(con_consolefont);
if (!center) if (!center)
screen->DrawText (font, color, 0, line, notify.Text, screen->DrawText (font, color, 0, line, notify.Text,
DTA_VirtualWidth, screen->GetWidth() / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, screen->GetHeight() / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_KeepRatio, true, DTA_KeepRatio, true,
DTA_Alpha, alpha, TAG_DONE); DTA_Alpha, alpha, TAG_DONE);
else else
screen->DrawText (font, color, (screen->GetWidth() - screen->DrawText (font, color, (screen->GetUIWidth() -
SmallFont->StringWidth (notify.Text) * scale) / 2 / scale, SmallFont->StringWidth (notify.Text) * scale) / 2 / scale,
line, notify.Text, line, notify.Text,
DTA_VirtualWidth, screen->GetWidth() / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, screen->GetHeight() / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_KeepRatio, true, DTA_KeepRatio, true,
DTA_Alpha, alpha, TAG_DONE); DTA_Alpha, alpha, TAG_DONE);
line += lineadv; line += lineadv;
@ -1161,32 +1161,32 @@ void C_DrawConsole ()
visheight = ConBottom; visheight = ConBottom;
screen->DrawTexture (conpic, 0, visheight - screen->GetHeight(), screen->DrawTexture (conpic, 0, visheight - screen->GetUIHeight(),
DTA_DestWidth, screen->GetWidth(), DTA_DestWidth, screen->GetUIWidth(),
DTA_DestHeight, screen->GetHeight(), DTA_DestHeight, screen->GetUIHeight(),
DTA_ColorOverlay, conshade, DTA_ColorOverlay, conshade,
DTA_Alpha, (gamestate != GS_FULLCONSOLE) ? (double)con_alpha : 1., DTA_Alpha, (gamestate != GS_FULLCONSOLE) ? (double)con_alpha : 1.,
DTA_Masked, false, DTA_Masked, false,
TAG_DONE); TAG_DONE);
if (conline && visheight < screen->GetHeight()) if (conline && visheight < screen->GetUIHeight())
{ {
screen->Clear (0, visheight, screen->GetWidth(), visheight+1, 0, 0); screen->Clear (0, visheight, screen->GetUIWidth(), visheight+1, 0, 0);
} }
if (ConBottom >= 12) if (ConBottom >= 12)
{ {
if (textScale == 1) if (textScale == 1)
screen->DrawText (CurrentConsoleFont, CR_ORANGE, SCREENWIDTH - 8 - screen->DrawText (CurrentConsoleFont, CR_ORANGE, screen->GetUIWidth() - 8 -
CurrentConsoleFont->StringWidth (GetVersionString()), CurrentConsoleFont->StringWidth (GetVersionString()),
ConBottom / textScale - CurrentConsoleFont->GetHeight() - 4, ConBottom / textScale - CurrentConsoleFont->GetHeight() - 4,
GetVersionString(), TAG_DONE); GetVersionString(), TAG_DONE);
else else
screen->DrawText(CurrentConsoleFont, CR_ORANGE, SCREENWIDTH / textScale - 8 - screen->DrawText(CurrentConsoleFont, CR_ORANGE, screen->GetUIWidth() / textScale - 8 -
CurrentConsoleFont->StringWidth(GetVersionString()), CurrentConsoleFont->StringWidth(GetVersionString()),
ConBottom / textScale - CurrentConsoleFont->GetHeight() - 4, ConBottom / textScale - CurrentConsoleFont->GetHeight() - 4,
GetVersionString(), GetVersionString(),
DTA_VirtualWidth, screen->GetWidth() / textScale, DTA_VirtualWidth, screen->GetUIWidth() / textScale,
DTA_VirtualHeight, screen->GetHeight() / textScale, DTA_VirtualHeight, screen->GetUIHeight() / textScale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
} }
@ -1217,8 +1217,8 @@ void C_DrawConsole ()
else else
{ {
screen->DrawText(CurrentConsoleFont, CR_TAN, LEFTMARGIN, offset + lines * CurrentConsoleFont->GetHeight(), p->Text, screen->DrawText(CurrentConsoleFont, CR_TAN, LEFTMARGIN, offset + lines * CurrentConsoleFont->GetHeight(), p->Text,
DTA_VirtualWidth, screen->GetWidth() / textScale, DTA_VirtualWidth, screen->GetUIWidth() / textScale,
DTA_VirtualHeight, screen->GetHeight() / textScale, DTA_VirtualHeight, screen->GetUIHeight() / textScale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
} }
} }
@ -1237,8 +1237,8 @@ void C_DrawConsole ()
screen->DrawChar (CurrentConsoleFont, CR_GREEN, 0, bottomline, RowAdjust == conbuffer->GetFormattedLineCount() ? 12 : 10, TAG_DONE); screen->DrawChar (CurrentConsoleFont, CR_GREEN, 0, bottomline, RowAdjust == conbuffer->GetFormattedLineCount() ? 12 : 10, TAG_DONE);
else else
screen->DrawChar(CurrentConsoleFont, CR_GREEN, 0, bottomline, RowAdjust == conbuffer->GetFormattedLineCount() ? 12 : 10, screen->DrawChar(CurrentConsoleFont, CR_GREEN, 0, bottomline, RowAdjust == conbuffer->GetFormattedLineCount() ? 12 : 10,
DTA_VirtualWidth, screen->GetWidth() / textScale, DTA_VirtualWidth, screen->GetUIWidth() / textScale,
DTA_VirtualHeight, screen->GetHeight() / textScale, DTA_VirtualHeight, screen->GetUIHeight() / textScale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
} }
} }
@ -1370,7 +1370,7 @@ static bool C_HandleKey (event_t *ev, FCommandBuffer &buffer)
case GK_PGUP: case GK_PGUP:
if (ev->data3 & (GKM_SHIFT|GKM_CTRL)) if (ev->data3 & (GKM_SHIFT|GKM_CTRL))
{ // Scroll console buffer up one page { // Scroll console buffer up one page
RowAdjust += (SCREENHEIGHT-4)/active_con_scale() / RowAdjust += (screen->GetUIHeight()-4)/active_con_scale() /
((gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) ? CurrentConsoleFont->GetHeight() : CurrentConsoleFont->GetHeight()*2) - 3; ((gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) ? CurrentConsoleFont->GetHeight() : CurrentConsoleFont->GetHeight()*2) - 3;
} }
else if (RowAdjust < conbuffer->GetFormattedLineCount()) else if (RowAdjust < conbuffer->GetFormattedLineCount())
@ -1393,7 +1393,7 @@ static bool C_HandleKey (event_t *ev, FCommandBuffer &buffer)
case GK_PGDN: case GK_PGDN:
if (ev->data3 & (GKM_SHIFT|GKM_CTRL)) if (ev->data3 & (GKM_SHIFT|GKM_CTRL))
{ // Scroll console buffer down one page { // Scroll console buffer down one page
const int scrollamt = (SCREENHEIGHT-4)/active_con_scale() / const int scrollamt = (screen->GetUIHeight()-4)/active_con_scale() /
((gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) ? CurrentConsoleFont->GetHeight() : CurrentConsoleFont->GetHeight()*2) - 3; ((gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) ? CurrentConsoleFont->GetHeight() : CurrentConsoleFont->GetHeight()*2) - 3;
if (RowAdjust < scrollamt) if (RowAdjust < scrollamt)
{ {

View file

@ -244,11 +244,11 @@ void CT_Drawer (void)
scalex = 1; scalex = 1;
int scale = active_con_scaletext(true); int scale = active_con_scaletext(true);
int screen_width = SCREENWIDTH / scale; int screen_width = screen->GetUIWidth() / scale;
int screen_height= SCREENHEIGHT / scale; int screen_height= screen->GetUIHeight() / scale;
int st_y = StatusBar->GetTopOfStatusbar() / scale; int st_y = StatusBar->GetTopOfStatusbar() / scale;
y += ((SCREENHEIGHT == viewheight && viewactive) || gamestate != GS_LEVEL) ? screen_height : st_y; y += ((screen->GetUIHeight() == viewheight && viewactive) || gamestate != GS_LEVEL) ? screen_height : st_y;
promptwidth = displayfont->StringWidth (prompt) * scalex; promptwidth = displayfont->StringWidth (prompt) * scalex;
x = displayfont->GetCharWidth (displayfont->GetCursor()) * scalex * 2 + promptwidth; x = displayfont->GetCharWidth (displayfont->GetCursor()) * scalex * 2 + promptwidth;

View file

@ -703,7 +703,7 @@ void D_Display ()
{ {
setmodeneeded = false; setmodeneeded = false;
screen->ToggleFullscreen(fullscreen); screen->ToggleFullscreen(fullscreen);
V_OutputResized(screen->GetWidth(), screen->GetHeight()); V_OutputResized(screen->GetScreenWidth(), screen->GetScreenHeight());
} }
// change the view size if needed // change the view size if needed
@ -711,8 +711,8 @@ void D_Display ()
{ {
if (StatusBar == nullptr) if (StatusBar == nullptr)
{ {
viewwidth = SCREENWIDTH; viewwidth = screen->GetScreenWidth();
viewheight = SCREENHEIGHT; viewheight = screen->GetScreenHeight();
setsizeneeded = false; setsizeneeded = false;
} }
else else
@ -777,7 +777,7 @@ void D_Display ()
screen->DrawBlend(viewsec); screen->DrawBlend(viewsec);
if (automapactive) if (automapactive)
{ {
primaryLevel->automap->Drawer ((hud_althud && viewheight == SCREENHEIGHT) ? viewheight : StatusBar->GetTopOfStatusbar()); primaryLevel->automap->Drawer ((hud_althud && viewheight == screen->GetScreenHeight()) ? viewheight : StatusBar->GetTopOfStatusbar());
} }
// for timing the statusbar code. // for timing the statusbar code.
@ -788,7 +788,7 @@ void D_Display ()
{ {
StatusBar->RefreshViewBorder (); StatusBar->RefreshViewBorder ();
} }
if (hud_althud && viewheight == SCREENHEIGHT && screenblocks > 10) if (hud_althud && viewheight == screen->GetScreenHeight() && screenblocks > 10)
{ {
StatusBar->DrawBottomStuff (HUD_AltHud); StatusBar->DrawBottomStuff (HUD_AltHud);
if (DrawFSHUD || automapactive) StatusBar->DrawAltHUD(); if (DrawFSHUD || automapactive) StatusBar->DrawAltHUD();
@ -799,7 +799,7 @@ void D_Display ()
StatusBar->CallDraw (HUD_AltHud, vp.TicFrac); StatusBar->CallDraw (HUD_AltHud, vp.TicFrac);
StatusBar->DrawTopStuff (HUD_AltHud); StatusBar->DrawTopStuff (HUD_AltHud);
} }
else if (viewheight == SCREENHEIGHT && viewactive && screenblocks > 10) else if (viewheight == screen->GetScreenHeight() && viewactive && screenblocks > 10)
{ {
EHudState state = DrawFSHUD ? HUD_Fullscreen : HUD_None; EHudState state = DrawFSHUD ? HUD_Fullscreen : HUD_None;
StatusBar->DrawBottomStuff (state); StatusBar->DrawBottomStuff (state);
@ -853,14 +853,14 @@ void D_Display ()
FString pstring = GStrings("TXT_BY"); FString pstring = GStrings("TXT_BY");
tex = TexMan.GetTextureByName(gameinfo.PauseSign, true); tex = TexMan.GetTextureByName(gameinfo.PauseSign, true);
x = (SCREENWIDTH - tex->GetDisplayWidth() * CleanXfac)/2 + x = (screen->GetUIWidth() - tex->GetDisplayWidth() * CleanXfac)/2 +
tex->GetDisplayLeftOffset() * CleanXfac; tex->GetDisplayLeftOffset() * CleanXfac;
screen->DrawTexture (tex, x, 4, DTA_CleanNoMove, true, TAG_DONE); screen->DrawTexture (tex, x, 4, DTA_CleanNoMove, true, TAG_DONE);
if (paused && multiplayer) if (paused && multiplayer)
{ {
pstring << ' ' << players[paused - 1].userinfo.GetName(); pstring << ' ' << players[paused - 1].userinfo.GetName();
screen->DrawText(SmallFont, CR_RED, screen->DrawText(SmallFont, CR_RED,
(screen->GetWidth() - SmallFont->StringWidth(pstring)*CleanXfac) / 2, (screen->GetUIWidth() - SmallFont->StringWidth(pstring)*CleanXfac) / 2,
(tex->GetDisplayHeight() * CleanYfac) + 4, pstring, DTA_CleanNoMove, true, TAG_DONE); (tex->GetDisplayHeight() * CleanYfac) + 4, pstring, DTA_CleanNoMove, true, TAG_DONE);
} }
} }
@ -1066,7 +1066,7 @@ void D_PageTicker (void)
void D_PageDrawer (void) void D_PageDrawer (void)
{ {
screen->Clear(0, 0, SCREENWIDTH, SCREENHEIGHT, 0, 0); screen->Clear(0, 0, screen->GetUIWidth(), screen->GetUIHeight(), 0, 0);
if (Page.Exists()) if (Page.Exists())
{ {
screen->DrawTexture (TexMan.GetTexture(Page, true), 0, 0, screen->DrawTexture (TexMan.GetTexture(Page, true), 0, 0,
@ -2329,7 +2329,7 @@ void D_DoomMain (void)
if (restart) if (restart)
{ {
C_InitConsole(SCREENWIDTH, SCREENHEIGHT, false); C_InitConsole(screen->GetScreenWidth(), screen->GetScreenHeight(), false);
} }
nospriterename = false; nospriterename = false;

View file

@ -290,8 +290,8 @@ void DHUDMessage::CalcClipCoords(int hudheight)
{ // No clipping rectangle set; use the full screen. { // No clipping rectangle set; use the full screen.
ClipLeft = 0; ClipLeft = 0;
ClipTop = 0; ClipTop = 0;
ClipRight = screen->GetWidth(); ClipRight = screen->GetUIWidth();
ClipBot = screen->GetHeight(); ClipBot = screen->GetUIHeight();
} }
else else
{ {
@ -320,7 +320,7 @@ void DHUDMessage::ResetText (const char *text)
} }
else else
{ {
width = SCREENWIDTH / active_con_scaletext(AltScale); width = screen->GetUIWidth() / active_con_scaletext(AltScale);
} }
Lines = V_BreakLines (Font, NoWrap ? INT_MAX : width, (uint8_t *)text); Lines = V_BreakLines (Font, NoWrap ? INT_MAX : width, (uint8_t *)text);
@ -375,8 +375,8 @@ void DHUDMessage::Draw (int bottom, int visibility)
DrawSetup (); DrawSetup ();
int screen_width = SCREENWIDTH; int screen_width = screen->GetUIWidth();
int screen_height = SCREENHEIGHT; int screen_height = screen->GetUIHeight();
xscale = yscale = 1; xscale = yscale = 1;
if (HUDWidth == 0) if (HUDWidth == 0)
{ {
@ -486,8 +486,8 @@ void DHUDMessage::DoDraw (int linenum, int x, int y, bool clean, int hudheight)
{ {
int scale = active_con_scaletext(AltScale); int scale = active_con_scaletext(AltScale);
screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text, screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text,
DTA_VirtualWidth, SCREENWIDTH / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, SCREENHEIGHT / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_Alpha, Alpha, DTA_Alpha, Alpha,
DTA_RenderStyle, Style, DTA_RenderStyle, Style,
DTA_KeepRatio, true, DTA_KeepRatio, true,
@ -579,8 +579,8 @@ void DHUDMessageFadeOut::DoDraw (int linenum, int x, int y, bool clean, int hudh
{ {
int scale = active_con_scaletext(AltScale); int scale = active_con_scaletext(AltScale);
screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text, screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text,
DTA_VirtualWidth, SCREENWIDTH / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, SCREENHEIGHT / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_Alpha, trans, DTA_Alpha, trans,
DTA_RenderStyle, Style, DTA_RenderStyle, Style,
DTA_KeepRatio, true, DTA_KeepRatio, true,
@ -668,8 +668,8 @@ void DHUDMessageFadeInOut::DoDraw (int linenum, int x, int y, bool clean, int hu
{ {
int scale = active_con_scaletext(AltScale); int scale = active_con_scaletext(AltScale);
screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text, screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text,
DTA_VirtualWidth, SCREENWIDTH / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, SCREENHEIGHT / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_Alpha, trans, DTA_Alpha, trans,
DTA_RenderStyle, Style, DTA_RenderStyle, Style,
DTA_KeepRatio, true, DTA_KeepRatio, true,
@ -839,8 +839,8 @@ void DHUDMessageTypeOnFadeOut::DoDraw (int linenum, int x, int y, bool clean, in
{ {
int scale = active_con_scaletext(AltScale); int scale = active_con_scaletext(AltScale);
screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text, screen->DrawText (Font, TextColor, x, y, Lines[linenum].Text,
DTA_VirtualWidth, SCREENWIDTH / scale, DTA_VirtualWidth, screen->GetUIWidth() / scale,
DTA_VirtualHeight, SCREENHEIGHT / scale, DTA_VirtualHeight, screen->GetUIHeight() / scale,
DTA_KeepRatio, true, DTA_KeepRatio, true,
DTA_TextLen, LineVisible, DTA_TextLen, LineVisible,
DTA_Alpha, Alpha, DTA_Alpha, Alpha,

View file

@ -967,11 +967,11 @@ void Popup::close()
inline void adjustRelCenter(bool relX, bool relY, const double &x, const double &y, double &outX, double &outY, double ScaleX, double ScaleY) inline void adjustRelCenter(bool relX, bool relY, const double &x, const double &y, double &outX, double &outY, double ScaleX, double ScaleY)
{ {
if(relX) if(relX)
outX = x + (SCREENWIDTH/(ScaleX*2)); outX = x + (screen->GetUIWidth()/(ScaleX*2));
else else
outX = x; outX = x;
if(relY) if(relY)
outY = y + (SCREENHEIGHT/(ScaleY*2)); outY = y + (screen->GetUIHeight()/(ScaleY*2));
else else
outY = y; outY = y;
} }
@ -1296,9 +1296,9 @@ public:
h *= Scale.Y; h *= Scale.Y;
if(xright) if(xright)
rx = SCREENWIDTH + rx; rx = screen->GetUIWidth() + rx;
if(ybot) if(ybot)
ry = SCREENHEIGHT + ry; ry = screen->GetUIHeight() + ry;
// Check for clipping // Check for clipping
if(clip[0] != 0 || clip[1] != 0 || clip[2] != 0 || clip[3] != 0) if(clip[0] != 0 || clip[1] != 0 || clip[2] != 0 || clip[3] != 0)
@ -1444,9 +1444,9 @@ public:
rh *= Scale.Y; rh *= Scale.Y;
if(xright) if(xright)
rx = SCREENWIDTH + rx; rx = screen->GetUIWidth() + rx;
if(ybot) if(ybot)
ry = SCREENHEIGHT + ry; ry = screen->GetUIHeight() + ry;
} }
if(drawshadow) if(drawshadow)
{ {

View file

@ -1972,7 +1972,7 @@ class CommandAspectRatio : public SBarInfoCommandFlowControl
private: private:
int FindRatio() int FindRatio()
{ {
float aspect = ActiveRatio(screen->GetWidth(), screen->GetHeight()); float aspect = ActiveRatio(screen->GetUIWidth(), screen->GetUIHeight());
static std::pair<float, int> ratioTypes[] = static std::pair<float, int> ratioTypes[] =
{ {

View file

@ -107,8 +107,8 @@ void DBaseStatusBar::DrawAltHUD()
players[consoleplayer].inventorytics = 0; players[consoleplayer].inventorytics = 0;
int scale = GetUIScale(hud_althudscale); int scale = GetUIScale(hud_althudscale);
int hudwidth = SCREENWIDTH / scale; int hudwidth = screen->GetUIWidth() / scale;
int hudheight = hud_aspectscale ? int(SCREENHEIGHT / (scale*1.2)) : SCREENHEIGHT / scale; int hudheight = hud_aspectscale ? int(screen->GetUIHeight() / (scale*1.2)) : screen->GetUIHeight() / scale;
IFVM(AltHud, Draw) IFVM(AltHud, Draw)
{ {

View file

@ -173,7 +173,7 @@ void ST_LoadCrosshair(bool alwaysload)
{ {
num = -num; num = -num;
} }
size = (SCREENWIDTH < 640) ? 'S' : 'B'; size = (screen->GetUIWidth() < 640) ? 'S' : 'B';
mysnprintf (name, countof(name), "XHAIR%c%d", size, num); mysnprintf (name, countof(name), "XHAIR%c%d", size, num);
FTextureID texid = TexMan.CheckForTexture(name, ETextureType::MiscPatch, FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_ShortNameOnly); FTextureID texid = TexMan.CheckForTexture(name, ETextureType::MiscPatch, FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_ShortNameOnly);
@ -396,7 +396,7 @@ void DBaseStatusBar::SetDrawSize(int reltop, int hres, int vres)
HorizontalResolution = hres; HorizontalResolution = hres;
VerticalResolution = vres; VerticalResolution = vres;
int x, y; int x, y;
V_CalcCleanFacs(hres, vres, SCREENWIDTH, SCREENHEIGHT, &x, &y); V_CalcCleanFacs(hres, vres, screen->GetUIWidth(), screen->GetUIHeight(), &x, &y);
defaultScale = { (double)x, (double)y }; defaultScale = { (double)x, (double)y };
SetScale(); // recalculate positioning info. SetScale(); // recalculate positioning info.
@ -436,8 +436,8 @@ void DBaseStatusBar::SetScale ()
{ {
ValidateResolution(HorizontalResolution, VerticalResolution); ValidateResolution(HorizontalResolution, VerticalResolution);
int w = SCREENWIDTH; int w = screen->GetUIWidth();
int h = SCREENHEIGHT; int h = screen->GetUIHeight();
if (st_scale < 0 || ForcedScale) if (st_scale < 0 || ForcedScale)
{ {
// This is the classic fullscreen scale with aspect ratio compensation. // This is the classic fullscreen scale with aspect ratio compensation.
@ -786,7 +786,7 @@ void DBaseStatusBar::RefreshViewBorder ()
{ {
if (setblocks < 10) if (setblocks < 10)
{ {
int Width = screen->GetWidth(); int Width = screen->GetUIWidth();
if (viewwidth == Width) if (viewwidth == Width)
{ {
return; return;
@ -811,40 +811,40 @@ void DBaseStatusBar::RefreshBackground () const
{ {
int x, x2, y; int x, x2, y;
float ratio = ActiveRatio (SCREENWIDTH, SCREENHEIGHT); float ratio = ActiveRatio (screen->GetUIWidth(), screen->GetUIHeight());
x = ST_X; x = ST_X;
y = SBarTop; y = SBarTop;
if (x == 0 && y == SCREENHEIGHT) return; if (x == 0 && y == screen->GetUIHeight()) return;
auto tex = GetBorderTexture(primaryLevel); auto tex = GetBorderTexture(primaryLevel);
if(!CompleteBorder) if(!CompleteBorder)
{ {
if(y < SCREENHEIGHT) if(y < screen->GetUIHeight())
{ {
screen->DrawBorder (tex, x+1, y, SCREENWIDTH, y+1); screen->DrawBorder (tex, x+1, y, screen->GetUIWidth(), y+1);
screen->DrawBorder (tex, x+1, SCREENHEIGHT-1, SCREENWIDTH, SCREENHEIGHT); screen->DrawBorder (tex, x+1, screen->GetUIHeight()-1, screen->GetUIWidth(), screen->GetUIHeight());
} }
} }
else else
{ {
x = SCREENWIDTH; x = screen->GetUIWidth();
} }
if (x > 0) if (x > 0)
{ {
if(!CompleteBorder) if(!CompleteBorder)
{ {
x2 = SCREENWIDTH - ST_X; x2 = screen->GetUIWidth() - ST_X;
} }
else else
{ {
x2 = SCREENWIDTH; x2 = screen->GetUIWidth();
} }
screen->DrawBorder (tex, 0, y, x+1, SCREENHEIGHT); screen->DrawBorder (tex, 0, y, x+1, screen->GetUIHeight());
screen->DrawBorder (tex, x2-1, y, SCREENWIDTH, SCREENHEIGHT); screen->DrawBorder (tex, x2-1, y, screen->GetUIWidth(), screen->GetUIHeight());
if (setblocks >= 10) if (setblocks >= 10)
{ {
@ -852,7 +852,7 @@ void DBaseStatusBar::RefreshBackground () const
if (p != NULL) if (p != NULL)
{ {
screen->FlatFill(0, y, x, y + p->GetDisplayHeight(), p, true); screen->FlatFill(0, y, x, y + p->GetDisplayHeight(), p, true);
screen->FlatFill(x2, y, SCREENWIDTH, y + p->GetDisplayHeight(), p, true); screen->FlatFill(x2, y, screen->GetUIWidth(), y + p->GetDisplayHeight(), p, true);
} }
} }
} }
@ -884,7 +884,7 @@ void DBaseStatusBar::DrawCrosshair ()
if (crosshairscale > 0.0f) if (crosshairscale > 0.0f)
{ {
size = SCREENHEIGHT * crosshairscale / 200.; size = screen->GetUIHeight() * crosshairscale / 200.;
} }
else else
{ {
@ -1044,8 +1044,8 @@ void DBaseStatusBar::DrawLog ()
{ {
// This uses the same scaling as regular HUD messages // This uses the same scaling as regular HUD messages
auto scale = active_con_scaletext(); auto scale = active_con_scaletext();
hudwidth = SCREENWIDTH / scale; hudwidth = screen->GetUIWidth() / scale;
hudheight = SCREENHEIGHT / scale; hudheight = screen->GetUIHeight() / scale;
int linelen = hudwidth<640? Scale(hudwidth,9,10)-40 : 560; int linelen = hudwidth<640? Scale(hudwidth,9,10)-40 : 560;
auto lines = V_BreakLines (SmallFont, linelen, GStrings(CPlayer->LogText)); auto lines = V_BreakLines (SmallFont, linelen, GStrings(CPlayer->LogText));
@ -1068,8 +1068,8 @@ void DBaseStatusBar::DrawLog ()
if (y<0) y=0; if (y<0) y=0;
w=600; w=600;
} }
screen->Dim(0, 0.5f, Scale(x, SCREENWIDTH, hudwidth), Scale(y, SCREENHEIGHT, hudheight), screen->Dim(0, 0.5f, Scale(x, screen->GetUIWidth(), hudwidth), Scale(y, screen->GetUIHeight(), hudheight),
Scale(w, SCREENWIDTH, hudwidth), Scale(height, SCREENHEIGHT, hudheight)); Scale(w, screen->GetUIWidth(), hudwidth), Scale(height, screen->GetUIHeight(), hudheight));
x+=20; x+=20;
y+=10; y+=10;
for (const FBrokenLines &line : lines) for (const FBrokenLines &line : lines)
@ -1113,7 +1113,7 @@ void DBaseStatusBar::SetMugShotState(const char *stateName, bool waitTillDone, b
void DBaseStatusBar::DrawBottomStuff (EHudState state) void DBaseStatusBar::DrawBottomStuff (EHudState state)
{ {
DrawMessages (HUDMSGLayer_UnderHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : SCREENHEIGHT); DrawMessages (HUDMSGLayer_UnderHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : screen->GetUIHeight());
} }
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
@ -1146,9 +1146,9 @@ void DBaseStatusBar::DrawTopStuff (EHudState state)
if (automapactive && !viewactive) if (automapactive && !viewactive)
{ {
DrawMessages (HUDMSGLayer_OverMap, (state == HUD_StatusBar) ? GetTopOfStatusbar() : SCREENHEIGHT); DrawMessages (HUDMSGLayer_OverMap, (state == HUD_StatusBar) ? GetTopOfStatusbar() : screen->GetUIHeight());
} }
DrawMessages (HUDMSGLayer_OverHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : SCREENHEIGHT); DrawMessages (HUDMSGLayer_OverHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : screen->GetUIHeight());
primaryLevel->localEventManager->RenderOverlay(state); primaryLevel->localEventManager->RenderOverlay(state);
DrawConsistancy (); DrawConsistancy ();
@ -1200,7 +1200,7 @@ void DBaseStatusBar::DrawConsistancy () const
} }
} }
screen->DrawText (SmallFont, CR_GREEN, screen->DrawText (SmallFont, CR_GREEN,
(screen->GetWidth() - SmallFont->StringWidth (conbuff)*CleanXfac) / 2, (screen->GetUIWidth() - SmallFont->StringWidth (conbuff)*CleanXfac) / 2,
0, conbuff, DTA_CleanNoMove, true, TAG_DONE); 0, conbuff, DTA_CleanNoMove, true, TAG_DONE);
} }
} }
@ -1232,7 +1232,7 @@ void DBaseStatusBar::DrawWaiting () const
if (buff_p != NULL) if (buff_p != NULL)
{ {
screen->DrawText (SmallFont, CR_ORANGE, screen->DrawText (SmallFont, CR_ORANGE,
(screen->GetWidth() - SmallFont->StringWidth (conbuff)*CleanXfac) / 2, (screen->GetUIWidth() - SmallFont->StringWidth (conbuff)*CleanXfac) / 2,
SmallFont->GetHeight()*CleanYfac, conbuff, DTA_CleanNoMove, true, TAG_DONE); SmallFont->GetHeight()*CleanYfac, conbuff, DTA_CleanNoMove, true, TAG_DONE);
} }
} }
@ -1430,15 +1430,15 @@ void DBaseStatusBar::DrawGraphic(FTextureID texture, double x, double y, int fla
switch (flags & DI_SCREEN_HMASK) switch (flags & DI_SCREEN_HMASK)
{ {
default: orgx = 0; break; default: orgx = 0; break;
case DI_SCREEN_HCENTER: orgx = screen->GetWidth() / 2; break; case DI_SCREEN_HCENTER: orgx = screen->GetUIWidth() / 2; break;
case DI_SCREEN_RIGHT: orgx = screen->GetWidth(); break; case DI_SCREEN_RIGHT: orgx = screen->GetUIWidth(); break;
} }
switch (flags & DI_SCREEN_VMASK) switch (flags & DI_SCREEN_VMASK)
{ {
default: orgy = 0; break; default: orgy = 0; break;
case DI_SCREEN_VCENTER: orgy = screen->GetHeight() / 2; break; case DI_SCREEN_VCENTER: orgy = screen->GetUIHeight() / 2; break;
case DI_SCREEN_BOTTOM: orgy = screen->GetHeight(); break; case DI_SCREEN_BOTTOM: orgy = screen->GetUIHeight(); break;
} }
// move stuff in the top right corner a bit down if the fps counter is on. // move stuff in the top right corner a bit down if the fps counter is on.
@ -1509,15 +1509,15 @@ void DBaseStatusBar::DrawString(FFont *font, const FString &cstring, double x, d
switch (flags & DI_SCREEN_HMASK) switch (flags & DI_SCREEN_HMASK)
{ {
default: orgx = 0; break; default: orgx = 0; break;
case DI_SCREEN_HCENTER: orgx = screen->GetWidth() / 2; break; case DI_SCREEN_HCENTER: orgx = screen->GetUIWidth() / 2; break;
case DI_SCREEN_RIGHT: orgx = screen->GetWidth(); break; case DI_SCREEN_RIGHT: orgx = screen->GetUIWidth(); break;
} }
switch (flags & DI_SCREEN_VMASK) switch (flags & DI_SCREEN_VMASK)
{ {
default: orgy = 0; break; default: orgy = 0; break;
case DI_SCREEN_VCENTER: orgy = screen->GetHeight() / 2; break; case DI_SCREEN_VCENTER: orgy = screen->GetUIHeight() / 2; break;
case DI_SCREEN_BOTTOM: orgy = screen->GetHeight(); break; case DI_SCREEN_BOTTOM: orgy = screen->GetUIHeight(); break;
} }
// move stuff in the top right corner a bit down if the fps counter is on. // move stuff in the top right corner a bit down if the fps counter is on.
@ -1659,15 +1659,15 @@ void DBaseStatusBar::TransformRect(double &x, double &y, double &w, double &h, i
switch (flags & DI_SCREEN_HMASK) switch (flags & DI_SCREEN_HMASK)
{ {
default: orgx = 0; break; default: orgx = 0; break;
case DI_SCREEN_HCENTER: orgx = screen->GetWidth() / 2; break; case DI_SCREEN_HCENTER: orgx = screen->GetUIWidth() / 2; break;
case DI_SCREEN_RIGHT: orgx = screen->GetWidth(); break; case DI_SCREEN_RIGHT: orgx = screen->GetUIWidth(); break;
} }
switch (flags & DI_SCREEN_VMASK) switch (flags & DI_SCREEN_VMASK)
{ {
default: orgy = 0; break; default: orgy = 0; break;
case DI_SCREEN_VCENTER: orgy = screen->GetHeight() / 2; break; case DI_SCREEN_VCENTER: orgy = screen->GetUIHeight() / 2; break;
case DI_SCREEN_BOTTOM: orgy = screen->GetHeight(); break; case DI_SCREEN_BOTTOM: orgy = screen->GetUIHeight(); break;
} }
// move stuff in the top right corner a bit down if the fps counter is on. // move stuff in the top right corner a bit down if the fps counter is on.

View file

@ -290,7 +290,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
} }
} }
int scorexwidth = SCREENWIDTH / MAX(8, numTeams); int scorexwidth = screen->GetUIWidth() / MAX(8, numTeams);
int numscores = 0; int numscores = 0;
int scorex; int scorex;
@ -302,7 +302,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
} }
} }
scorex = (SCREENWIDTH - scorexwidth * (numscores - 1)) / 2; scorex = (screen->GetUIWidth() - scorexwidth * (numscores - 1)) / 2;
for (i = 0; i < Teams.Size(); ++i) for (i = 0; i < Teams.Size(); ++i)
{ {
@ -331,7 +331,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER
col3 = col2 + (SmallFont->StringWidth(text_frags) + 8) * CleanXfac; col3 = col2 + (SmallFont->StringWidth(text_frags) + 8) * CleanXfac;
col4 = col3 + maxscorewidth * CleanXfac; col4 = col3 + maxscorewidth * CleanXfac;
col5 = col4 + (maxnamewidth + 8) * CleanXfac; col5 = col4 + (maxnamewidth + 8) * CleanXfac;
x = (SCREENWIDTH >> 1) - (((SmallFont->StringWidth(text_delay) * CleanXfac) + col5) >> 1); x = (screen->GetUIWidth() >> 1) - (((SmallFont->StringWidth(text_delay) * CleanXfac) + col5) >> 1);
screen->DrawText (SmallFont, color, x, y, text_color, screen->DrawText (SmallFont, color, x, y, text_color,
DTA_CleanNoMove, true, TAG_DONE); DTA_CleanNoMove, true, TAG_DONE);
@ -386,7 +386,7 @@ static void HU_DrawTimeRemaining (int y)
else else
mysnprintf (str, countof(str), "Level ends in %d:%02d", minutes, seconds); mysnprintf (str, countof(str), "Level ends in %d:%02d", minutes, seconds);
screen->DrawText (SmallFont, CR_GREY, SCREENWIDTH/2 - SmallFont->StringWidth (str)/2*CleanXfac, screen->DrawText (SmallFont, CR_GREY, screen->GetUIWidth()/2 - SmallFont->StringWidth (str)/2*CleanXfac,
y, str, DTA_CleanNoMove, true, TAG_DONE); y, str, DTA_CleanNoMove, true, TAG_DONE);
} }
} }

View file

@ -168,12 +168,12 @@ void DIntermissionScreen::Drawer ()
} }
else else
{ {
screen->FlatFill (0,0, SCREENWIDTH, SCREENHEIGHT, TexMan.GetTexture(mBackground), false, true); screen->FlatFill (0,0, screen->GetUIWidth(), screen->GetUIHeight(), TexMan.GetTexture(mBackground), false, true);
} }
} }
else else
{ {
screen->Clear (0, 0, SCREENWIDTH, SCREENHEIGHT, 0, 0); screen->Clear (0, 0, screen->GetUIWidth(), screen->GetUIHeight(), 0, 0);
} }
for (unsigned i=0; i < mOverlays.Size(); i++) for (unsigned i=0; i < mOverlays.Size(); i++)
{ {
@ -312,20 +312,20 @@ void DIntermissionScreenText::Drawer ()
int rowheight = SmallFont->GetHeight() * CleanYfac; int rowheight = SmallFont->GetHeight() * CleanYfac;
int rowpadding = (gameinfo.gametype & (GAME_DoomStrifeChex) ? 3 : -1) * CleanYfac; int rowpadding = (gameinfo.gametype & (GAME_DoomStrifeChex) ? 3 : -1) * CleanYfac;
int cx = (mTextX - 160)*CleanXfac + screen->GetWidth() / 2; int cx = (mTextX - 160)*CleanXfac + screen->GetUIWidth() / 2;
int cy = (mTextY - 100)*CleanYfac + screen->GetHeight() / 2; int cy = (mTextY - 100)*CleanYfac + screen->GetUIHeight() / 2;
cx = MAX<int>(0, cx); cx = MAX<int>(0, cx);
int startx = cx; int startx = cx;
// Does this text fall off the end of the screen? If so, try to eliminate some margins first. // Does this text fall off the end of the screen? If so, try to eliminate some margins first.
while (rowpadding > 0 && cy + numrows * (rowheight + rowpadding) - rowpadding > screen->GetHeight()) while (rowpadding > 0 && cy + numrows * (rowheight + rowpadding) - rowpadding > screen->GetUIHeight())
{ {
rowpadding--; rowpadding--;
} }
// If it's still off the bottom, try to center it vertically. // If it's still off the bottom, try to center it vertically.
if (cy + numrows * (rowheight + rowpadding) - rowpadding > screen->GetHeight()) if (cy + numrows * (rowheight + rowpadding) - rowpadding > screen->GetUIHeight())
{ {
cy = (screen->GetHeight() - (numrows * (rowheight + rowpadding) - rowpadding)) / 2; cy = (screen->GetUIHeight() - (numrows * (rowheight + rowpadding) - rowpadding)) / 2;
// If it's off the top now, you're screwed. It's too tall to fit. // If it's off the top now, you're screwed. It's too tall to fit.
if (cy < 0) if (cy < 0)
{ {
@ -353,7 +353,7 @@ void DIntermissionScreenText::Drawer ()
pic = SmallFont->GetChar (c, mTextColor, &w); pic = SmallFont->GetChar (c, mTextColor, &w);
w += kerning; w += kerning;
w *= CleanXfac; w *= CleanXfac;
if (cx + w > SCREENWIDTH) if (cx + w > screen->GetUIWidth())
continue; continue;
screen->DrawChar(SmallFont, mTextColor, cx, cy, c, DTA_CleanNoMove, true, TAG_DONE); screen->DrawChar(SmallFont, mTextColor, cx, cy, c, DTA_CleanNoMove, true, TAG_DONE);
@ -544,8 +544,8 @@ void DIntermissionScreenCast::Drawer ()
{ {
if (*name == '$') name = GStrings(name+1); if (*name == '$') name = GStrings(name+1);
screen->DrawText (SmallFont, CR_UNTRANSLATED, screen->DrawText (SmallFont, CR_UNTRANSLATED,
(SCREENWIDTH - SmallFont->StringWidth (name) * CleanXfac)/2, (screen->GetUIWidth() - SmallFont->StringWidth (name) * CleanXfac)/2,
(SCREENHEIGHT * 180) / 200, (screen->GetUIHeight() * 180) / 200,
name, name,
DTA_CleanNoMove, true, TAG_DONE); DTA_CleanNoMove, true, TAG_DONE);
} }

View file

@ -622,12 +622,12 @@ void M_ScreenShot (const char *filename)
if (writepcx) if (writepcx)
{ {
WritePCXfile(file, buffer.Data(), nullptr, color_type, WritePCXfile(file, buffer.Data(), nullptr, color_type,
screen->GetWidth(), screen->GetHeight(), pitch); screen->GetScreenWidth(), screen->GetScreenHeight(), pitch);
} }
else else
{ {
WritePNGfile(file, buffer.Data(), nullptr, color_type, WritePNGfile(file, buffer.Data(), nullptr, color_type,
screen->GetWidth(), screen->GetHeight(), pitch, gamma); screen->GetScreenWidth(), screen->GetScreenHeight(), pitch, gamma);
} }
delete file; delete file;

View file

@ -872,7 +872,7 @@ static void M_Dim()
amount = MIN<float>(1.f, amount*2.f); amount = MIN<float>(1.f, amount*2.f);
} }
screen->Dim(dimmer, amount, 0, 0, screen->GetWidth(), screen->GetHeight()); screen->Dim(dimmer, amount, 0, 0, screen->GetUIWidth(), screen->GetUIHeight());
} }

View file

@ -9696,11 +9696,11 @@ scriptwait:
break; break;
case PCD_GETSCREENWIDTH: case PCD_GETSCREENWIDTH:
PushToStack (SCREENWIDTH); PushToStack (screen->GetUIWidth());
break; break;
case PCD_GETSCREENHEIGHT: case PCD_GETSCREENHEIGHT:
PushToStack (SCREENHEIGHT); PushToStack (screen->GetUIHeight());
break; break;
case PCD_THING_PROJECTILE2: case PCD_THING_PROJECTILE2:

View file

@ -392,13 +392,13 @@ void SystemGLFrameBuffer::SwapBuffers()
int SystemGLFrameBuffer::GetClientWidth() int SystemGLFrameBuffer::GetClientWidth()
{ {
const int clientWidth = I_GetContentViewSize(m_window).width; const int clientWidth = I_GetContentViewSize(m_window).width;
return clientWidth > 0 ? clientWidth : GetWidth(); return clientWidth > 0 ? clientWidth : GetScreenWidth();
} }
int SystemGLFrameBuffer::GetClientHeight() int SystemGLFrameBuffer::GetClientHeight()
{ {
const int clientHeight = I_GetContentViewSize(m_window).height; const int clientHeight = I_GetContentViewSize(m_window).height;
return clientHeight > 0 ? clientHeight : GetHeight(); return clientHeight > 0 ? clientHeight : GetScreenHeight();
} }

View file

@ -123,7 +123,7 @@ FRenderViewpoint::FRenderViewpoint()
TanSin = 0.0; TanSin = 0.0;
camera = nullptr; camera = nullptr;
sector = nullptr; sector = nullptr;
FieldOfView = 90.; // Angles in the SCREENWIDTH wide window FieldOfView = 90.; // Angles in the screen->GetScreenWidth() wide window
TicFrac = 0.0; TicFrac = 0.0;
FrameTime = 0; FrameTime = 0;
extralight = 0; extralight = 0;
@ -264,13 +264,13 @@ void R_ExecuteSetViewSize (FRenderViewpoint &viewpoint, FViewWindow &viewwindow)
{ {
setsizeneeded = false; setsizeneeded = false;
R_SetWindow (viewpoint, viewwindow, setblocks, SCREENWIDTH, SCREENHEIGHT, StatusBar->GetTopOfStatusbar()); R_SetWindow (viewpoint, viewwindow, setblocks, screen->GetScreenWidth(), screen->GetScreenHeight(), StatusBar->GetTopOfStatusbar());
// Handle resize, e.g. smaller view windows with border and/or status bar. // Handle resize, e.g. smaller view windows with border and/or status bar.
viewwindowx = (screen->GetWidth() - viewwidth) >> 1; viewwindowx = (screen->GetScreenWidth() - viewwidth) >> 1;
// Same with base row offset. // Same with base row offset.
viewwindowy = (viewwidth == screen->GetWidth()) ? 0 : (StatusBar->GetTopOfStatusbar() - viewheight) >> 1; viewwindowy = (viewwidth == screen->GetScreenWidth()) ? 0 : (StatusBar->GetTopOfStatusbar() - viewheight) >> 1;
} }
//========================================================================== //==========================================================================
@ -314,8 +314,8 @@ double R_GetGlobVis(const FViewWindow &viewwindow, double vis)
{ {
vis = R_ClampVisibility(vis); vis = R_ClampVisibility(vis);
double virtwidth = screen->GetWidth(); double virtwidth = screen->GetScreenWidth();
double virtheight = screen->GetHeight(); double virtheight = screen->GetScreenHeight();
if (AspectTallerThanWide(viewwindow.WidescreenRatio)) if (AspectTallerThanWide(viewwindow.WidescreenRatio))
{ {
@ -332,14 +332,14 @@ double R_GetGlobVis(const FViewWindow &viewwindow, double vis)
double wallVisibility = vis; double wallVisibility = vis;
// Prevent overflow on walls // Prevent overflow on walls
double maxVisForWall = (InvZtoScale * (screen->GetWidth() * r_Yaspect) / (viewwidth * screen->GetHeight() * viewwindow.FocalTangent)); double maxVisForWall = (InvZtoScale * (screen->GetScreenWidth() * r_Yaspect) / (viewwidth * screen->GetScreenHeight() * viewwindow.FocalTangent));
maxVisForWall = 32767.0 / maxVisForWall; maxVisForWall = 32767.0 / maxVisForWall;
if (vis < 0 && vis < -maxVisForWall) if (vis < 0 && vis < -maxVisForWall)
wallVisibility = -maxVisForWall; wallVisibility = -maxVisForWall;
else if (vis > 0 && vis > maxVisForWall) else if (vis > 0 && vis > maxVisForWall)
wallVisibility = maxVisForWall; wallVisibility = maxVisForWall;
wallVisibility = InvZtoScale * screen->GetWidth() * AspectBaseHeight(viewwindow.WidescreenRatio) / (viewwidth * screen->GetHeight() * 3) * (wallVisibility * viewwindow.FocalTangent); wallVisibility = InvZtoScale * screen->GetScreenWidth() * AspectBaseHeight(viewwindow.WidescreenRatio) / (viewwidth * screen->GetScreenHeight() * 3) * (wallVisibility * viewwindow.FocalTangent);
return wallVisibility / viewwindow.FocalTangent; return wallVisibility / viewwindow.FocalTangent;
} }

View file

@ -554,14 +554,14 @@ void F2DDrawer::AddFlatFill(double left, double top, double right, double bottom
if (scaleto320x200) if (scaleto320x200)
{ {
float myratio = ActiveRatio (screen->GetWidth(), screen->GetHeight()); float myratio = ActiveRatio (screen->GetUIWidth(), screen->GetUIHeight());
if (!AspectTallerThanWide(myratio)) if (!AspectTallerThanWide(myratio))
{ {
factor = 240 / screen->GetHeight(); factor = 240 / screen->GetUIHeight();
} }
else else
{ {
factor = 320 / screen->GetWidth(); factor = 320 / screen->GetUIWidth();
} }
} }

View file

@ -74,15 +74,15 @@ int GetUIScale(int altval)
else if (uiscale == 0) else if (uiscale == 0)
{ {
// Default should try to scale to 640x400 // Default should try to scale to 640x400
int vscale = screen->GetHeight() / 400; int vscale = screen->GetUIHeight() / 400;
int hscale = screen->GetWidth() / 640; int hscale = screen->GetUIWidth() / 640;
scaleval = clamp(vscale, 1, hscale); scaleval = clamp(vscale, 1, hscale);
} }
else scaleval = uiscale; else scaleval = uiscale;
// block scales that result in something larger than the current screen. // block scales that result in something larger than the current screen.
int vmax = screen->GetHeight() / 200; int vmax = screen->GetUIHeight() / 200;
int hmax = screen->GetWidth() / 320; int hmax = screen->GetUIWidth() / 320;
int max = MAX(vmax, hmax); int max = MAX(vmax, hmax);
return MAX(1,MIN(scaleval, max)); return MAX(1,MIN(scaleval, max));
} }
@ -95,15 +95,15 @@ int GetConScale(int altval)
else if (uiscale == 0) else if (uiscale == 0)
{ {
// Default should try to scale to 640x400 // Default should try to scale to 640x400
int vscale = screen->GetHeight() / 800; int vscale = screen->GetUIHeight() / 800;
int hscale = screen->GetWidth() / 1280; int hscale = screen->GetUIWidth() / 1280;
scaleval = clamp(vscale, 1, hscale); scaleval = clamp(vscale, 1, hscale);
} }
else scaleval = uiscale / 2; else scaleval = uiscale / 2;
// block scales that result in something larger than the current screen. // block scales that result in something larger than the current screen.
int vmax = screen->GetHeight() / 400; int vmax = screen->GetUIHeight() / 400;
int hmax = screen->GetWidth() / 640; int hmax = screen->GetUIWidth() / 640;
int max = MAX(vmax, hmax); int max = MAX(vmax, hmax);
return MAX(1, MIN(scaleval, max)); return MAX(1, MIN(scaleval, max));
} }
@ -129,13 +129,13 @@ int CleanXfac_1, CleanYfac_1, CleanWidth_1, CleanHeight_1;
DEFINE_ACTION_FUNCTION(_Screen, GetWidth) DEFINE_ACTION_FUNCTION(_Screen, GetWidth)
{ {
PARAM_PROLOGUE; PARAM_PROLOGUE;
ACTION_RETURN_INT(screen->GetWidth()); ACTION_RETURN_INT(screen->GetUIWidth());
} }
DEFINE_ACTION_FUNCTION(_Screen, GetHeight) DEFINE_ACTION_FUNCTION(_Screen, GetHeight)
{ {
PARAM_PROLOGUE; PARAM_PROLOGUE;
ACTION_RETURN_INT(screen->GetHeight()); ACTION_RETURN_INT(screen->GetUIHeight());
} }
DEFINE_ACTION_FUNCTION(_Screen, PaletteColor) DEFINE_ACTION_FUNCTION(_Screen, PaletteColor)
@ -268,10 +268,10 @@ DEFINE_ACTION_FUNCTION(_Screen, DrawShape)
void DFrameBuffer::SetClipRect(int x, int y, int w, int h) void DFrameBuffer::SetClipRect(int x, int y, int w, int h)
{ {
clipleft = clamp(x, 0, GetWidth()); clipleft = clamp(x, 0, GetUIWidth());
clipwidth = clamp(w, -1, GetWidth() - x); clipwidth = clamp(w, -1, GetUIWidth() - x);
cliptop = clamp(y, 0, GetHeight()); cliptop = clamp(y, 0, GetUIHeight());
clipheight = clamp(h, -1, GetHeight() - y); clipheight = clamp(h, -1, GetUIHeight() - y);
} }
DEFINE_ACTION_FUNCTION(_Screen, SetClipRect) DEFINE_ACTION_FUNCTION(_Screen, SetClipRect)
@ -359,8 +359,8 @@ bool DFrameBuffer::SetTextureParms(DrawParms *parms, FTexture *img, double xx, d
break; break;
case DTA_Clean: case DTA_Clean:
parms->x = (parms->x - 160.0) * CleanXfac + (Width * 0.5); parms->x = (parms->x - 160.0) * CleanXfac + (GetUIWidth() * 0.5);
parms->y = (parms->y - 100.0) * CleanYfac + (Height * 0.5); parms->y = (parms->y - 100.0) * CleanYfac + (GetUIHeight() * 0.5);
parms->destwidth = parms->texwidth * CleanXfac; parms->destwidth = parms->texwidth * CleanXfac;
parms->destheight = parms->texheight * CleanYfac; parms->destheight = parms->texheight * CleanYfac;
break; break;
@ -389,18 +389,18 @@ bool DFrameBuffer::SetTextureParms(DrawParms *parms, FTexture *img, double xx, d
parms->x *= scale.X; parms->x *= scale.X;
if (parms->cleanmode == DTA_HUDRulesC) if (parms->cleanmode == DTA_HUDRulesC)
parms->x += Width * 0.5; parms->x += GetUIWidth() * 0.5;
else if (xright) else if (xright)
parms->x = Width + parms->x; parms->x = GetUIWidth() + parms->x;
parms->y *= scale.Y; parms->y *= scale.Y;
if (ybot) if (ybot)
parms->y = Height + parms->y; parms->y = GetUIHeight() + parms->y;
parms->destwidth = parms->texwidth * scale.X; parms->destwidth = parms->texwidth * scale.X;
parms->destheight = parms->texheight * scale.Y; parms->destheight = parms->texheight * scale.Y;
break; break;
} }
} }
if (parms->virtWidth != Width || parms->virtHeight != Height) if (parms->virtWidth != GetUIWidth() || parms->virtHeight != GetUIHeight())
{ {
VirtualToRealCoords(parms->x, parms->y, parms->destwidth, parms->destheight, VirtualToRealCoords(parms->x, parms->y, parms->destwidth, parms->destheight,
parms->virtWidth, parms->virtHeight, parms->virtBottom, !parms->keepratio); parms->virtWidth, parms->virtHeight, parms->virtBottom, !parms->keepratio);
@ -509,10 +509,10 @@ bool DFrameBuffer::ParseDrawTextureTags(FTexture *img, double x, double y, uint3
parms->fortext = fortext; parms->fortext = fortext;
parms->windowleft = 0; parms->windowleft = 0;
parms->windowright = INT_MAX; parms->windowright = INT_MAX;
parms->dClip = this->GetHeight(); parms->dClip = this->GetUIHeight();
parms->uClip = 0; parms->uClip = 0;
parms->lClip = 0; parms->lClip = 0;
parms->rClip = this->GetWidth(); parms->rClip = this->GetUIWidth();
parms->left = INT_MAX; parms->left = INT_MAX;
parms->top = INT_MAX; parms->top = INT_MAX;
parms->destwidth = INT_MAX; parms->destwidth = INT_MAX;
@ -527,8 +527,8 @@ bool DFrameBuffer::ParseDrawTextureTags(FTexture *img, double x, double y, uint3
parms->color = 0xffffffff; parms->color = 0xffffffff;
//parms->shadowAlpha = 0; //parms->shadowAlpha = 0;
parms->shadowColor = 0; parms->shadowColor = 0;
parms->virtWidth = this->GetWidth(); parms->virtWidth = this->GetUIWidth();
parms->virtHeight = this->GetHeight(); parms->virtHeight = this->GetUIHeight();
parms->keepratio = false; parms->keepratio = false;
parms->style.BlendOp = 255; // Dummy "not set" value parms->style.BlendOp = 255; // Dummy "not set" value
parms->masked = true; parms->masked = true;
@ -807,7 +807,7 @@ bool DFrameBuffer::ParseDrawTextureTags(FTexture *img, double x, double y, uint3
break; break;
case DTA_ClipBottom: case DTA_ClipBottom:
parms->dClip = MIN(this->GetHeight(), ListGetInt(tags)); parms->dClip = MIN(this->GetUIHeight(), ListGetInt(tags));
break; break;
case DTA_ClipLeft: case DTA_ClipLeft:
@ -815,7 +815,7 @@ bool DFrameBuffer::ParseDrawTextureTags(FTexture *img, double x, double y, uint3
break; break;
case DTA_ClipRight: case DTA_ClipRight:
parms->rClip = MIN(this->GetWidth(), ListGetInt(tags)); parms->rClip = MIN(this->GetUIWidth(), ListGetInt(tags));
break; break;
case DTA_ClipTopF: case DTA_ClipTopF:
@ -823,7 +823,7 @@ bool DFrameBuffer::ParseDrawTextureTags(FTexture *img, double x, double y, uint3
break; break;
case DTA_ClipBottomF: case DTA_ClipBottomF:
parms->dClip = MIN<double>(this->GetHeight(), ListGetDouble(tags)); parms->dClip = MIN<double>(this->GetUIHeight(), ListGetDouble(tags));
break; break;
case DTA_ClipLeftF: case DTA_ClipLeftF:
@ -831,7 +831,7 @@ bool DFrameBuffer::ParseDrawTextureTags(FTexture *img, double x, double y, uint3
break; break;
case DTA_ClipRightF: case DTA_ClipRightF:
parms->rClip = MIN<double>(this->GetWidth(), ListGetDouble(tags)); parms->rClip = MIN<double>(this->GetUIWidth(), ListGetDouble(tags));
break; break;
case DTA_ShadowAlpha: case DTA_ShadowAlpha:
@ -985,6 +985,8 @@ template bool DFrameBuffer::ParseDrawTextureTags<VMVa_List>(FTexture *img, doubl
void DFrameBuffer::VirtualToRealCoords(double &x, double &y, double &w, double &h, void DFrameBuffer::VirtualToRealCoords(double &x, double &y, double &w, double &h,
double vwidth, double vheight, bool vbottom, bool handleaspect) const double vwidth, double vheight, bool vbottom, bool handleaspect) const
{ {
auto Width = GetUIWidth();
auto Height = GetUIHeight();
float myratio = handleaspect ? ActiveRatio (Width, Height) : (4.0f / 3.0f); float myratio = handleaspect ? ActiveRatio (Width, Height) : (4.0f / 3.0f);
// if 21:9 AR, map to 16:9 for all callers. // if 21:9 AR, map to 16:9 for all callers.
@ -1066,6 +1068,9 @@ void DFrameBuffer::VirtualToRealCoordsInt(int &x, int &y, int &w, int &h,
void DFrameBuffer::FillBorder (FTexture *img) void DFrameBuffer::FillBorder (FTexture *img)
{ {
auto Width = GetUIWidth();
auto Height = GetUIHeight();
float myratio = ActiveRatio (Width, Height); float myratio = ActiveRatio (Width, Height);
// if 21:9 AR, fill borders akin to 16:9, since all fullscreen // if 21:9 AR, fill borders akin to 16:9, since all fullscreen
@ -1536,11 +1541,11 @@ void DFrameBuffer::DrawBlend(sector_t * viewsector)
auto blend = CalcBlend(viewsector, &modulateColor); auto blend = CalcBlend(viewsector, &modulateColor);
if (modulateColor != 0xffffffff) if (modulateColor != 0xffffffff)
{ {
Dim(modulateColor, 1, 0, 0, GetWidth(), GetHeight(), &LegacyRenderStyles[STYLE_Multiply]); Dim(modulateColor, 1, 0, 0, GetUIWidth(), GetUIHeight(), &LegacyRenderStyles[STYLE_Multiply]);
} }
const PalEntry bcolor(255, uint8_t(blend.X), uint8_t(blend.Y), uint8_t(blend.Z)); const PalEntry bcolor(255, uint8_t(blend.X), uint8_t(blend.Y), uint8_t(blend.Z));
Dim(bcolor, blend.W, 0, 0, GetWidth(), GetHeight()); Dim(bcolor, blend.W, 0, 0, GetUIWidth(), GetUIHeight());
} }

View file

@ -558,7 +558,7 @@ void FGLRenderState::ClearScreen()
{ {
bool multi = !!glIsEnabled(GL_MULTISAMPLE); bool multi = !!glIsEnabled(GL_MULTISAMPLE);
screen->mViewpoints->Set2D(*this, SCREENWIDTH, SCREENHEIGHT); screen->mViewpoints->Set2D(*this, screen->GetScreenWidth(), screen->GetScreenHeight());
SetColor(0, 0, 0); SetColor(0, 0, 0);
Apply(); Apply();

View file

@ -150,13 +150,13 @@ void OpenGLFrameBuffer::InitializeState()
SetViewportRects(nullptr); SetViewportRects(nullptr);
mVertexData = new FFlatVertexBuffer(GetWidth(), GetHeight()); mVertexData = new FFlatVertexBuffer(GetScreenWidth(), GetScreenHeight());
mSkyData = new FSkyVertexBuffer; mSkyData = new FSkyVertexBuffer;
mViewpoints = new GLViewpointBuffer; mViewpoints = new GLViewpointBuffer;
mLights = new FLightBuffer(); mLights = new FLightBuffer();
GLRenderer = new FGLRenderer(this); GLRenderer = new FGLRenderer(this);
GLRenderer->Initialize(GetWidth(), GetHeight()); GLRenderer->Initialize(GetScreenWidth(), GetScreenHeight());
mDebug = std::make_shared<FGLDebug>(); mDebug = std::make_shared<FGLDebug>();
mDebug->Update(); mDebug->Update();
@ -396,7 +396,7 @@ TArray<uint8_t> OpenGLFrameBuffer::GetScreenshotBuffer(int &pitch, ESSType &colo
const auto &viewport = mOutputLetterbox; const auto &viewport = mOutputLetterbox;
// Grab what is in the back buffer. // Grab what is in the back buffer.
// We cannot rely on SCREENWIDTH/HEIGHT here because the output may have been scaled. // We cannot rely on screen->GetWidth()/HEIGHT here because the output may have been scaled.
TArray<uint8_t> pixels; TArray<uint8_t> pixels;
pixels.Resize(viewport.width * viewport.height * 3); pixels.Resize(viewport.width * viewport.height * 3);
glPixelStorei(GL_PACK_ALIGNMENT, 1); glPixelStorei(GL_PACK_ALIGNMENT, 1);
@ -404,8 +404,8 @@ TArray<uint8_t> OpenGLFrameBuffer::GetScreenshotBuffer(int &pitch, ESSType &colo
glPixelStorei(GL_PACK_ALIGNMENT, 4); glPixelStorei(GL_PACK_ALIGNMENT, 4);
// Copy to screenshot buffer: // Copy to screenshot buffer:
int w = SCREENWIDTH; int w = screen->GetScreenWidth();
int h = SCREENHEIGHT; int h = screen->GetScreenHeight();
TArray<uint8_t> ScreenshotBuffer(w * h * 3, true); TArray<uint8_t> ScreenshotBuffer(w * h * 3, true);

View file

@ -444,7 +444,7 @@ bool HUDSprite::GetWeaponRect(HWDrawInfo *di, DPSprite *psp, float sx, float sy,
// killough 12/98: fix psprite positioning problem // killough 12/98: fix psprite positioning problem
ftexturemid = 100.f - sy - r.top - psp->GetYAdjust(screenblocks >= 11); ftexturemid = 100.f - sy - r.top - psp->GetYAdjust(screenblocks >= 11);
scale = (SCREENHEIGHT*vw) / (SCREENWIDTH * 200.0f); scale = (screen->GetScreenHeight()*vw) / (screen->GetScreenWidth() * 200.0f);
y1 = viewwindowy + vh / 2 - (ftexturemid * scale); y1 = viewwindowy + vh / 2 - (ftexturemid * scale);
y2 = y1 + (r.height * scale) + 1; y2 = y1 + (r.height * scale) + 1;

View file

@ -85,6 +85,7 @@ public:
//=========================================================================== //===========================================================================
// //
// Draws the 2D stuff. This is the version for OpenGL 3 and later. // Draws the 2D stuff. This is the version for OpenGL 3 and later.
// Not that at this point all coodinates are in screen space!
// //
//=========================================================================== //===========================================================================
@ -96,7 +97,7 @@ void Draw2D(F2DDrawer *drawer, FRenderState &state)
const auto &mScreenViewport = screen->mScreenViewport; const auto &mScreenViewport = screen->mScreenViewport;
state.SetViewport(mScreenViewport.left, mScreenViewport.top, mScreenViewport.width, mScreenViewport.height); state.SetViewport(mScreenViewport.left, mScreenViewport.top, mScreenViewport.width, mScreenViewport.height);
screen->mViewpoints->Set2D(state, screen->GetWidth(), screen->GetHeight()); screen->mViewpoints->Set2D(state, screen->GetScreenWidth(), screen->GetScreenHeight());
state.EnableDepthTest(false); state.EnableDepthTest(false);
state.EnableMultisampling(false); state.EnableMultisampling(false);

View file

@ -109,8 +109,8 @@ void VRMode::AdjustViewport(DFrameBuffer *screen) const
VSMatrix VRMode::GetHUDSpriteProjection() const VSMatrix VRMode::GetHUDSpriteProjection() const
{ {
VSMatrix mat; VSMatrix mat;
int w = screen->GetWidth(); int w = screen->GetScreenWidth();
int h = screen->GetHeight(); int h = screen->GetScreenHeight();
float scaled_w = w / mWeaponProjectionScale; float scaled_w = w / mWeaponProjectionScale;
float left_ofs = (w - scaled_w) / 2.f; float left_ofs = (w - scaled_w) / 2.f;
mat.ortho(left_ofs, left_ofs + scaled_w, (float)h, 0, -1.0f, 1.0f); mat.ortho(left_ofs, left_ofs + scaled_w, (float)h, 0, -1.0f, 1.0f);

View file

@ -205,12 +205,12 @@ void PolyRenderer::SetSceneViewport()
{ {
int height; int height;
if (screenblocks >= 10) if (screenblocks >= 10)
height = SCREENHEIGHT; height = screen->GetScreenHeight();
else else
height = (screenblocks*SCREENHEIGHT / 10) & ~7; height = (screenblocks*screen->GetScreenHeight() / 10) & ~7;
int bottom = SCREENHEIGHT - (height + viewwindowy - ((height - viewheight) / 2)); int bottom = screen->GetScreenHeight() - (height + viewwindowy - ((height - viewheight) / 2));
PolyTriangleDrawer::SetViewport(Threads.MainThread()->DrawQueue, viewwindowx, SCREENHEIGHT - bottom - height, viewwidth, height, RenderTarget); PolyTriangleDrawer::SetViewport(Threads.MainThread()->DrawQueue, viewwindowx, screen->GetScreenHeight() - bottom - height, viewwidth, height, RenderTarget);
} }
else // Rendering to camera texture else // Rendering to camera texture
{ {

View file

@ -264,7 +264,7 @@ void RenderPolyPlayerSprites::RenderSprite(PolyRenderThread *thread, DPSprite *p
return; return;
} }
double yaspectMul = 1.2 * ((double)SCREENHEIGHT / SCREENWIDTH) * r_viewwindow.WidescreenRatio; double yaspectMul = 1.2 * ((double)screen->GetScreenHeight() / screen->GetScreenWidth()) * r_viewwindow.WidescreenRatio;
double pspritexscale = viewwindow.centerxwide / 160.0; double pspritexscale = viewwindow.centerxwide / 160.0;
double pspriteyscale = pspritexscale * yaspectMul; double pspriteyscale = pspritexscale * yaspectMul;

View file

@ -140,8 +140,8 @@ void DrawerThreads::WorkerMain(DrawerThread *thread)
// Grab the commands // Grab the commands
DrawerCommandQueuePtr list = active_commands[thread->current_queue]; DrawerCommandQueuePtr list = active_commands[thread->current_queue];
thread->current_queue++; thread->current_queue++;
thread->numa_start_y = thread->numa_node * screen->GetHeight() / thread->num_numa_nodes; thread->numa_start_y = thread->numa_node * screen->GetScreenHeight() / thread->num_numa_nodes;
thread->numa_end_y = (thread->numa_node + 1) * screen->GetHeight() / thread->num_numa_nodes; thread->numa_end_y = (thread->numa_node + 1) * screen->GetScreenHeight() / thread->num_numa_nodes;
if (thread->poly) if (thread->poly)
{ {
thread->poly->numa_start_y = thread->numa_start_y; thread->poly->numa_start_y = thread->numa_start_y;

View file

@ -96,7 +96,7 @@ namespace swrenderer
auto viewport = Thread->Viewport.get(); auto viewport = Thread->Viewport.get();
// Scale will be unit scale at FocalLengthX (normally SCREENWIDTH/2) distance // Scale will be unit scale at FocalLengthX (normally screen->GetWidth()/2) distance
xstep = cos(planeang) / viewport->FocalLengthX; xstep = cos(planeang) / viewport->FocalLengthX;
ystep = -sin(planeang) / viewport->FocalLengthX; ystep = -sin(planeang) / viewport->FocalLengthX;

View file

@ -91,25 +91,25 @@ sector_t *SWSceneDrawer::RenderView(player_t *player)
auto &fbtex = FBTexture[FBTextureIndex]; auto &fbtex = FBTexture[FBTextureIndex];
if (fbtex == nullptr || fbtex->GetSystemTexture() == nullptr || if (fbtex == nullptr || fbtex->GetSystemTexture() == nullptr ||
fbtex->GetDisplayWidth() != screen->GetWidth() || fbtex->GetDisplayWidth() != screen->GetScreenWidth() ||
fbtex->GetDisplayHeight() != screen->GetHeight() || fbtex->GetDisplayHeight() != screen->GetScreenHeight() ||
(V_IsTrueColor() ? 1:0) != fbtex->GetColorFormat()) (V_IsTrueColor() ? 1:0) != fbtex->GetColorFormat())
{ {
// This manually constructs its own material here. // This manually constructs its own material here.
fbtex.reset(); fbtex.reset();
fbtex.reset(new FWrapperTexture(screen->GetWidth(), screen->GetHeight(), V_IsTrueColor())); fbtex.reset(new FWrapperTexture(screen->GetScreenWidth(), screen->GetScreenHeight(), V_IsTrueColor()));
fbtex->GetSystemTexture()->AllocateBuffer(screen->GetWidth(), screen->GetHeight(), V_IsTrueColor() ? 4 : 1); fbtex->GetSystemTexture()->AllocateBuffer(screen->GetScreenWidth(), screen->GetScreenHeight(), V_IsTrueColor() ? 4 : 1);
auto mat = FMaterial::ValidateTexture(fbtex.get(), false); auto mat = FMaterial::ValidateTexture(fbtex.get(), false);
mat->AddTextureLayer(PaletteTexture); mat->AddTextureLayer(PaletteTexture);
Canvas.reset(); Canvas.reset();
Canvas.reset(new DCanvas(screen->GetWidth(), screen->GetHeight(), V_IsTrueColor())); Canvas.reset(new DCanvas(screen->GetScreenWidth(), screen->GetScreenHeight(), V_IsTrueColor()));
} }
auto buf = fbtex->GetSystemTexture()->MapBuffer(); auto buf = fbtex->GetSystemTexture()->MapBuffer();
if (!buf) I_FatalError("Unable to map buffer for software rendering"); if (!buf) I_FatalError("Unable to map buffer for software rendering");
SWRenderer->RenderView(player, Canvas.get(), buf); SWRenderer->RenderView(player, Canvas.get(), buf);
fbtex->GetSystemTexture()->CreateTexture(nullptr, screen->GetWidth(), screen->GetHeight(), 0, false, 0, "swbuffer"); fbtex->GetSystemTexture()->CreateTexture(nullptr, screen->GetScreenWidth(), screen->GetScreenHeight(), 0, false, 0, "swbuffer");
auto map = swrenderer::CameraLight::Instance()->ShaderColormap(); auto map = swrenderer::CameraLight::Instance()->ShaderColormap();
screen->DrawTexture(fbtex.get(), 0, 0, DTA_SpecialColormap, map, TAG_DONE); screen->DrawTexture(fbtex.get(), 0, 0, DTA_SpecialColormap, map, TAG_DONE);

View file

@ -110,7 +110,7 @@ namespace swrenderer
BaseVisibility = vis; BaseVisibility = vis;
MaxVisForWall = (viewport->InvZtoScale * (SCREENWIDTH*r_Yaspect) / (viewwidth*SCREENHEIGHT * viewport->viewwindow.FocalTangent)); MaxVisForWall = (viewport->InvZtoScale * (screen->GetScreenWidth()*r_Yaspect) / (viewwidth*screen->GetScreenHeight() * viewport->viewwindow.FocalTangent));
MaxVisForWall = 32767.0 / MaxVisForWall; MaxVisForWall = 32767.0 / MaxVisForWall;
MaxVisForFloor = 32767.0 / (viewheight >> 2) * viewport->FocalLengthY / 160; MaxVisForFloor = 32767.0 / (viewheight >> 2) * viewport->FocalLengthY / 160;
@ -122,8 +122,8 @@ namespace swrenderer
else else
WallVisibility = BaseVisibility; WallVisibility = BaseVisibility;
WallVisibility = (viewport->InvZtoScale * SCREENWIDTH*AspectBaseHeight(viewport->viewwindow.WidescreenRatio) / WallVisibility = (viewport->InvZtoScale * screen->GetScreenWidth()*AspectBaseHeight(viewport->viewwindow.WidescreenRatio) /
(viewwidth*SCREENHEIGHT * 3)) * (WallVisibility * viewport->viewwindow.FocalTangent); (viewwidth*screen->GetScreenHeight() * 3)) * (WallVisibility * viewport->viewwindow.FocalTangent);
// Prevent overflow on floors/ceilings. Note that the calculation of // Prevent overflow on floors/ceilings. Note that the calculation of
// MaxVisForFloor means that planes less than two units from the player's // MaxVisForFloor means that planes less than two units from the player's

View file

@ -98,8 +98,8 @@ namespace swrenderer
R_ExecuteSetViewSize(MainThread()->Viewport->viewpoint, MainThread()->Viewport->viewwindow); R_ExecuteSetViewSize(MainThread()->Viewport->viewpoint, MainThread()->Viewport->viewwindow);
int width = SCREENWIDTH; int width = screen->GetScreenWidth();
int height = SCREENHEIGHT; int height = screen->GetScreenHeight();
float trueratio; float trueratio;
ActiveRatio(width, height, &trueratio); ActiveRatio(width, height, &trueratio);
viewport->SetViewport(player->camera->Level, MainThread(), width, height, trueratio); viewport->SetViewport(player->camera->Level, MainThread(), width, height, trueratio);

View file

@ -261,7 +261,7 @@ namespace swrenderer
auto viewport = Thread->Viewport.get(); auto viewport = Thread->Viewport.get();
double pspritexscale = viewport->viewwindow.centerxwide / 160.0; double pspritexscale = viewport->viewwindow.centerxwide / 160.0;
double pspriteyscale = pspritexscale * viewport->BaseYaspectMul * ((double)SCREENHEIGHT / SCREENWIDTH) * r_viewwindow.WidescreenRatio; double pspriteyscale = pspritexscale * viewport->BaseYaspectMul * ((double)screen->GetScreenHeight() / screen->GetScreenWidth()) * r_viewwindow.WidescreenRatio;
double pspritexiscale = 1 / pspritexscale; double pspritexiscale = 1 / pspritexscale;
int tleft = tex->GetDisplayLeftOffset(); int tleft = tex->GetDisplayLeftOffset();

View file

@ -210,7 +210,7 @@ void S_NoiseDebug (void)
// Display the oldest channel first. // Display the oldest channel first.
for (chan = Channels; chan->NextChan != NULL; chan = chan->NextChan) for (chan = Channels; chan->NextChan != NULL; chan = chan->NextChan)
{ } { }
while (y < SCREENHEIGHT - 16) while (y < screen->GetUIHeight() - 16)
{ {
char temp[32]; char temp[32];

View file

@ -88,7 +88,7 @@ void FStat::PrintStat ()
int textScale = active_con_scale(); int textScale = active_con_scale();
int fontheight = NewConsoleFont->GetHeight() + 1; int fontheight = NewConsoleFont->GetHeight() + 1;
int y = SCREENHEIGHT / textScale; int y = screen->GetUIHeight() / textScale;
int count = 0; int count = 0;
for (FStat *stat = FirstStat; stat != NULL; stat = stat->m_Next) for (FStat *stat = FirstStat; stat != NULL; stat = stat->m_Next)
@ -106,8 +106,8 @@ void FStat::PrintStat ()
if (stattext[i] == '\n') y -= fontheight; if (stattext[i] == '\n') y -= fontheight;
} }
screen->DrawText(NewConsoleFont, CR_GREEN, 5 / textScale, y, stattext, screen->DrawText(NewConsoleFont, CR_GREEN, 5 / textScale, y, stattext,
DTA_VirtualWidth, screen->GetWidth() / textScale, DTA_VirtualWidth, screen->GetUIWidth() / textScale,
DTA_VirtualHeight, screen->GetHeight() / textScale, DTA_VirtualHeight, screen->GetUIHeight() / textScale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
count++; count++;
} }

View file

@ -104,8 +104,8 @@ DFrameBuffer::~DFrameBuffer()
void DFrameBuffer::SetSize(int width, int height) void DFrameBuffer::SetSize(int width, int height)
{ {
Width = ViewportScaledWidth(width, height); UIWidth = ScreenWidth = ViewportScaledWidth(width, height);
Height = ViewportScaledHeight(width, height); UIHeight = ScreenHeight = ViewportScaledHeight(width, height);
} }
//========================================================================== //==========================================================================
@ -114,9 +114,9 @@ void DFrameBuffer::SetSize(int width, int height)
// //
//========================================================================== //==========================================================================
void V_DrawPaletteTester(int paletteno) void DFrameBuffer::DrawPaletteTester(int paletteno)
{ {
int blocksize = screen->GetHeight() / 50; int blocksize = screen->GetUIHeight() / 50;
int t = paletteno; int t = paletteno;
int k = 0; int k = 0;
@ -127,7 +127,7 @@ void V_DrawPaletteTester(int paletteno)
int palindex = (t > 1) ? translationtables[TRANSLATION_Standard][t - 2]->Remap[k] : k; int palindex = (t > 1) ? translationtables[TRANSLATION_Standard][t - 2]->Remap[k] : k;
PalEntry pe = GPalette.BaseColors[palindex]; PalEntry pe = GPalette.BaseColors[palindex];
k++; k++;
screen->Dim(pe, 1.f, j*blocksize, i*blocksize, blocksize, blocksize); Dim(pe, 1.f, j*blocksize, i*blocksize, blocksize, blocksize);
} }
} }
} }
@ -156,11 +156,11 @@ void DFrameBuffer::DrawRateStuff ()
int textScale = active_con_scale(); int textScale = active_con_scale();
chars = mysnprintf (fpsbuff, countof(fpsbuff), "%2llu ms (%3llu fps)", (unsigned long long)howlong, (unsigned long long)LastCount); chars = mysnprintf (fpsbuff, countof(fpsbuff), "%2llu ms (%3llu fps)", (unsigned long long)howlong, (unsigned long long)LastCount);
rate_x = Width / textScale - NewConsoleFont->StringWidth(&fpsbuff[0]); rate_x = UIWidth / textScale - NewConsoleFont->StringWidth(&fpsbuff[0]);
Clear (rate_x * textScale, 0, Width, NewConsoleFont->GetHeight() * textScale, GPalette.BlackIndex, 0); Clear (rate_x * textScale, 0, UIWidth, NewConsoleFont->GetHeight() * textScale, GPalette.BlackIndex, 0);
DrawText (NewConsoleFont, CR_WHITE, rate_x, 0, (char *)&fpsbuff[0], DrawText (NewConsoleFont, CR_WHITE, rate_x, 0, (char *)&fpsbuff[0],
DTA_VirtualWidth, screen->GetWidth() / textScale, DTA_VirtualWidth, UIWidth / textScale,
DTA_VirtualHeight, screen->GetHeight() / textScale, DTA_VirtualHeight, UIHeight / textScale,
DTA_KeepRatio, true, TAG_DONE); DTA_KeepRatio, true, TAG_DONE);
uint32_t thisSec = (uint32_t)(ms/1000); uint32_t thisSec = (uint32_t)(ms/1000);
@ -185,14 +185,14 @@ void DFrameBuffer::DrawRateStuff ()
if (tics > 20) tics = 20; if (tics > 20) tics = 20;
int i; int i;
for (i = 0; i < tics*2; i += 2) Clear(i, Height-1, i+1, Height, 255, 0); for (i = 0; i < tics*2; i += 2) Clear(i, UIHeight-1, i+1, UIHeight, 255, 0);
for ( ; i < 20*2; i += 2) Clear(i, Height-1, i+1, Height, 0, 0); for ( ; i < 20*2; i += 2) Clear(i, UIHeight-1, i+1, UIHeight, 0, 0);
} }
// draws the palette for debugging // draws the palette for debugging
if (vid_showpalette) if (vid_showpalette)
{ {
V_DrawPaletteTester(vid_showpalette); DrawPaletteTester(vid_showpalette);
} }
} }
@ -212,7 +212,7 @@ void DFrameBuffer::Update()
int clientHeight = ViewportScaledHeight(initialWidth, initialHeight); int clientHeight = ViewportScaledHeight(initialWidth, initialHeight);
if (clientWidth < 320) clientWidth = 320; if (clientWidth < 320) clientWidth = 320;
if (clientHeight < 200) clientHeight = 200; if (clientHeight < 200) clientHeight = 200;
if (clientWidth > 0 && clientHeight > 0 && (GetWidth() != clientWidth || GetHeight() != clientHeight)) if (clientWidth > 0 && clientHeight > 0 && (GetScreenWidth() != clientWidth || GetScreenHeight() != clientHeight))
{ {
SetVirtualSize(clientWidth, clientHeight); SetVirtualSize(clientWidth, clientHeight);
V_OutputResized(clientWidth, clientHeight); V_OutputResized(clientWidth, clientHeight);
@ -325,13 +325,13 @@ void DFrameBuffer::SetViewportRects(IntRect *bounds)
int height, width; int height, width;
if (screenblocks >= 10) if (screenblocks >= 10)
{ {
height = GetHeight(); height = GetScreenHeight();
width = GetWidth(); width = GetScreenWidth();
} }
else else
{ {
height = (screenblocks*GetHeight() / 10) & ~7; height = (screenblocks*GetScreenHeight() / 10) & ~7;
width = (screenblocks*GetWidth() / 10); width = (screenblocks*GetScreenWidth() / 10);
} }
// Back buffer letterbox for the final output // Back buffer letterbox for the final output
@ -344,8 +344,8 @@ void DFrameBuffer::SetViewportRects(IntRect *bounds)
clientWidth = 160; clientWidth = 160;
clientHeight = 120; clientHeight = 120;
} }
int screenWidth = GetWidth(); int screenWidth = GetScreenWidth();
int screenHeight = GetHeight(); int screenHeight = GetScreenHeight();
float scaleX, scaleY; float scaleX, scaleY;
if (ViewportIsScaled43()) if (ViewportIsScaled43())
{ {
@ -397,12 +397,12 @@ void DFrameBuffer::SetViewportRects(IntRect *bounds)
int DFrameBuffer::ScreenToWindowX(int x) int DFrameBuffer::ScreenToWindowX(int x)
{ {
return mScreenViewport.left + (int)round(x * mScreenViewport.width / (float)GetWidth()); return mScreenViewport.left + (int)round(x * mScreenViewport.width / (float)GetScreenWidth());
} }
int DFrameBuffer::ScreenToWindowY(int y) int DFrameBuffer::ScreenToWindowY(int y)
{ {
return mScreenViewport.top + mScreenViewport.height - (int)round(y * mScreenViewport.height / (float)GetHeight()); return mScreenViewport.top + mScreenViewport.height - (int)round(y * mScreenViewport.height / (float)GetScreenHeight());
} }
void DFrameBuffer::ScaleCoordsFromWindow(int16_t &x, int16_t &y) void DFrameBuffer::ScaleCoordsFromWindow(int16_t &x, int16_t &y)
@ -412,6 +412,6 @@ void DFrameBuffer::ScaleCoordsFromWindow(int16_t &x, int16_t &y)
int letterboxWidth = mOutputLetterbox.width; int letterboxWidth = mOutputLetterbox.width;
int letterboxHeight = mOutputLetterbox.height; int letterboxHeight = mOutputLetterbox.height;
x = int16_t((x - letterboxX) * Width / letterboxWidth); x = int16_t((x - letterboxX) * GetScreenWidth() / letterboxWidth);
y = int16_t((y - letterboxY) * Height / letterboxHeight); y = int16_t((y - letterboxY) * GetScreenHeight() / letterboxHeight);
} }

View file

@ -544,7 +544,7 @@ void V_UpdateModeSize (int width, int height)
// The optimal scale will always be to fit a virtual 640 pixel wide display onto the screen. // The optimal scale will always be to fit a virtual 640 pixel wide display onto the screen.
// Exceptions are made for a few ranges where the available virtual width is > 480. // Exceptions are made for a few ranges where the available virtual width is > 480.
int w = screen->GetWidth(); int w = screen->GetScreenWidth();
int factor; int factor;
if (w < 640) factor = 1; if (w < 640) factor = 1;
else if (w >= 1024 && w < 1280) factor = 2; else if (w >= 1024 && w < 1280) factor = 2;
@ -599,7 +599,7 @@ bool IVideo::SetResolution ()
screen->InitializeState(); screen->InitializeState();
screen->SetGamma(); screen->SetGamma();
V_UpdateModeSize(screen->GetWidth(), screen->GetHeight()); V_UpdateModeSize(screen->GetScreenWidth(), screen->GetScreenHeight());
return true; return true;
} }
@ -678,11 +678,11 @@ void V_Init2()
I_InitGraphics(); I_InitGraphics();
Video->SetResolution(); // this only fails via exceptions. Video->SetResolution(); // this only fails via exceptions.
Printf ("Resolution: %d x %d\n", SCREENWIDTH, SCREENHEIGHT); Printf ("Resolution: %d x %d\n", screen->GetScreenWidth(), screen->GetScreenHeight());
// init these for the scaling menu // init these for the scaling menu
menu_resolution_custom_width = SCREENWIDTH; menu_resolution_custom_width = screen->GetScreenWidth();
menu_resolution_custom_height = SCREENHEIGHT; menu_resolution_custom_height = screen->GetScreenHeight();
screen->SetGamma (); screen->SetGamma ();
FBaseCVar::ResetColors (); FBaseCVar::ResetColors ();
@ -758,7 +758,7 @@ float ActiveRatio(int width, int height, float *trueratio)
DEFINE_ACTION_FUNCTION(_Screen, GetAspectRatio) DEFINE_ACTION_FUNCTION(_Screen, GetAspectRatio)
{ {
ACTION_RETURN_FLOAT(ActiveRatio(screen->GetWidth(), screen->GetHeight(), nullptr)); ACTION_RETURN_FLOAT(ActiveRatio(screen->GetScreenWidth(), screen->GetScreenHeight(), nullptr));
} }
// Tries to guess the physical dimensions of the screen based on the // Tries to guess the physical dimensions of the screen based on the

View file

@ -356,8 +356,10 @@ protected:
F2DDrawer m2DDrawer; F2DDrawer m2DDrawer;
private: private:
int Width = 0; int ScreenWidth = 0;
int Height = 0; int ScreenHeight = 0;
int UIWidth = 0;
int UIHeight = 0;
protected: protected:
int clipleft = 0, cliptop = 0, clipwidth = -1, clipheight = -1; int clipleft = 0, cliptop = 0, clipwidth = -1, clipheight = -1;
@ -391,11 +393,15 @@ public:
void SetSize(int width, int height); void SetSize(int width, int height);
void SetVirtualSize(int width, int height) void SetVirtualSize(int width, int height)
{ {
Width = width; ScreenWidth = width;
Height = height; ScreenHeight = height;
UIWidth = width;
UIHeight = height;
} }
inline int GetWidth() const { return Width; } inline int GetScreenWidth() const { return ScreenWidth; }
inline int GetHeight() const { return Height; } inline int GetScreenHeight() const { return ScreenHeight; }
inline int GetUIWidth() const { return UIWidth; }
inline int GetUIHeight() const { return UIHeight; }
FVector2 SceneScale() const FVector2 SceneScale() const
{ {
@ -564,6 +570,7 @@ public:
protected: protected:
void DrawRateStuff (); void DrawRateStuff ();
void DrawPaletteTester(int paletteno);
private: private:
@ -576,10 +583,6 @@ private:
// This is the screen updated by I_FinishUpdate. // This is the screen updated by I_FinishUpdate.
extern DFrameBuffer *screen; extern DFrameBuffer *screen;
#define SCREENWIDTH (screen->GetWidth ())
#define SCREENHEIGHT (screen->GetHeight ())
#define SCREENPITCH (screen->GetPitch ())
EXTERN_CVAR (Float, Gamma) EXTERN_CVAR (Float, Gamma)
@ -652,9 +655,9 @@ public:
savedyfac = CleanYfac; savedyfac = CleanYfac;
savedwidth = CleanWidth; savedwidth = CleanWidth;
savedheight = CleanHeight; savedheight = CleanHeight;
V_CalcCleanFacs(320, 200, screen->GetWidth(), screen->GetHeight(), &CleanXfac, &CleanYfac); V_CalcCleanFacs(320, 200, screen->GetScreenWidth(), screen->GetScreenHeight(), &CleanXfac, &CleanYfac);
CleanWidth = screen->GetWidth() / CleanXfac; CleanWidth = screen->GetScreenWidth() / CleanXfac;
CleanHeight = screen->GetHeight() / CleanYfac; CleanHeight = screen->GetScreenHeight() / CleanYfac;
} }
~ScaleOverrider() ~ScaleOverrider()

View file

@ -604,12 +604,12 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe
} }
else else
{ {
screen->FlatFill(0, 0, SCREENWIDTH, SCREENHEIGHT, background, false, true); screen->FlatFill(0, 0, screen->GetUIWidth(), screen->GetUIHeight(), background, false, true);
} }
} }
else else
{ {
screen->Clear(0, 0, SCREENWIDTH, SCREENHEIGHT, 0, 0); screen->Clear(0, 0, screen->GetUIWidth(), screen->GetUIHeight(), 0, 0);
} }
for (i = 0; i<anims.Size(); i++) for (i = 0; i<anims.Size(); i++)