MCPcopy Create free account
hub / github.com/OpenTTD/OpenTTD / ViewportDrawStrings

Function ViewportDrawStrings

src/viewport.cpp:1775–1809  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1773}
1774
1775static void ViewportDrawStrings(ZoomLevel zoom, const StringSpriteToDrawVector *sstdv)
1776{
1777 for (const StringSpriteToDraw &ss : *sstdv) {
1778 bool small = ss.flags.Test(ViewportStringFlag::Small);
1779 int w = ss.width;
1780 int x = UnScaleByZoom(ss.x, zoom);
1781 int y = UnScaleByZoom(ss.y, zoom);
1782 int h = WidgetDimensions::scaled.fullbevel.top + GetCharacterHeight(small ? FS_SMALL : FS_NORMAL) + WidgetDimensions::scaled.fullbevel.bottom;
1783
1784 TextColour colour = TC_WHITE;
1785 if (ss.flags.Test(ViewportStringFlag::ColourRect)) {
1786 if (ss.colour != INVALID_COLOUR) DrawFrameRect(x, y, x + w - 1, y + h - 1, ss.colour, {});
1787 colour = TC_BLACK;
1788 } else if (ss.flags.Test(ViewportStringFlag::TransparentRect)) {
1789 DrawFrameRect(x, y, x + w - 1, y + h - 1, ss.colour, FrameFlag::Transparent);
1790 }
1791
1792 if (ss.flags.Test(ViewportStringFlag::TextColour)) {
1793 if (ss.colour != INVALID_COLOUR) colour = GetColourGradient(ss.colour, SHADE_LIGHTER).ToTextColour();
1794 }
1795
1796 int left = x + WidgetDimensions::scaled.fullbevel.left;
1797 int right = x + w - 1 - WidgetDimensions::scaled.fullbevel.right;
1798 int top = y + WidgetDimensions::scaled.fullbevel.top;
1799
1800 int shadow_offset = 0;
1801 if (small && ss.flags.Test(ViewportStringFlag::Shadow)) {
1802 /* Shadow needs to be shifted 1 pixel. */
1803 shadow_offset = WidgetDimensions::scaled.fullbevel.top;
1804 DrawString(left + shadow_offset, right + shadow_offset, top, ss.string, TC_BLACK, SA_HOR_CENTER, false, FS_SMALL);
1805 }
1806
1807 DrawString(left, right, top - shadow_offset, ss.string, colour, SA_HOR_CENTER, false, small ? FS_SMALL : FS_NORMAL);
1808 }
1809}
1810
1811void ViewportDoDraw(const Viewport &vp, int left, int top, int right, int bottom)
1812{

Callers 1

ViewportDoDrawFunction · 0.85

Calls 7

UnScaleByZoomFunction · 0.85
GetCharacterHeightFunction · 0.85
GetColourGradientFunction · 0.85
TestMethod · 0.80
ToTextColourMethod · 0.80
DrawFrameRectFunction · 0.70
DrawStringFunction · 0.70

Tested by

no test coverage detected