From 2d455df18da0de511d041b1ef0843890f516cd89 Mon Sep 17 00:00:00 2001 From: vladislavbelov Date: Wed, 2 Jun 2021 21:21:28 +0000 Subject: [PATCH] Removes Z value from TextRenderer translate, renames TextRenderer methods to more explicit ones. This was SVN commit r25645. --- source/graphics/TextRenderer.cpp | 19 +++++++------------ source/graphics/TextRenderer.h | 13 ++++--------- source/gui/CGUIText.cpp | 6 +++--- source/gui/ObjectTypes/CInput.cpp | 27 ++++++++++++--------------- source/ps/CConsole.cpp | 14 +++++++------- source/ps/CLogger.cpp | 16 ++++++++-------- source/ps/ProfileViewer.cpp | 18 +++++++++--------- source/renderer/TerrainRenderer.cpp | 4 ++-- 8 files changed, 52 insertions(+), 65 deletions(-) diff --git a/source/graphics/TextRenderer.cpp b/source/graphics/TextRenderer.cpp index 0ac388d7bd..4cbd3c989b 100644 --- a/source/graphics/TextRenderer.cpp +++ b/source/graphics/TextRenderer.cpp @@ -33,8 +33,8 @@ CTextRenderer::CTextRenderer() { ResetTransform(); - Color(CColor(1.0f, 1.0f, 1.0f, 1.0f)); - Font(str_sans_10); + SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); + SetCurrentFont(str_sans_10); } void CTextRenderer::ResetTransform() @@ -63,10 +63,10 @@ void CTextRenderer::SetTransform(const CMatrix3D& transform) m_Dirty = true; } -void CTextRenderer::Translate(float x, float y, float z) +void CTextRenderer::Translate(float x, float y) { CMatrix3D m; - m.SetTranslation(x, y, z); + m.SetTranslation(x, y, 0.0f); m_Transform = m_Transform * m; m_Dirty = true; } @@ -76,7 +76,7 @@ void CTextRenderer::SetClippingRect(const CRect& rect) m_Clipping = rect; } -void CTextRenderer::Color(const CColor& color) +void CTextRenderer::SetCurrentColor(const CColor& color) { if (m_Color != color) { @@ -85,12 +85,7 @@ void CTextRenderer::Color(const CColor& color) } } -void CTextRenderer::Color(float r, float g, float b, float a) -{ - Color(CColor(r, g, b, a)); -} - -void CTextRenderer::Font(CStrIntern font) +void CTextRenderer::SetCurrentFont(CStrIntern font) { if (font != m_FontName) { @@ -137,7 +132,7 @@ void CTextRenderer::PutAdvance(const wchar_t* buf) int w, h; m_Font->CalculateStringSize(buf, w, h); - Translate((float)w, 0.0f, 0.0f); + Translate((float)w, 0.0f); } void CTextRenderer::Put(float x, float y, const wchar_t* buf) diff --git a/source/graphics/TextRenderer.h b/source/graphics/TextRenderer.h index a069677003..30b35429fd 100644 --- a/source/graphics/TextRenderer.h +++ b/source/graphics/TextRenderer.h @@ -42,7 +42,7 @@ public: void SetTransform(const CMatrix3D& transform); - void Translate(float x, float y, float z); + void Translate(float x, float y); /** * Set clipping rectangle, in pre-transform coordinates (i.e. text is clipped against @@ -55,17 +55,12 @@ public: /** * Set the color for subsequent print calls. */ - void Color(const CColor& color); - - /** - * Set the color for subsequent print calls. - */ - void Color(float r, float g, float b, float a = 1.0); + void SetCurrentColor(const CColor& color); /** * Set the font for subsequent print calls. */ - void Font(CStrIntern font); + void SetCurrentFont(CStrIntern font); /** * Print formatted text at (0,0) under the current transform, @@ -173,7 +168,7 @@ private: CStrIntern m_FontName; std::shared_ptr m_Font; - bool m_Dirty; + bool m_Dirty = true; std::list m_Batches; }; diff --git a/source/gui/CGUIText.cpp b/source/gui/CGUIText.cpp index 15b0abf1a2..47d5804e94 100644 --- a/source/gui/CGUIText.cpp +++ b/source/gui/CGUIText.cpp @@ -449,7 +449,7 @@ void CGUIText::Draw(CGUI& pGUI, CCanvas2D& canvas, const CGUIColor& DefaultColor CTextRenderer textRenderer; textRenderer.SetClippingRect(clipping); - textRenderer.Translate(0.0f, 0.0f, 0.0f); + textRenderer.Translate(0.0f, 0.0f); for (const STextCall& tc : m_TextCalls) { @@ -457,8 +457,8 @@ void CGUIText::Draw(CGUI& pGUI, CCanvas2D& canvas, const CGUIColor& DefaultColor if (tc.m_pSpriteCall) continue; - textRenderer.Color(tc.m_UseCustomColor ? tc.m_Color : DefaultColor); - textRenderer.Font(tc.m_Font); + textRenderer.SetCurrentColor(tc.m_UseCustomColor ? tc.m_Color : DefaultColor); + textRenderer.SetCurrentFont(tc.m_Font); textRenderer.Put(floorf(pos.X + tc.m_Pos.X), floorf(pos.Y + tc.m_Pos.Y), &tc.m_String); } diff --git a/source/gui/ObjectTypes/CInput.cpp b/source/gui/ObjectTypes/CInput.cpp index b681399544..0ccbfd9c81 100644 --- a/source/gui/ObjectTypes/CInput.cpp +++ b/source/gui/ObjectTypes/CInput.cpp @@ -1265,14 +1265,11 @@ void CInput::Draw(CCanvas2D& canvas) float ls = (float)font.GetLineSpacing(); CTextRenderer textRenderer; - textRenderer.Font(font_name); + textRenderer.SetCurrentFont(font_name); - // Set the Z to somewhat more, so we can draw a selected area between the - // the control and the text. textRenderer.Translate( (float)(int)(m_CachedActualSize.left) + m_BufferZone, - (float)(int)(m_CachedActualSize.top+h) + m_BufferZone, - 0.0f); + (float)(int)(m_CachedActualSize.top+h) + m_BufferZone); // U+FE33: PRESENTATION FORM FOR VERTICAL LOW LINE // (sort of like a | which is aligned to the left of most characters) @@ -1423,7 +1420,7 @@ void CInput::Draw(CCanvas2D& canvas) buffered_y = -scroll; // Setup initial color (then it might change and change back, when drawing selected area) - textRenderer.Color(m_TextColor); + textRenderer.SetCurrentColor(m_TextColor); bool using_selected_color = false; @@ -1440,9 +1437,9 @@ void CInput::Draw(CCanvas2D& canvas) // Text must always be drawn in integer values. So we have to convert scroll if (m_MultiLine) - textRenderer.Translate(0.f, -(float)(int)scroll, 0.f); + textRenderer.Translate(0.f, -(float)(int)scroll); else - textRenderer.Translate(-(float)(int)m_HorizontalScroll, 0.f, 0.f); + textRenderer.Translate(-(float)(int)m_HorizontalScroll, 0.f); // We might as well use 'i' here, because we need it // (often compared against ints, so don't make it size_t) @@ -1454,9 +1451,9 @@ void CInput::Draw(CCanvas2D& canvas) { // We still need to translate the OpenGL matrix if (i == 0) - textRenderer.Translate(it->m_ListOfX[i], 0.f, 0.f); + textRenderer.Translate(it->m_ListOfX[i], 0.f); else - textRenderer.Translate(it->m_ListOfX[i] - it->m_ListOfX[i-1], 0.f, 0.f); + textRenderer.Translate(it->m_ListOfX[i] - it->m_ListOfX[i-1], 0.f); continue; } @@ -1466,7 +1463,7 @@ void CInput::Draw(CCanvas2D& canvas) if (SelectingText() && it->m_ListStart + i == VirtualTo) { using_selected_color = false; - textRenderer.Color(m_TextColor); + textRenderer.SetCurrentColor(m_TextColor); } // selecting only one, then we need only to draw a cursor. @@ -1480,7 +1477,7 @@ void CInput::Draw(CCanvas2D& canvas) !using_selected_color) { using_selected_color = true; - textRenderer.Color(m_TextColorSelected); + textRenderer.SetCurrentColor(m_TextColorSelected); } if (i != (int)it->m_ListOfX.size()) @@ -1499,18 +1496,18 @@ void CInput::Draw(CCanvas2D& canvas) if (it->m_ListStart + (int)it->m_ListOfX.size() == m_iBufferPos) { - textRenderer.Color(m_TextColor); + textRenderer.SetCurrentColor(m_TextColor); if (m_CursorVisState) textRenderer.PutAdvance(L"_"); if (using_selected_color) - textRenderer.Color(m_TextColorSelected); + textRenderer.SetCurrentColor(m_TextColorSelected); } textRenderer.SetTransform(savedTransform); } - textRenderer.Translate(0.f, ls, 0.f); + textRenderer.Translate(0.f, ls); } canvas.DrawText(textRenderer); diff --git a/source/ps/CConsole.cpp b/source/ps/CConsole.cpp index c36a42f623..9821e3617b 100644 --- a/source/ps/CConsole.cpp +++ b/source/ps/CConsole.cpp @@ -189,7 +189,7 @@ void CConsole::Render() DrawWindow(canvas); CTextRenderer textRenderer; - textRenderer.Font(CStrIntern(CONSOLE_FONT)); + textRenderer.SetCurrentFont(CStrIntern(CONSOLE_FONT)); // animation: slide in from top of screen CMatrix3D transform = GetDefaultGuiMatrix(); const float DeltaY = (1.0f - m_fVisibleFrac) * m_fHeight; @@ -237,7 +237,7 @@ void CConsole::DrawHistory(CTextRenderer& textRenderer) std::lock_guard lock(m_Mutex); // needed for safe access to m_deqMsgHistory - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); for (Iter = m_deqMsgHistory.begin(); Iter != m_deqMsgHistory.end() @@ -259,12 +259,12 @@ void CConsole::DrawBuffer(CTextRenderer& textRenderer) CMatrix3D savedTransform = textRenderer.GetTransform(); - textRenderer.Translate(2.0f, m_fHeight - (float)m_iFontOffset + 1.0f, 0.0f); + textRenderer.Translate(2.0f, m_fHeight - (float)m_iFontOffset + 1.0f); - textRenderer.Color(1.0f, 1.0f, 0.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 0.0f, 1.0f)); textRenderer.PutAdvance(L"]"); - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); if (m_iBufferPos == 0) DrawCursor(textRenderer); @@ -300,13 +300,13 @@ void CConsole::DrawCursor(CTextRenderer& textRenderer) if(m_bCursorVisState) { // Slightly translucent yellow - textRenderer.Color(1.0f, 1.0f, 0.0f, 0.8f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 0.0f, 0.8f)); // Cursor character is chosen to be an underscore textRenderer.Put(0.0f, 0.0f, L"_"); // Revert to the standard text color - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); } } diff --git a/source/ps/CLogger.cpp b/source/ps/CLogger.cpp index 70b0b33174..c96c7aa259 100644 --- a/source/ps/CLogger.cpp +++ b/source/ps/CLogger.cpp @@ -213,11 +213,11 @@ void CLogger::Render() int lineSpacing = font.GetLineSpacing(); CTextRenderer textRenderer; - textRenderer.Font(font_name); - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentFont(font_name); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); // Offset by an extra 35px vertically to avoid the top bar. - textRenderer.Translate(4.0f, 35.0f + lineSpacing, 0.0f); + textRenderer.Translate(4.0f, 35.0f + lineSpacing); // (Lock must come after loading the CFont, since that might log error messages // and attempt to lock the mutex recursively which is forbidden) @@ -229,29 +229,29 @@ void CLogger::Render() if (msg.method == Normal) { type = "info"; - textRenderer.Color(0.0f, 0.8f, 0.0f); + textRenderer.SetCurrentColor(CColor(0.0f, 0.8f, 0.0f, 1.0f)); } else if (msg.method == Warning) { type = "warning"; - textRenderer.Color(1.0f, 1.0f, 0.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 0.0f, 1.0f)); } else { type = "error"; - textRenderer.Color(1.0f, 0.0f, 0.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 0.0f, 0.0f, 1.0f)); } CMatrix3D savedTransform = textRenderer.GetTransform(); textRenderer.PrintfAdvance(L"[%8.3f] %hs: ", msg.time, type); // Display the actual message in white so it's more readable - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); textRenderer.Put(0.0f, 0.0f, msg.message.c_str()); textRenderer.SetTransform(savedTransform); - textRenderer.Translate(0.0f, (float)lineSpacing, 0.0f); + textRenderer.Translate(0.0f, (float)lineSpacing); } CCanvas2D canvas; diff --git a/source/ps/ProfileViewer.cpp b/source/ps/ProfileViewer.cpp index dbbeb9048f..e76fff8dad 100644 --- a/source/ps/ProfileViewer.cpp +++ b/source/ps/ProfileViewer.cpp @@ -194,10 +194,10 @@ void CProfileViewer::RenderProfile() // Print table and column titles. CTextRenderer textRenderer; - textRenderer.Font(font_name); - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentFont(font_name); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); textRenderer.PrintfAt(2.0f, lineSpacing, L"%hs", table->GetTitle().c_str()); - textRenderer.Translate(22.0f, lineSpacing*2.0f, 0.0f); + textRenderer.Translate(22.0f, lineSpacing*2.0f); float colX = 0.0f; for (size_t col = 0; col < columns.size(); ++col) @@ -214,7 +214,7 @@ void CProfileViewer::RenderProfile() colX += columns[col].width; } - textRenderer.Translate(0.0f, lineSpacing, 0.0f); + textRenderer.Translate(0.0f, lineSpacing); // Print rows int currentExpandId = 1; @@ -222,9 +222,9 @@ void CProfileViewer::RenderProfile() for (size_t row = 0; row < numrows; ++row) { if (table->IsHighlightRow(row)) - textRenderer.Color(1.0f, 0.5f, 0.5f); + textRenderer.SetCurrentColor(CColor(1.0f, 0.5f, 0.5f, 1.0f)); else - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); if (table->GetChild(row)) { @@ -247,14 +247,14 @@ void CProfileViewer::RenderProfile() rowColX += columns[col].width; } - textRenderer.Translate(0.0f, lineSpacing, 0.0f); + textRenderer.Translate(0.0f, lineSpacing); } - textRenderer.Color(1.0f, 1.0f, 1.0f); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 1.0f, 1.0f)); if (m->path.size() > 1) { - textRenderer.Translate(0.0f, lineSpacing, 0.0f); + textRenderer.Translate(0.0f, lineSpacing); textRenderer.Put(-15.0f, 0.0f, L"0"); textRenderer.Put(0.0f, 0.0f, L"back to parent"); } diff --git a/source/renderer/TerrainRenderer.cpp b/source/renderer/TerrainRenderer.cpp index 5142f8b253..ad28ac3d80 100644 --- a/source/renderer/TerrainRenderer.cpp +++ b/source/renderer/TerrainRenderer.cpp @@ -617,8 +617,8 @@ void TerrainRenderer::RenderPriorities(int cullGroup) CCanvas2D canvas; CTextRenderer textRenderer; - textRenderer.Font(CStrIntern("mono-stroke-10")); - textRenderer.Color(1.0f, 1.0f, 0.0f); + textRenderer.SetCurrentFont(CStrIntern("mono-stroke-10")); + textRenderer.SetCurrentColor(CColor(1.0f, 1.0f, 0.0f, 1.0f)); std::vector& visiblePatches = m->visiblePatches[cullGroup]; for (size_t i = 0; i < visiblePatches.size(); ++i)