From ce4c2be3c747461522422f2ff883c6eb09415c4b Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 11 Apr 2020 19:48:14 +0200 Subject: [PATCH] - use the 2d drawer's size where appropriate. --- src/am_map.cpp | 12 ++-- src/common/engine/stats.cpp | 2 +- src/console/c_console.cpp | 46 +++++++------- src/ct_chat.cpp | 6 +- src/d_main.cpp | 2 +- src/g_statusbar/hudmessages.cpp | 26 ++++---- src/g_statusbar/sbarinfo.cpp | 12 ++-- src/g_statusbar/sbarinfo_commands.cpp | 2 +- src/g_statusbar/shared_hud.cpp | 4 +- src/g_statusbar/shared_sbar.cpp | 62 +++++++++---------- src/hu_scores.cpp | 13 ++-- src/intermission/intermission.cpp | 36 +++++------ src/menu/menu.cpp | 2 +- .../hwrenderer/utility/hw_draw2d.cpp | 2 +- src/rendering/v_framebuffer.cpp | 1 + src/sound/s_doomsound.cpp | 2 +- src/wi_stuff.cpp | 4 +- 17 files changed, 116 insertions(+), 118 deletions(-) diff --git a/src/am_map.cpp b/src/am_map.cpp index d397321e3..0fcd9a207 100644 --- a/src/am_map.cpp +++ b/src/am_map.cpp @@ -1187,11 +1187,11 @@ void DAutomap::findMinMaxBoundaries () void DAutomap::calcMinMaxMtoF() { const double safe_frame = 1.0 - am_emptyspacemargin / 100.0; - double a = safe_frame * (SCREENWIDTH / max_w); + double a = safe_frame * (twod->GetWidth() / max_w); double b = safe_frame * (StatusBar->GetTopOfStatusbar() / max_h); min_scale_mtof = a < b ? a : b; - max_scale_mtof = SCREENHEIGHT / (2*PLAYERRADIUS); + max_scale_mtof = twod->GetHeight() / (2*PLAYERRADIUS); } //============================================================================= @@ -1274,8 +1274,8 @@ void DAutomap::changeWindowLoc () incx = m_paninc.x; incy = m_paninc.y; - oincx = incx = m_paninc.x * SCREENWIDTH / 320; - oincy = incy = m_paninc.y * SCREENHEIGHT / 200; + oincx = incx = m_paninc.x * twod->GetWidth() / 320; + oincy = incy = m_paninc.y * twod->GetHeight() / 200; if (am_rotate == 1 || (am_rotate == 2 && viewactive)) { rotate(&incx, &incy, players[consoleplayer].camera->Angles.Yaw - 90.); @@ -1305,8 +1305,8 @@ void DAutomap::startDisplay() m_paninc.x = m_paninc.y = 0; mtof_zoommul = 1.; - m_w = FTOM(SCREENWIDTH); - m_h = FTOM(SCREENHEIGHT); + m_w = FTOM(twod->GetWidth()); + m_h = FTOM(twod->GetHeight()); // find player to center on initially if (!playeringame[pnum = consoleplayer]) diff --git a/src/common/engine/stats.cpp b/src/common/engine/stats.cpp index 731121a5e..b826d0ad2 100644 --- a/src/common/engine/stats.cpp +++ b/src/common/engine/stats.cpp @@ -99,7 +99,7 @@ void FStat::PrintStat (F2DDrawer *drawer) int textScale = active_con_scale(drawer); int fontheight = NewConsoleFont->GetHeight() + 1; - int y = screen->GetHeight() / textScale; + int y = drawer->GetHeight() / textScale; int count = 0; for (FStat *stat = FirstStat; stat != NULL; stat = stat->m_Next) diff --git a/src/console/c_console.cpp b/src/console/c_console.cpp index 27895c4d5..182e8886d 100644 --- a/src/console/c_console.cpp +++ b/src/console/c_console.cpp @@ -221,13 +221,13 @@ public: { DrawChar(twod, CurrentConsoleFont, CR_ORANGE, x, y, '\x1c', DTA_VirtualWidth, twod->GetWidth() / scale, - DTA_VirtualHeight, screen->GetHeight() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_KeepRatio, true, TAG_DONE); DrawText(twod, CurrentConsoleFont, CR_ORANGE, x + CurrentConsoleFont->GetCharWidth(0x1c), y, &Text[StartPos], DTA_VirtualWidth, twod->GetWidth() / scale, - DTA_VirtualHeight, screen->GetHeight() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_KeepRatio, true, TAG_DONE); if (cursor) @@ -236,7 +236,7 @@ public: x + CurrentConsoleFont->GetCharWidth(0x1c) + (CursorPosCells - StartPosCells) * CurrentConsoleFont->GetCharWidth(0xb), y, '\xb', DTA_VirtualWidth, twod->GetWidth() / scale, - DTA_VirtualHeight, screen->GetHeight() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_KeepRatio, true, TAG_DONE); } } @@ -993,14 +993,14 @@ void C_FlushDisplay () void C_AdjustBottom () { if (gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) - ConBottom = SCREENHEIGHT; - else if (ConBottom > SCREENHEIGHT / 2 || ConsoleState == c_down) - ConBottom = SCREENHEIGHT / 2; + ConBottom = twod->GetHeight(); + else if (ConBottom > twod->GetHeight() / 2 || ConsoleState == c_down) + ConBottom = twod->GetHeight() / 2; } void C_NewModeAdjust () { - C_InitConsole (SCREENWIDTH, SCREENHEIGHT, true); + C_InitConsole (twod->GetWidth(), twod->GetHeight(), true); C_FlushDisplay (); C_AdjustBottom (); } @@ -1023,16 +1023,16 @@ void C_Ticker() { if (ConsoleState == c_falling) { - ConBottom += (consoletic - lasttic) * (SCREENHEIGHT * 2 / 25); - if (ConBottom >= SCREENHEIGHT / 2) + ConBottom += (consoletic - lasttic) * (twod->GetHeight() * 2 / 25); + if (ConBottom >= twod->GetHeight() / 2) { - ConBottom = SCREENHEIGHT / 2; + ConBottom = twod->GetHeight() / 2; ConsoleState = c_down; } } else if (ConsoleState == c_rising) { - ConBottom -= (consoletic - lasttic) * (SCREENHEIGHT * 2 / 25); + ConBottom -= (consoletic - lasttic) * (twod->GetHeight() * 2 / 25); if (ConBottom <= 0) { ConsoleState = c_up; @@ -1116,7 +1116,7 @@ void FNotifyBuffer::Draw() if (!center) DrawText(twod, font, color, 0, line, notify.Text, DTA_VirtualWidth, twod->GetWidth() / scale, - DTA_VirtualHeight, screen->GetHeight() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_KeepRatio, true, DTA_Alpha, alpha, TAG_DONE); else @@ -1124,7 +1124,7 @@ void FNotifyBuffer::Draw() font->StringWidth (notify.Text) * scale) / 2 / scale, line, notify.Text, DTA_VirtualWidth, twod->GetWidth() / scale, - DTA_VirtualHeight, screen->GetHeight() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_KeepRatio, true, DTA_Alpha, alpha, TAG_DONE); line += lineadv; @@ -1174,14 +1174,14 @@ void C_DrawConsole () visheight = ConBottom; - DrawTexture(twod, conpic, 0, visheight - screen->GetHeight(), + DrawTexture(twod, conpic, 0, visheight - twod->GetHeight(), DTA_DestWidth, twod->GetWidth(), - DTA_DestHeight, screen->GetHeight(), + DTA_DestHeight, twod->GetHeight(), DTA_ColorOverlay, conshade, DTA_Alpha, (gamestate != GS_FULLCONSOLE) ? (double)con_alpha : 1., DTA_Masked, false, TAG_DONE); - if (conline && visheight < screen->GetHeight()) + if (conline && visheight < twod->GetHeight()) { ClearRect(twod, 0, visheight, twod->GetWidth(), visheight+1, 0, 0); } @@ -1189,17 +1189,17 @@ void C_DrawConsole () if (ConBottom >= 12) { if (textScale == 1) - DrawText(twod, CurrentConsoleFont, CR_ORANGE, SCREENWIDTH - 8 - + DrawText(twod, CurrentConsoleFont, CR_ORANGE, twod->GetWidth() - 8 - CurrentConsoleFont->StringWidth (GetVersionString()), ConBottom / textScale - CurrentConsoleFont->GetHeight() - 4, GetVersionString(), TAG_DONE); else - DrawText(twod, CurrentConsoleFont, CR_ORANGE, SCREENWIDTH / textScale - 8 - + DrawText(twod, CurrentConsoleFont, CR_ORANGE, twod->GetWidth() / textScale - 8 - CurrentConsoleFont->StringWidth(GetVersionString()), ConBottom / textScale - CurrentConsoleFont->GetHeight() - 4, GetVersionString(), DTA_VirtualWidth, twod->GetWidth() / textScale, - DTA_VirtualHeight, screen->GetHeight() / textScale, + DTA_VirtualHeight, twod->GetHeight() / textScale, DTA_KeepRatio, true, TAG_DONE); } @@ -1231,7 +1231,7 @@ void C_DrawConsole () { DrawText(twod, CurrentConsoleFont, CR_TAN, LEFTMARGIN, offset + lines * CurrentConsoleFont->GetHeight(), p->Text, DTA_VirtualWidth, twod->GetWidth() / textScale, - DTA_VirtualHeight, screen->GetHeight() / textScale, + DTA_VirtualHeight, twod->GetHeight() / textScale, DTA_KeepRatio, true, TAG_DONE); } } @@ -1257,7 +1257,7 @@ void C_DrawConsole () else DrawChar(twod, CurrentConsoleFont, CR_GREEN, 0, bottomline, RowAdjust == conbuffer->GetFormattedLineCount() ? 12 : 10, DTA_VirtualWidth, twod->GetWidth() / textScale, - DTA_VirtualHeight, screen->GetHeight() / textScale, + DTA_VirtualHeight, twod->GetHeight() / textScale, DTA_KeepRatio, true, TAG_DONE); } } @@ -1378,7 +1378,7 @@ static bool C_HandleKey (event_t *ev, FCommandBuffer &buffer) case GK_PGUP: if (ev->data3 & (GKM_SHIFT|GKM_CTRL)) { // Scroll console buffer up one page - RowAdjust += (SCREENHEIGHT-4)/active_con_scale(twod) / + RowAdjust += (twod->GetHeight()-4)/active_con_scale(twod) / ((gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) ? CurrentConsoleFont->GetHeight() : CurrentConsoleFont->GetHeight()*2) - 3; } else if (RowAdjust < conbuffer->GetFormattedLineCount()) @@ -1401,7 +1401,7 @@ static bool C_HandleKey (event_t *ev, FCommandBuffer &buffer) case GK_PGDN: if (ev->data3 & (GKM_SHIFT|GKM_CTRL)) { // Scroll console buffer down one page - const int scrollamt = (SCREENHEIGHT-4)/active_con_scale(twod) / + const int scrollamt = (twod->GetHeight()-4)/active_con_scale(twod) / ((gamestate == GS_FULLCONSOLE || gamestate == GS_STARTUP) ? CurrentConsoleFont->GetHeight() : CurrentConsoleFont->GetHeight()*2) - 3; if (RowAdjust < scrollamt) { diff --git a/src/ct_chat.cpp b/src/ct_chat.cpp index 6ef533a12..9f2260049 100644 --- a/src/ct_chat.cpp +++ b/src/ct_chat.cpp @@ -268,11 +268,11 @@ void CT_Drawer (void) scalex = 1; int scale = active_con_scaletext(drawer); - int screen_width = SCREENWIDTH / scale; - int screen_height= SCREENHEIGHT / scale; + int screen_width = twod->GetWidth() / scale; + int screen_height= twod->GetHeight() / scale; int st_y = StatusBar->GetTopOfStatusbar() / scale; - y += ((SCREENHEIGHT == viewheight && viewactive) || gamestate != GS_LEVEL) ? screen_height : st_y; + y += ((twod->GetHeight() == viewheight && viewactive) || gamestate != GS_LEVEL) ? screen_height : st_y; promptwidth = displayfont->StringWidth (prompt) * scalex; x = displayfont->GetCharWidth (displayfont->GetCursor()) * scalex * 2 + promptwidth; diff --git a/src/d_main.cpp b/src/d_main.cpp index cf4a82dcd..bbb70c758 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -1014,7 +1014,7 @@ void D_Display () FString pstring = GStrings("TXT_BY"); pstring.Substitute("%s", players[paused - 1].userinfo.GetName()); DrawText(twod, font, CR_RED, - (screen->GetWidth() - font->StringWidth(pstring)*CleanXfac) / 2, + (twod->GetWidth() - font->StringWidth(pstring)*CleanXfac) / 2, (tex->GetDisplayHeight() * CleanYfac) + 4, pstring, DTA_CleanNoMove, true, TAG_DONE); } } diff --git a/src/g_statusbar/hudmessages.cpp b/src/g_statusbar/hudmessages.cpp index b8a324ae6..33c6a7b28 100644 --- a/src/g_statusbar/hudmessages.cpp +++ b/src/g_statusbar/hudmessages.cpp @@ -298,8 +298,8 @@ void DHUDMessage::CalcClipCoords(int hudheight) { // No clipping rectangle set; use the full screen. ClipLeft = 0; ClipTop = 0; - ClipRight = screen->GetWidth(); - ClipBot = screen->GetHeight(); + ClipRight = twod->GetWidth(); + ClipBot = twod->GetHeight(); } else { @@ -328,7 +328,7 @@ void DHUDMessage::ResetText (const char *text) } else { - width = SCREENWIDTH / active_con_scaletext(twod); + width = twod->GetWidth() / active_con_scaletext(twod); } Lines = V_BreakLines (Font, NoWrap ? INT_MAX : width, (uint8_t *)text); @@ -383,8 +383,8 @@ void DHUDMessage::Draw (int bottom, int visibility) DrawSetup (); - int screen_width = SCREENWIDTH; - int screen_height = SCREENHEIGHT; + int screen_width = twod->GetWidth(); + int screen_height = twod->GetHeight(); xscale = yscale = 1; if (HUDWidth == 0) { @@ -494,8 +494,8 @@ void DHUDMessage::DoDraw (int linenum, int x, int y, bool clean, int hudheight) { int scale = active_con_scaletext(twod); DrawText(twod, Font, TextColor, x, y, Lines[linenum].Text, - DTA_VirtualWidth, SCREENWIDTH / scale, - DTA_VirtualHeight, SCREENHEIGHT / scale, + DTA_VirtualWidth, twod->GetWidth() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_Alpha, Alpha, DTA_RenderStyle, Style, DTA_KeepRatio, true, @@ -587,8 +587,8 @@ void DHUDMessageFadeOut::DoDraw (int linenum, int x, int y, bool clean, int hudh { int scale = active_con_scaletext(twod); DrawText(twod, Font, TextColor, x, y, Lines[linenum].Text, - DTA_VirtualWidth, SCREENWIDTH / scale, - DTA_VirtualHeight, SCREENHEIGHT / scale, + DTA_VirtualWidth, twod->GetWidth() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_Alpha, trans, DTA_RenderStyle, Style, DTA_KeepRatio, true, @@ -676,8 +676,8 @@ void DHUDMessageFadeInOut::DoDraw (int linenum, int x, int y, bool clean, int hu { int scale = active_con_scaletext(twod); DrawText(twod, Font, TextColor, x, y, Lines[linenum].Text, - DTA_VirtualWidth, SCREENWIDTH / scale, - DTA_VirtualHeight, SCREENHEIGHT / scale, + DTA_VirtualWidth, twod->GetWidth() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_Alpha, trans, DTA_RenderStyle, Style, DTA_KeepRatio, true, @@ -860,8 +860,8 @@ void DHUDMessageTypeOnFadeOut::DoDraw (int linenum, int x, int y, bool clean, in { int scale = active_con_scaletext(twod); DrawText(twod, Font, TextColor, x, y, Lines[linenum].Text, - DTA_VirtualWidth, SCREENWIDTH / scale, - DTA_VirtualHeight, SCREENHEIGHT / scale, + DTA_VirtualWidth, twod->GetWidth() / scale, + DTA_VirtualHeight, twod->GetHeight() / scale, DTA_KeepRatio, true, DTA_TextLen, LineVisible, DTA_Alpha, Alpha, diff --git a/src/g_statusbar/sbarinfo.cpp b/src/g_statusbar/sbarinfo.cpp index 617c1d1ec..26cd9adba 100644 --- a/src/g_statusbar/sbarinfo.cpp +++ b/src/g_statusbar/sbarinfo.cpp @@ -965,11 +965,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) { if(relX) - outX = x + (SCREENWIDTH/(ScaleX*2)); + outX = x + (twod->GetWidth()/(ScaleX*2)); else outX = x; if(relY) - outY = y + (SCREENHEIGHT/(ScaleY*2)); + outY = y + (twod->GetHeight()/(ScaleY*2)); else outY = y; } @@ -1294,9 +1294,9 @@ public: h *= Scale.Y; if(xright) - rx = SCREENWIDTH + rx; + rx = twod->GetWidth() + rx; if(ybot) - ry = SCREENHEIGHT + ry; + ry = twod->GetHeight() + ry; // Check for clipping if(clip[0] != 0 || clip[1] != 0 || clip[2] != 0 || clip[3] != 0) @@ -1442,9 +1442,9 @@ public: rh *= Scale.Y; if(xright) - rx = SCREENWIDTH + rx; + rx = twod->GetWidth() + rx; if(ybot) - ry = SCREENHEIGHT + ry; + ry = twod->GetHeight() + ry; } if(drawshadow) { diff --git a/src/g_statusbar/sbarinfo_commands.cpp b/src/g_statusbar/sbarinfo_commands.cpp index b00489e06..a2286734a 100644 --- a/src/g_statusbar/sbarinfo_commands.cpp +++ b/src/g_statusbar/sbarinfo_commands.cpp @@ -1972,7 +1972,7 @@ class CommandAspectRatio : public SBarInfoCommandFlowControl private: int FindRatio() { - float aspect = ActiveRatio(screen->GetWidth(), screen->GetHeight()); + float aspect = ActiveRatio(twod->GetWidth(), twod->GetHeight()); static std::pair ratioTypes[] = { diff --git a/src/g_statusbar/shared_hud.cpp b/src/g_statusbar/shared_hud.cpp index 78ac95e26..32ee78251 100644 --- a/src/g_statusbar/shared_hud.cpp +++ b/src/g_statusbar/shared_hud.cpp @@ -165,8 +165,8 @@ void DBaseStatusBar::DrawAltHUD() players[consoleplayer].inventorytics = 0; int scale = GetUIScale(twod, hud_althudscale); - int hudwidth = SCREENWIDTH / scale; - int hudheight = hud_aspectscale ? int(SCREENHEIGHT / (scale*1.2)) : SCREENHEIGHT / scale; + int hudwidth = twod->GetWidth() / scale; + int hudheight = hud_aspectscale ? int(twod->GetHeight() / (scale*1.2)) : twod->GetHeight() / scale; IFVM(AltHud, Draw) { diff --git a/src/g_statusbar/shared_sbar.cpp b/src/g_statusbar/shared_sbar.cpp index 3ebd1ff6c..e7108e512 100644 --- a/src/g_statusbar/shared_sbar.cpp +++ b/src/g_statusbar/shared_sbar.cpp @@ -178,7 +178,7 @@ void ST_LoadCrosshair(bool alwaysload) { num = -num; } - size = (SCREENWIDTH < 640) ? 'S' : 'B'; + size = (twod->GetWidth() < 640) ? 'S' : 'B'; mysnprintf (name, countof(name), "XHAIR%c%d", size, num); FTextureID texid = TexMan.CheckForTexture(name, ETextureType::MiscPatch, FTextureManager::TEXMAN_TryAny | FTextureManager::TEXMAN_ShortNameOnly); @@ -430,7 +430,7 @@ void DBaseStatusBar::SetDrawSize(int reltop, int hres, int vres) HorizontalResolution = hres; VerticalResolution = vres; int x, y; - ST_CalcCleanFacs(hres, vres, SCREENWIDTH, SCREENHEIGHT, &x, &y); + ST_CalcCleanFacs(hres, vres, twod->GetWidth(), twod->GetHeight(), &x, &y); defaultScale = { (double)x, (double)y }; SetScale(); // recalculate positioning info. @@ -471,8 +471,8 @@ void DBaseStatusBar::SetScale () { ValidateResolution(HorizontalResolution, VerticalResolution); - int w = SCREENWIDTH; - int h = SCREENHEIGHT; + int w = twod->GetWidth(); + int h = twod->GetHeight(); if (st_scale < 0 || ForcedScale) { // This is the classic fullscreen scale with aspect ratio compensation. @@ -593,7 +593,7 @@ void DBaseStatusBar::DoDrawAutomapHUD(int crdefault, int highlight) auto font = generic_ui ? NewSmallFont : SmallFont; auto font2 = font; auto vwidth = twod->GetWidth() / scale; - auto vheight = screen->GetHeight() / scale; + auto vheight = twod->GetHeight() / scale; auto fheight = font->GetHeight(); FString textbuffer; int sec; @@ -680,7 +680,7 @@ void DBaseStatusBar::DoDrawAutomapHUD(int crdefault, int highlight) StatusbarToRealCoords(x, yy, w, h); // Get the y coordinate for the first line of the map name text. - y = Scale(GetTopOfStatusbar() - int(h), vheight, screen->GetHeight()) - fheight * numlines; + y = Scale(GetTopOfStatusbar() - int(h), vheight, twod->GetHeight()) - fheight * numlines; // Draw the texts centered above the status bar. for (unsigned i = 0; i < numlines; i++) @@ -978,40 +978,40 @@ void DBaseStatusBar::RefreshBackground () const { int x, x2, y; - float ratio = ActiveRatio (SCREENWIDTH, SCREENHEIGHT); + float ratio = ActiveRatio (twod->GetWidth(), twod->GetHeight()); x = ST_X; y = SBarTop; - if (x == 0 && y == SCREENHEIGHT) return; + if (x == 0 && y == twod->GetHeight()) return; auto tex = GetBorderTexture(primaryLevel); if(!CompleteBorder) { - if(y < SCREENHEIGHT) + if(y < twod->GetHeight()) { - DrawBorder(twod, tex, x+1, y, SCREENWIDTH, y+1); - DrawBorder(twod, tex, x+1, SCREENHEIGHT-1, SCREENWIDTH, SCREENHEIGHT); + DrawBorder(twod, tex, x+1, y, twod->GetWidth(), y+1); + DrawBorder(twod, tex, x+1, twod->GetHeight()-1, twod->GetWidth(), twod->GetHeight()); } } else { - x = SCREENWIDTH; + x = twod->GetWidth(); } if (x > 0) { if(!CompleteBorder) { - x2 = SCREENWIDTH - ST_X; + x2 = twod->GetWidth() - ST_X; } else { - x2 = SCREENWIDTH; + x2 = twod->GetWidth(); } - DrawBorder(twod, tex, 0, y, x+1, SCREENHEIGHT); - DrawBorder(twod, tex, x2-1, y, SCREENWIDTH, SCREENHEIGHT); + DrawBorder(twod, tex, 0, y, x+1, twod->GetHeight()); + DrawBorder(twod, tex, x2-1, y, twod->GetWidth(), twod->GetHeight()); if (setblocks >= 10) { @@ -1019,7 +1019,7 @@ void DBaseStatusBar::RefreshBackground () const if (p != NULL) { twod->AddFlatFill(0, y, x, y + p->GetDisplayHeight(), p, true); - twod->AddFlatFill(x2, y, SCREENWIDTH, y + p->GetDisplayHeight(), p, true); + twod->AddFlatFill(x2, y, twod->GetWidth(), y + p->GetDisplayHeight(), p, true); } } } @@ -1058,7 +1058,7 @@ void DBaseStatusBar::DrawCrosshair () if (crosshairscale > 0.0f) { - size = SCREENHEIGHT * crosshairscale / 200.; + size = twod->GetHeight() * crosshairscale / 200.; } else { @@ -1234,8 +1234,8 @@ void DBaseStatusBar::DrawLog () { // This uses the same scaling as regular HUD messages auto scale = active_con_scaletext(twod, generic_ui || log_vgafont); - hudwidth = SCREENWIDTH / scale; - hudheight = SCREENHEIGHT / scale; + hudwidth = twod->GetWidth() / scale; + hudheight = twod->GetHeight() / scale; FFont *font = (generic_ui || log_vgafont)? NewSmallFont : SmallFont; int linelen = hudwidth<640? Scale(hudwidth,9,10)-40 : 560; @@ -1259,8 +1259,8 @@ void DBaseStatusBar::DrawLog () if (y<0) y=0; w=600; } - Dim(twod, 0, 0.5f, Scale(x, SCREENWIDTH, hudwidth), Scale(y, SCREENHEIGHT, hudheight), - Scale(w, SCREENWIDTH, hudwidth), Scale(height, SCREENHEIGHT, hudheight)); + Dim(twod, 0, 0.5f, Scale(x, twod->GetWidth(), hudwidth), Scale(y, twod->GetHeight(), hudheight), + Scale(w, twod->GetWidth(), hudwidth), Scale(height, twod->GetHeight(), hudheight)); x+=20; y+=10; for (const FBrokenLines &line : lines) @@ -1305,7 +1305,7 @@ void DBaseStatusBar::SetMugShotState(const char *stateName, bool waitTillDone, b void DBaseStatusBar::DrawBottomStuff (EHudState state) { primaryLevel->localEventManager->RenderUnderlay(state); - DrawMessages (HUDMSGLayer_UnderHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : SCREENHEIGHT); + DrawMessages (HUDMSGLayer_UnderHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : twod->GetHeight()); } //--------------------------------------------------------------------------- @@ -1338,9 +1338,9 @@ void DBaseStatusBar::DrawTopStuff (EHudState state) if (automapactive && !viewactive) { - DrawMessages (HUDMSGLayer_OverMap, (state == HUD_StatusBar) ? GetTopOfStatusbar() : SCREENHEIGHT); + DrawMessages (HUDMSGLayer_OverMap, (state == HUD_StatusBar) ? GetTopOfStatusbar() : twod->GetHeight()); } - DrawMessages (HUDMSGLayer_OverHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : SCREENHEIGHT); + DrawMessages (HUDMSGLayer_OverHUD, (state == HUD_StatusBar) ? GetTopOfStatusbar() : twod->GetHeight()); primaryLevel->localEventManager->RenderOverlay(state); DrawConsistancy (); @@ -1629,8 +1629,8 @@ void DBaseStatusBar::DrawGraphic(FTextureID texture, double x, double y, int fla switch (flags & DI_SCREEN_VMASK) { default: orgy = 0; break; - case DI_SCREEN_VCENTER: orgy = screen->GetHeight() / 2; break; - case DI_SCREEN_BOTTOM: orgy = screen->GetHeight(); break; + case DI_SCREEN_VCENTER: orgy = twod->GetHeight() / 2; break; + case DI_SCREEN_BOTTOM: orgy = twod->GetHeight(); break; } // move stuff in the top right corner a bit down if the fps counter is on. @@ -1712,8 +1712,8 @@ void DBaseStatusBar::DrawString(FFont *font, const FString &cstring, double x, d switch (flags & DI_SCREEN_VMASK) { default: orgy = 0; break; - case DI_SCREEN_VCENTER: orgy = screen->GetHeight() / 2; break; - case DI_SCREEN_BOTTOM: orgy = screen->GetHeight(); break; + case DI_SCREEN_VCENTER: orgy = twod->GetHeight() / 2; break; + case DI_SCREEN_BOTTOM: orgy = twod->GetHeight(); break; } // move stuff in the top right corner a bit down if the fps counter is on. @@ -1873,8 +1873,8 @@ void DBaseStatusBar::TransformRect(double &x, double &y, double &w, double &h, i switch (flags & DI_SCREEN_VMASK) { default: orgy = 0; break; - case DI_SCREEN_VCENTER: orgy = screen->GetHeight() / 2; break; - case DI_SCREEN_BOTTOM: orgy = screen->GetHeight(); break; + case DI_SCREEN_VCENTER: orgy = twod->GetHeight() / 2; break; + case DI_SCREEN_BOTTOM: orgy = twod->GetHeight(); break; } // move stuff in the top right corner a bit down if the fps counter is on. diff --git a/src/hu_scores.cpp b/src/hu_scores.cpp index 7aff16869..d8dce6a45 100644 --- a/src/hu_scores.cpp +++ b/src/hu_scores.cpp @@ -245,7 +245,7 @@ void HU_GetPlayerWidths(int &maxnamewidth, int &maxscorewidth, int &maxiconheigh static void HU_DrawFontScaled(double x, double y, int color, const char *text) { - DrawText(twod, displayFont, color, x / FontScale, y / FontScale, text, DTA_VirtualWidth, screen->GetWidth() / FontScale, DTA_VirtualHeight, screen->GetHeight() / FontScale, TAG_END); + DrawText(twod, displayFont, color, x / FontScale, y / FontScale, text, DTA_VirtualWidth, twod->GetWidth() / FontScale, DTA_VirtualHeight, twod->GetHeight() / FontScale, TAG_END); } static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYERS]) @@ -303,7 +303,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER } } - int scorexwidth = SCREENWIDTH / MAX(8, numTeams); + int scorexwidth = twod->GetWidth() / MAX(8, numTeams); int numscores = 0; int scorex; @@ -315,7 +315,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER } } - scorex = (SCREENWIDTH - scorexwidth * (numscores - 1)) / 2; + scorex = (twod->GetWidth() - scorexwidth * (numscores - 1)) / 2; for (i = 0; i < Teams.Size(); ++i) { @@ -344,7 +344,7 @@ static void HU_DoDrawScores (player_t *player, player_t *sortedplayers[MAXPLAYER col3 = col2 + (displayFont->StringWidth(text_frags) + 16) * FontScale; col4 = col3 + maxscorewidth * FontScale; col5 = col4 + (maxnamewidth + 16) * FontScale; - x = (SCREENWIDTH >> 1) - (((displayFont->StringWidth(text_delay) * FontScale) + col5) >> 1); + x = (twod->GetWidth() >> 1) - (((displayFont->StringWidth(text_delay) * FontScale) + col5) >> 1); //HU_DrawFontScaled(x, y, color, text_color); HU_DrawFontScaled(x + col2, y, color, text_frags); @@ -392,7 +392,7 @@ static void HU_DrawTimeRemaining (int y) else mysnprintf (str, countof(str), "Level ends in %d:%02d", minutes, seconds); - HU_DrawFontScaled(SCREENWIDTH / 2 - displayFont->StringWidth(str) / 2 * FontScale, y, CR_GRAY, str); + HU_DrawFontScaled(twod->GetWidth() / 2 - displayFont->StringWidth(str) / 2 * FontScale, y, CR_GRAY, str); } } @@ -469,9 +469,6 @@ void HU_DrawColorBar(int x, int y, int height, int playernum) D_GetPlayerColor (playernum, &h, &s, &v, NULL); HSVtoRGB (&r, &g, &b, h, s, v); - //float aspect = ActiveRatio(SCREENWIDTH, SCREENHEIGHT); - //if (!AspectTallerThanWide(aspect)) x += (screen->GetWidth() - AspectBaseWidth(aspect)) / 2; - ClearRect(twod, x, y, x + 24*FontScale, y + height, -1, MAKEARGB(255,clamp(int(r*255.f),0,255), clamp(int(g*255.f),0,255), diff --git a/src/intermission/intermission.cpp b/src/intermission/intermission.cpp index c1a75d628..a06feac8f 100644 --- a/src/intermission/intermission.cpp +++ b/src/intermission/intermission.cpp @@ -84,8 +84,8 @@ void DrawFullscreenSubtitle(const char *text) // This uses the same scaling as regular HUD messages auto scale = active_con_scaletext(twod, generic_ui); - int hudwidth = SCREENWIDTH / scale; - int hudheight = SCREENHEIGHT / scale; + int hudwidth = twod->GetWidth() / scale; + int hudheight = twod->GetHeight() / scale; FFont *font = generic_ui? NewSmallFont : SmallFont; int linelen = hudwidth < 640 ? Scale(hudwidth, 9, 10) - 40 : 560; @@ -109,8 +109,8 @@ void DrawFullscreenSubtitle(const char *text) if (y < 0) y = 0; w = 600; } - Dim(twod, 0, 0.5f, Scale(x, SCREENWIDTH, hudwidth), Scale(y, SCREENHEIGHT, hudheight), - Scale(w, SCREENWIDTH, hudwidth), Scale(height, SCREENHEIGHT, hudheight)); + Dim(twod, 0, 0.5f, Scale(x, twod->GetWidth(), hudwidth), Scale(y, twod->GetHeight(), hudheight), + Scale(w, twod->GetWidth(), hudwidth), Scale(height, twod->GetHeight(), hudheight)); x += 20; y += 10; for (const FBrokenLines &line : lines) @@ -220,12 +220,12 @@ void DIntermissionScreen::Drawer () } else { - twod->AddFlatFill(0,0, SCREENWIDTH, SCREENHEIGHT, TexMan.GetTexture(mBackground)); + twod->AddFlatFill(0,0, twod->GetWidth(), twod->GetHeight(), TexMan.GetTexture(mBackground)); } } else { - ClearRect(twod, 0, 0, SCREENWIDTH, SCREENHEIGHT, 0, 0); + ClearRect(twod, 0, 0, twod->GetWidth(), twod->GetHeight(), 0, 0); } for (unsigned i=0; i < mOverlays.Size(); i++) { @@ -375,9 +375,9 @@ void DIntermissionScreenText::Drawer () // line feed characters. int numrows; auto font = generic_ui ? NewSmallFont : SmallFont; - auto fontscale = MAX(generic_ui ? MIN(screen->GetWidth() / 640, screen->GetHeight() / 400) : MIN(screen->GetWidth() / 400, screen->GetHeight() / 250), 1); - int cleanwidth = screen->GetWidth() / fontscale; - int cleanheight = screen->GetHeight() / fontscale; + auto fontscale = MAX(generic_ui ? MIN(twod->GetWidth() / 640, twod->GetHeight() / 400) : MIN(twod->GetWidth() / 400, twod->GetHeight() / 250), 1); + int cleanwidth = twod->GetWidth() / fontscale; + int cleanheight = twod->GetHeight() / fontscale; int refwidth = generic_ui ? 640 : 320; int refheight = generic_ui ? 400 : 200; const int kerning = font->GetDefaultKerning(); @@ -390,29 +390,29 @@ void DIntermissionScreenText::Drawer () int rowheight = font->GetHeight() * fontscale; int rowpadding = (generic_ui? 2 : ((gameinfo.gametype & (GAME_DoomStrifeChex) ? 3 : -1))) * fontscale; - int cx = (mTextX - refwidth/2) * fontscale + screen->GetWidth() / 2; - int cy = (mTextY - refheight/2) * fontscale + screen->GetHeight() / 2; + int cx = (mTextX - refwidth/2) * fontscale + twod->GetWidth() / 2; + int cy = (mTextY - refheight/2) * fontscale + twod->GetHeight() / 2; cx = MAX(0, cx); int startx = cx; if (usesDefault) { int allheight; - while ((allheight = numrows * (rowheight + rowpadding)), allheight > screen->GetHeight() && rowpadding > 0) + while ((allheight = numrows * (rowheight + rowpadding)), allheight > twod->GetHeight() && rowpadding > 0) { rowpadding--; } allheight = numrows * (rowheight + rowpadding); - if (screen->GetHeight() - cy - allheight < cy) + if (twod->GetHeight() - cy - allheight < cy) { - cy = (screen->GetHeight() - allheight) / 2; + cy = (twod->GetHeight() - allheight) / 2; if (cy < 0) cy = 0; } } else { // 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 > twod->GetHeight()) { rowpadding--; } @@ -438,7 +438,7 @@ void DIntermissionScreenText::Drawer () pic = font->GetChar (c, mTextColor, &w); w += kerning; w *= fontscale; - if (cx + w > SCREENWIDTH) + if (cx + w > twod->GetWidth()) continue; DrawChar(twod, font, mTextColor, cx/fontscale, cy/fontscale, c, DTA_KeepRatio, true, DTA_VirtualWidth, cleanwidth, DTA_VirtualHeight, cleanheight, TAG_DONE); @@ -630,8 +630,8 @@ void DIntermissionScreenCast::Drawer () auto font = generic_ui ? NewSmallFont : SmallFont; if (*name == '$') name = GStrings(name+1); DrawText(twod, font, CR_UNTRANSLATED, - (SCREENWIDTH - font->StringWidth (name) * CleanXfac)/2, - (SCREENHEIGHT * 180) / 200, + (twod->GetWidth() - font->StringWidth (name) * CleanXfac)/2, + (twod->GetHeight() * 180) / 200, name, DTA_CleanNoMove, true, TAG_DONE); } diff --git a/src/menu/menu.cpp b/src/menu/menu.cpp index 8efe12c15..740c6f676 100644 --- a/src/menu/menu.cpp +++ b/src/menu/menu.cpp @@ -878,7 +878,7 @@ static void M_Dim() amount = gameinfo.dimamount; } - Dim(twod, dimmer, amount, 0, 0, screen->GetWidth(), screen->GetHeight()); + Dim(twod, dimmer, amount, 0, 0, twod->GetWidth(), twod->GetHeight()); } diff --git a/src/rendering/hwrenderer/utility/hw_draw2d.cpp b/src/rendering/hwrenderer/utility/hw_draw2d.cpp index d34742c03..5a5b18c29 100644 --- a/src/rendering/hwrenderer/utility/hw_draw2d.cpp +++ b/src/rendering/hwrenderer/utility/hw_draw2d.cpp @@ -96,7 +96,7 @@ void Draw2D(F2DDrawer *drawer, FRenderState &state) const auto &mScreenViewport = screen->mScreenViewport; state.SetViewport(mScreenViewport.left, mScreenViewport.top, mScreenViewport.width, mScreenViewport.height); - screen->mViewpoints->Set2D(state, screen->GetWidth(), screen->GetHeight()); + screen->mViewpoints->Set2D(state, twod->GetWidth(), twod->GetHeight()); state.EnableDepthTest(false); state.EnableMultisampling(false); diff --git a/src/rendering/v_framebuffer.cpp b/src/rendering/v_framebuffer.cpp index 7e39d64bc..d26dd03d6 100644 --- a/src/rendering/v_framebuffer.cpp +++ b/src/rendering/v_framebuffer.cpp @@ -113,6 +113,7 @@ void DFrameBuffer::SetSize(int width, int height) { Width = ViewportScaledWidth(width, height); Height = ViewportScaledHeight(width, height); + m2DDrawer.SetSize(width, height); } //========================================================================== diff --git a/src/sound/s_doomsound.cpp b/src/sound/s_doomsound.cpp index 6d023bff7..4887f8e5c 100644 --- a/src/sound/s_doomsound.cpp +++ b/src/sound/s_doomsound.cpp @@ -1273,7 +1273,7 @@ void DoomSoundEngine::NoiseDebug() for (chan = Channels; chan->NextChan != nullptr; chan = chan->NextChan) { } - while (y < SCREENHEIGHT - 16) + while (y < twod->GetHeight() - 16) { char temp[32]; diff --git a/src/wi_stuff.cpp b/src/wi_stuff.cpp index 0bee2dd0b..5e65cd292 100644 --- a/src/wi_stuff.cpp +++ b/src/wi_stuff.cpp @@ -604,12 +604,12 @@ void DInterBackground::drawBackground(int state, bool drawsplat, bool snl_pointe } else { - twod->AddFlatFill(0, 0, SCREENWIDTH, SCREENHEIGHT, background); + twod->AddFlatFill(0, 0, twod->GetWidth(), twod->GetHeight(), background); } } else { - ClearRect(twod, 0, 0, SCREENWIDTH, SCREENHEIGHT, 0, 0); + ClearRect(twod, 0, 0, twod->GetWidth(), twod->GetHeight(), 0, 0); } for (i = 0; i