OpenTTD Source 20241224-master-gf74b0cf984
|
Functions related to the gfx engine. More...
Go to the source code of this file.
Functions | |
void | GameLoop () |
void | CreateConsole () |
void | HandleToolbarHotkey (int hotkey) |
Handle Toolbar hotkey events - can come from a source like the MacBook Touch Bar. | |
void | HandleKeypress (uint keycode, char32_t key) |
Handle keyboard input. | |
void | HandleTextInput (const char *str, bool marked=false, const char *caret=nullptr, const char *insert_location=nullptr, const char *replacement_end=nullptr) |
Handle text input. | |
void | HandleCtrlChanged () |
State of CONTROL key has changed. | |
void | HandleMouseEvents () |
Handle a mouse event from the video driver. | |
void | UpdateWindows () |
Update the continuously changing contents of the windows, such as the viewports. | |
void | ChangeGameSpeed (bool enable_fast_forward) |
void | DrawMouseCursor () |
void | ScreenSizeChanged () |
void | GameSizeChanged () |
Size of the application screen changed. | |
void | UpdateGUIZoom () |
Resolve GUI zoom level, if auto-suggestion is requested. | |
bool | AdjustGUIZoom (bool automatic) |
Resolve GUI zoom level and adjust GUI to new zoom, if auto-suggestion is requested. | |
void | UndrawMouseCursor () |
void | RedrawScreenRect (int left, int top, int right, int bottom) |
Repaints a specific rectangle of the screen. | |
void | GfxScroll (int left, int top, int width, int height, int xo, int yo) |
Dimension | GetSpriteSize (SpriteID sprid, Point *offset=nullptr, ZoomLevel zoom=ZOOM_LVL_GUI) |
Get the size of a sprite. | |
Dimension | GetScaledSpriteSize (SpriteID sprid) |
Scale sprite size for GUI. | |
void | DrawSpriteViewport (SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub=nullptr) |
Draw a sprite in a viewport. | |
void | DrawSprite (SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub=nullptr, ZoomLevel zoom=ZOOM_LVL_GUI) |
Draw a sprite, not in a viewport. | |
void | DrawSpriteIgnorePadding (SpriteID img, PaletteID pal, const Rect &r, StringAlignment align) |
std::unique_ptr< uint32_t[]> | DrawSpriteToRgbaBuffer (SpriteID spriteId, ZoomLevel zoom=ZOOM_LVL_GUI) |
Draws a sprite to a new RGBA buffer (see Colour union) instead of drawing to the screen. | |
int | DrawString (int left, int right, int top, std::string_view str, TextColour colour=TC_FROMSTRING, StringAlignment align=SA_LEFT, bool underline=false, FontSize fontsize=FS_NORMAL) |
Draw string, possibly truncated to make it fit in its allocated space. | |
int | DrawString (int left, int right, int top, StringID str, TextColour colour=TC_FROMSTRING, StringAlignment align=SA_LEFT, bool underline=false, FontSize fontsize=FS_NORMAL) |
Draw string, possibly truncated to make it fit in its allocated space. | |
int | DrawStringMultiLine (int left, int right, int top, int bottom, std::string_view str, TextColour colour=TC_FROMSTRING, StringAlignment align=(SA_TOP|SA_LEFT), bool underline=false, FontSize fontsize=FS_NORMAL) |
Draw string, possibly over multiple lines. | |
int | DrawStringMultiLine (int left, int right, int top, int bottom, StringID str, TextColour colour=TC_FROMSTRING, StringAlignment align=(SA_TOP|SA_LEFT), bool underline=false, FontSize fontsize=FS_NORMAL) |
Draw string, possibly over multiple lines. | |
void | DrawCharCentered (char32_t c, const Rect &r, TextColour colour) |
Draw single character horizontally centered around (x,y) | |
void | GfxFillRect (int left, int top, int right, int bottom, int colour, FillRectMode mode=FILLRECT_OPAQUE) |
Applies a certain FillRectMode-operation to a rectangle [left, right] x [top, bottom] on the screen. | |
void | GfxFillPolygon (const std::vector< Point > &shape, int colour, FillRectMode mode=FILLRECT_OPAQUE) |
Fill a polygon with colour. | |
void | GfxDrawLine (int left, int top, int right, int bottom, int colour, int width=1, int dash=0) |
void | DrawBox (int x, int y, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3) |
Draws the projection of a parallelepiped. | |
void | DrawRectOutline (const Rect &r, int colour, int width=1, int dash=0) |
Draw the outline of a Rect. | |
int | DrawString (const Rect &r, std::string_view str, TextColour colour=TC_FROMSTRING, StringAlignment align=SA_LEFT, bool underline=false, FontSize fontsize=FS_NORMAL) |
int | DrawString (const Rect &r, StringID str, TextColour colour=TC_FROMSTRING, StringAlignment align=SA_LEFT, bool underline=false, FontSize fontsize=FS_NORMAL) |
int | DrawStringMultiLine (const Rect &r, std::string_view str, TextColour colour=TC_FROMSTRING, StringAlignment align=(SA_TOP|SA_LEFT), bool underline=false, FontSize fontsize=FS_NORMAL) |
int | DrawStringMultiLine (const Rect &r, StringID str, TextColour colour=TC_FROMSTRING, StringAlignment align=(SA_TOP|SA_LEFT), bool underline=false, FontSize fontsize=FS_NORMAL) |
void | GfxFillRect (const Rect &r, int colour, FillRectMode mode=FILLRECT_OPAQUE) |
Dimension | GetStringBoundingBox (std::string_view str, FontSize start_fontsize=FS_NORMAL) |
Return the string dimension in pixels. | |
Dimension | GetStringBoundingBox (StringID strid, FontSize start_fontsize=FS_NORMAL) |
Get bounding box of a string. | |
uint | GetStringListWidth (std::span< const StringID > list, FontSize fontsize=FS_NORMAL) |
Get maximum width of a list of strings. | |
Dimension | GetStringListBoundingBox (std::span< const StringID > list, FontSize fontsize=FS_NORMAL) |
Get maximum dimension of a list of strings. | |
int | GetStringHeight (std::string_view str, int maxw, FontSize fontsize=FS_NORMAL) |
Calculates height of string (in pixels). | |
int | GetStringHeight (StringID str, int maxw) |
Calculates height of string (in pixels). | |
int | GetStringLineCount (StringID str, int maxw) |
Calculates number of lines of string. | |
Dimension | GetStringMultiLineBoundingBox (StringID str, const Dimension &suggestion) |
Calculate string bounding box for multi-line strings. | |
Dimension | GetStringMultiLineBoundingBox (std::string_view str, const Dimension &suggestion) |
Calculate string bounding box for multi-line strings. | |
void | LoadStringWidthTable (bool monospace=false) |
Initialize _stringwidth_table cache. | |
void | DrawDirtyBlocks () |
Repaints the rectangle blocks which are marked as 'dirty'. | |
void | AddDirtyBlock (int left, int top, int right, int bottom) |
Extend the internal _invalid_rect rectangle to contain the rectangle defined by the given parameters. | |
void | MarkWholeScreenDirty () |
This function mark the whole screen as dirty. | |
void | CheckBlitter () |
Check whether we still use the right blitter, or use another (better) one. | |
bool | FillDrawPixelInfo (DrawPixelInfo *n, int left, int top, int width, int height) |
Set up a clipping area for only drawing into a certain area. | |
bool | FillDrawPixelInfo (DrawPixelInfo *n, const Rect &r) |
int | CenterBounds (int min, int max, int size) |
Determine where to draw a centred object inside a widget. | |
void | DrawOverlappedWindowForAll (int left, int top, int right, int bottom) |
From a rectangle that needs redrawing, find the windows that intersect with the rectangle. | |
void | SetMouseCursorBusy (bool busy) |
Set or unset the ZZZ cursor. | |
void | SetMouseCursor (CursorID cursor, PaletteID pal) |
Assign a single non-animated sprite to the cursor. | |
void | SetAnimatedMouseCursor (const AnimCursor *table) |
Assign an animation to the cursor. | |
void | CursorTick () |
void | UpdateCursorSize () |
Update cursor dimension. | |
bool | ChangeResInGame (int w, int h) |
void | SortResolutions () |
bool | ToggleFullScreen (bool fs) |
uint8_t | GetCharacterWidth (FontSize size, char32_t key) |
Return width of character glyph. | |
uint8_t | GetDigitWidth (FontSize size=FS_NORMAL) |
Return the maximum width of single digit. | |
void | GetBroadestDigit (uint *front, uint *next, FontSize size=FS_NORMAL) |
Determine the broadest digits for guessing the maximum width of a n-digit number. | |
int | GetCharacterHeight (FontSize size) |
Get height of a character for a given font size. | |
Variables | |
uint8_t | _dirkeys |
1 = left, 2 = up, 4 = right, 8 = down | |
bool | _fullscreen |
uint8_t | _support8bpp |
CursorVars | _cursor |
bool | _ctrl_pressed |
Is Ctrl pressed? | |
bool | _shift_pressed |
Is Shift pressed? | |
uint16_t | _game_speed |
Current game-speed; 100 is 1x, 0 is infinite. | |
bool | _left_button_down |
Is left mouse button pressed? | |
bool | _left_button_clicked |
Is left mouse button clicked? | |
bool | _right_button_down |
Is right mouse button pressed? | |
bool | _right_button_clicked |
Is right mouse button clicked? | |
DrawPixelInfo | _screen |
bool | _screen_disable_anim |
Disable palette animation (important for 32bpp-anim blitter during giant screenshot) | |
std::vector< Dimension > | _resolutions |
List of resolutions. | |
Dimension | _cur_resolution |
The current resolution. | |
Palette | _cur_palette |
Current palette. | |
DrawPixelInfo * | _cur_dpi |
Functions related to the gfx engine.
Definition in file gfx_func.h.
bool AdjustGUIZoom | ( | bool | automatic | ) |
Resolve GUI zoom level and adjust GUI to new zoom, if auto-suggestion is requested.
automatic | Set if the change is occuring due to OS DPI scaling being changed. |
Definition at line 1793 of file gfx.cpp.
References _font_zoom, _gui_scale, _gui_zoom, _settings_client, Clamp(), VideoDriver::ClearSystemSprites(), VideoDriver::GetInstance(), GfxClearFontSpriteCache(), ClientSettings::gui, LoadStringWidthTable(), SetupWidgetDimensions(), UpdateAllVirtCoords(), UpdateCursorSize(), UpdateGUIZoom(), GUISettings::zoom_max, and GUISettings::zoom_min.
Referenced by GameOptionsWindow::OnClick(), and GameOptionsWindow::OnMouseLoop().
|
inline |
Determine where to draw a centred object inside a widget.
min | The top or left coordinate. |
max | The bottom or right coordinate. |
size | The height or width of the object to draw. |
Definition at line 166 of file gfx_func.h.
Referenced by DrawAircraftImage(), DrawButtonDropdown(), DrawCharCentered(), DrawCloseBox(), NetworkClientListWindow::DrawCompany(), DrawCompanyManagerFace(), DrawRoadVehImage(), DrawShipImage(), BuildSignalWindow::DrawSignalSprite(), DrawTrainImage(), NewGRFInspectWindow::DrawVehicleChainWidget(), BuildAirportWindow::DrawWidget(), CompanyWindow::DrawWidget(), GenerateProgressWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), NewGRFWindow::DrawWidget(), ScanProgressWindow::DrawWidget(), NewsWindow::DrawWidget(), StatusBarWindow::DrawWidget(), BuildTreesWindow::DrawWidget(), RefitWindow::DrawWidget(), VehicleDetailsWindow::DrawWidget(), VehicleViewWindow::DrawWidget(), ScriptDebugWindow::DrawWidgetCompanyButton(), GetAlignedPosition(), and SmallMapWindow::GetStationMiddle().
void CheckBlitter | ( | ) |
Check whether we still use the right blitter, or use another (better) one.
Definition at line 313 of file gfxinit.cpp.
References GfxClearSpriteCache(), ReInitAllWindows(), and SwitchNewGRFBlitter().
Referenced by MenuClickSettings(), and GameOptionsWindow::OnDropdownSelect().
void DrawBox | ( | int | x, |
int | y, | ||
int | dx1, | ||
int | dy1, | ||
int | dx2, | ||
int | dy2, | ||
int | dx3, | ||
int | dy3 | ||
) |
Draws the projection of a parallelepiped.
This can be used to draw boxes in world coordinates.
x | Screen X-coordinate of top front corner. |
y | Screen Y-coordinate of top front corner. |
dx1 | Screen X-length of first edge. |
dy1 | Screen Y-length of first edge. |
dx2 | Screen X-length of second edge. |
dy2 | Screen Y-length of second edge. |
dx3 | Screen X-length of third edge. |
dy3 | Screen Y-length of third edge. |
Definition at line 418 of file gfx.cpp.
References PC_WHITE.
Referenced by ViewportDrawBoundingBoxes().
void DrawCharCentered | ( | char32_t | c, |
const Rect & | r, | ||
TextColour | colour | ||
) |
Draw single character horizontally centered around (x,y)
c | Character (glyph) to draw |
r | Rectangle to draw character within |
colour | Colour to use, for details see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h |
Definition at line 905 of file gfx.cpp.
References BM_COLOUR_REMAP, CenterBounds(), FS_NORMAL, GetCharacterHeight(), GetCharacterWidth(), GetGlyph(), and SetColourRemap().
Referenced by OskWindow::DrawWidget().
void DrawOverlappedWindowForAll | ( | int | left, |
int | top, | ||
int | right, | ||
int | bottom | ||
) |
From a rectangle that needs redrawing, find the windows that intersect with the rectangle.
These windows should be re-painted.
left | Left edge of the rectangle that should be repainted |
top | Top edge of the rectangle that should be repainted |
right | Right edge of the rectangle that should be repainted |
bottom | Bottom edge of the rectangle that should be repainted |
Definition at line 919 of file window.cpp.
References DrawOverlappedWindow(), and MayBeShown().
Referenced by RedrawScreenRect().
void DrawRectOutline | ( | const Rect & | r, |
int | colour, | ||
int | width, | ||
int | dash | ||
) |
Draw the outline of a Rect.
r | Rect to draw. |
colour | Colour of the outline. |
width | Width of the outline. |
dash | Length of dashes for dashed lines. 0 means solid lines. |
Definition at line 456 of file gfx.cpp.
Referenced by CargoesField::Draw(), and SpriteAlignerWindow::DrawWidget().
void DrawSprite | ( | SpriteID | img, |
PaletteID | pal, | ||
int | x, | ||
int | y, | ||
const SubSprite * | sub, | ||
ZoomLevel | zoom | ||
) |
Draw a sprite, not in a viewport.
img | Image number to draw |
pal | Palette to use. |
x | Left coordinate of image in pixels |
y | Top coordinate of image in pixels |
sub | If available, draw only specified part of the sprite |
zoom | Zoom level of sprite |
Definition at line 988 of file gfx.cpp.
References BM_NORMAL, BM_TRANSPARENT, BM_TRANSPARENT_REMAP, GB(), GetBlitterMode(), HasBit(), Normal, PALETTE_MODIFIER_TRANSPARENT, PALETTE_TEXT_RECOLOUR, PALETTE_TO_TRANSPARENT, PALETTE_WIDTH, Recolour, SetColourRemap(), and SPRITE_WIDTH.
Referenced by VehicleSpriteSeq::Draw(), StoryBookWindow::DrawActionElement(), NetworkClientListWindow::DrawButtons(), DrawCargoIconOverlay(), DrawCargoIcons(), DrawCloseBox(), DrawCommonTileSeqInGUI(), NetworkClientListWindow::DrawCompany(), DrawCompanyIcon(), DrawCompanyManagerFace(), DrawEngineList(), VehicleGroupWindow::DrawGroupInfo(), DrawHouseInGUI(), DrawNewHouseTileInGUI(), DrawNewObjectTileInGUI(), DrawOrderString(), TownAuthorityWindow::DrawRatings(), DrawRoadDepotSprite(), DrawRoadStopTile(), SettingsPage::DrawSetting(), BuildSignalWindow::DrawSignalSprite(), DrawStationTile(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehicleProfitButton(), DrawVehicleRefitWindow(), BuildAirportWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CompanyWindow::DrawWidget(), SpriteAlignerWindow::DrawWidget(), NewGRFWindow::DrawWidget(), PickerWindow::DrawWidget(), StatusBarWindow::DrawWidget(), ScenarioEditorLandscapeGenerationWindow::DrawWidget(), TownDirectoryWindow::DrawWidget(), TransparenciesWindow::DrawWidget(), BuildTreesWindow::DrawWidget(), and MainWindow::OnPaint().
void DrawSpriteIgnorePadding | ( | SpriteID | img, |
PaletteID | pal, | ||
const Rect & | r, | ||
StringAlignment | align | ||
) |
Definition at line 318 of file widget.cpp.
Draws a sprite to a new RGBA buffer (see Colour union) instead of drawing to the screen.
spriteId | The sprite to draw. |
zoom | The zoom level at which to draw the sprites. |
Definition at line 1144 of file gfx.cpp.
References _cur_palette, _screen_disable_anim, _settings_client, BM_NORMAL, Colour::data, GB(), BlitterFactory::GetCurrentBlitter(), Blitter::GetScreenDepth(), GetSpriteSize(), ClientSettings::gui, Normal, Palette::palette, Backup< T >::Restore(), SPRITE_WIDTH, and GUISettings::zoom_max.
Draw a sprite in a viewport.
img | Image number to draw |
pal | Palette to use. |
x | Left coordinate of image in viewport, scaled by zoom |
y | Top coordinate of image in viewport, scaled by zoom |
sub | If available, draw only specified part of the sprite |
Definition at line 960 of file gfx.cpp.
References BM_NORMAL, BM_TRANSPARENT, BM_TRANSPARENT_REMAP, GB(), GetBlitterMode(), HasBit(), Normal, PALETTE_MODIFIER_TRANSPARENT, PALETTE_TEXT_RECOLOUR, PALETTE_TO_TRANSPARENT, PALETTE_WIDTH, Recolour, SetColourRemap(), and SPRITE_WIDTH.
|
inline |
Definition at line 110 of file gfx_func.h.
|
inline |
Definition at line 115 of file gfx_func.h.
int DrawString | ( | int | left, |
int | right, | ||
int | top, | ||
std::string_view | str, | ||
TextColour | colour, | ||
StringAlignment | align, | ||
bool | underline, | ||
FontSize | fontsize | ||
) |
Draw string, possibly truncated to make it fit in its allocated space.
left | The left most position to draw on. |
right | The right most position to draw on. |
top | The top most position to draw on. |
str | String to draw. |
colour | Colour used for drawing the string, for details see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h |
align | The alignment of the string when drawing left-to-right. In the case a right-to-left language is chosen this is inverted so it will be drawn in the right direction. |
underline | Whether to underline what has been drawn or not. |
fontsize | The size of the initial characters. |
Definition at line 657 of file gfx.cpp.
References DrawLayoutLine(), FS_LARGE, FS_MONO, FS_NORMAL, FS_SMALL, and GetCharacterHeight().
Referenced by CargoesField::Draw(), StoryBookWindow::DrawActionElement(), TownAuthorityWindow::DrawActions(), DrawAircraftDetails(), DrawAircraftPurchaseInfo(), TimetableWindow::DrawArrivalDeparturePanel(), DrawButtonDropdown(), DrawCaption(), StationViewWindow::DrawCargoRatings(), DrawCategories(), DrawCategory(), NetworkClientListWindow::DrawCompany(), CompanyInfrastructureWindow::DrawCountLine(), NetworkContentListWindow::DrawDetails(), FramerateWindow::DrawElementTimesColumn(), DrawEngineList(), StationViewWindow::DrawEntries(), DrawFrame(), BaseGraphWindow::DrawGraph(), VehicleGroupWindow::DrawGroupInfo(), SmallMapWindow::DrawIndustryNames(), IndustryViewWindow::DrawInfo(), DrawInset(), DrawLabel(), GoalListWindow::DrawListColumn(), NetworkContentListWindow::DrawMatrix(), DrawNewsString(), DrawOrderString(), DrawPrice(), TownAuthorityWindow::DrawRatings(), DrawRoadVehDetails(), NetworkGameWindow::DrawServerLine(), SettingEntry::DrawSetting(), SettingsPage::DrawSetting(), DrawShipDetails(), DrawSliderWidget(), DrawSmallOrderList(), DrawString(), TimetableWindow::DrawSummaryPanel(), DrawText(), TimetableWindow::DrawTimetablePanel(), SmallMapWindow::DrawTowns(), DrawTrainDetails(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehiclePurchaseInfo(), DrawVehicleRefitWindow(), AIConfigWindow::DrawWidget(), BuildAirportWindow::DrawWidget(), ReplaceVehicleWindow::DrawWidget(), CheatWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CompanyInfrastructureWindow::DrawWidget(), EnginePreviewWindow::DrawWidget(), SaveLoadWindow::DrawWidget(), FramerateWindow::DrawWidget(), FrametimeGraphWindow::DrawWidget(), GSConfigWindow::DrawWidget(), GenerateProgressWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), BaseGraphWindow::DrawWidget(), PaymentRatesGraphWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), IndustryProductionGraphWindow::DrawWidget(), VehicleGroupWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), IndustryDirectoryWindow::DrawWidget(), PerformanceLeagueWindow::DrawWidget(), ScriptLeagueWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), LandInfoWindow::DrawWidget(), AboutWindow::DrawWidget(), MusicTrackSelectionWindow::DrawWidget(), MusicWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), NetworkStartServerWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), SpriteAlignerWindow::DrawWidget(), NewGRFParametersWindow::DrawWidget(), NewGRFWindow::DrawWidget(), SavePresetWindow::DrawWidget(), ScanProgressWindow::DrawWidget(), MessageHistoryWindow::DrawWidget(), OrdersWindow::DrawWidget(), PickerWindow::DrawWidget(), ScriptListWindow::DrawWidget(), ScriptSettingsWindow::DrawWidget(), GameSettingsWindow::DrawWidget(), SignListWindow::DrawWidget(), SmallMapWindow::DrawWidget(), CompanyStationsWindow::DrawWidget(), SelectStationWindow< T >::DrawWidget(), StatusBarWindow::DrawWidget(), StoryBookWindow::DrawWidget(), SubsidyListWindow::DrawWidget(), TextfileWindow::DrawWidget(), ScenarioEditorToolbarWindow::DrawWidget(), TownViewWindow::DrawWidget(), TownDirectoryWindow::DrawWidget(), VehicleDetailsWindow::DrawWidget(), VehicleViewWindow::DrawWidget(), ScriptDebugWindow::DrawWidgetLog(), DrawYearColumn(), BuildAirportWindow::OnPaint(), IConsoleWindow::OnPaint(), HighScoreWindow::OnPaint(), StationsWndShowStationRating(), TrainDetailsCapacityTab(), TrainDetailsCargoTab(), and TrainDetailsInfoTab().
int DrawString | ( | int | left, |
int | right, | ||
int | top, | ||
StringID | str, | ||
TextColour | colour, | ||
StringAlignment | align, | ||
bool | underline, | ||
FontSize | fontsize | ||
) |
Draw string, possibly truncated to make it fit in its allocated space.
left | The left most position to draw on. |
right | The right most position to draw on. |
top | The top most position to draw on. |
str | String to draw. |
colour | Colour used for drawing the string, for details see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h |
align | The alignment of the string when drawing left-to-right. In the case a right-to-left language is chosen this is inverted so it will be drawn in the right direction. |
underline | Whether to underline what has been drawn or not. |
fontsize | The size of the initial characters. |
Definition at line 693 of file gfx.cpp.
References DrawString(), and GetString().
|
inline |
Definition at line 120 of file gfx_func.h.
|
inline |
Definition at line 125 of file gfx_func.h.
int DrawStringMultiLine | ( | int | left, |
int | right, | ||
int | top, | ||
int | bottom, | ||
std::string_view | str, | ||
TextColour | colour, | ||
StringAlignment | align, | ||
bool | underline, | ||
FontSize | fontsize | ||
) |
Draw string, possibly over multiple lines.
left | The left most position to draw on. |
right | The right most position to draw on. |
top | The top most position to draw on. |
bottom | The bottom most position to draw on. |
str | String to draw. |
colour | Colour used for drawing the string, for details see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h |
align | The horizontal and vertical alignment of the string. |
underline | Whether to underline all strings |
fontsize | The size of the initial characters. |
Definition at line 774 of file gfx.cpp.
References DrawLayoutLine(), Layouter::GetBounds(), RoundDivSU(), SA_BOTTOM, SA_TOP, SA_VERT_CENTER, and SA_VERT_MASK.
Referenced by StationViewWindow::DrawAcceptedCargo(), StationViewWindow::DrawCargoRatings(), NetworkContentListWindow::DrawDetails(), BaseGraphWindow::DrawGraph(), IndustryViewWindow::DrawInfo(), DrawStationCoverageAreaText(), DrawStringMultiLine(), BuildAirportWindow::DrawWidget(), BootstrapErrorWindow::DrawWidget(), BootstrapAskForDownloadWindow::DrawWidget(), BuildBridgeWindow::DrawWidget(), CompanyWindow::DrawWidget(), BuyCompanyWindow::DrawWidget(), EnginePreviewWindow::DrawWidget(), ErrmsgWindow::DrawWidget(), GoalQuestionWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), SelectGameWindow::DrawWidget(), ScriptLeagueWindow::DrawWidget(), LandInfoWindow::DrawWidget(), TooltipsWindow::DrawWidget(), QueryWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), NetworkAskRelayWindow::DrawWidget(), NetworkAskSurveyWindow::DrawWidget(), NewGRFParametersWindow::DrawWidget(), NewsWindow::DrawWidget(), BuildObjectWindow::DrawWidget(), ScriptListWindow::DrawWidget(), GameOptionsWindow::DrawWidget(), GameSettingsWindow::DrawWidget(), StoryBookWindow::DrawWidget(), TextfileWindow::DrawWidget(), TownAuthorityWindow::DrawWidget(), TownViewWindow::DrawWidget(), BuildHouseWindow::DrawWidget(), RefitWindow::DrawWidget(), NetworkDrawChatMessage(), IConsoleWindow::OnPaint(), EndGameWindow::OnPaint(), HighScoreWindow::OnPaint(), GameSettingsWindow::OnPaint(), ShowAdditionalText(), and ShowRefitOptionsList().
int DrawStringMultiLine | ( | int | left, |
int | right, | ||
int | top, | ||
int | bottom, | ||
StringID | str, | ||
TextColour | colour, | ||
StringAlignment | align, | ||
bool | underline, | ||
FontSize | fontsize | ||
) |
Draw string, possibly over multiple lines.
left | The left most position to draw on. |
right | The right most position to draw on. |
top | The top most position to draw on. |
bottom | The bottom most position to draw on. |
str | String to draw. |
colour | Colour used for drawing the string, for details see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h |
align | The horizontal and vertical alignment of the string. |
underline | Whether to underline all strings |
fontsize | The size of the initial characters. |
Definition at line 836 of file gfx.cpp.
References DrawStringMultiLine(), and GetString().
|
inline |
Definition at line 154 of file gfx_func.h.
bool FillDrawPixelInfo | ( | DrawPixelInfo * | n, |
int | left, | ||
int | top, | ||
int | width, | ||
int | height | ||
) |
Set up a clipping area for only drawing into a certain area.
To do this, Fill a DrawPixelInfo object with the supplied relative rectangle, backup the original (calling) _cur_dpi and assign the just returned DrawPixelInfo _cur_dpi. When you are done, give restore _cur_dpi's original value
*n | the DrawPixelInfo that will be the clipping rectangle box allowed for drawing |
left,top,width,height | the relative coordinates of the clipping rectangle relative to the current _cur_dpi. This will most likely be the offset from the calling window coordinates |
Definition at line 1548 of file gfx.cpp.
References BlitterFactory::GetCurrentBlitter(), Blitter::MoveTo(), and ZOOM_LVL_MIN.
Referenced by NWidgetMatrix::Draw(), NWidgetLeaf::Draw(), DrawRoadVehImage(), DrawTrainImage(), BuildDocksDepotWindow::DrawWidget(), IndustryDirectoryWindow::DrawWidget(), IndustryCargoesWindow::DrawWidget(), SpriteAlignerWindow::DrawWidget(), BuildObjectWindow::DrawWidget(), PickerWindow::DrawWidget(), BuildRailStationWindow::DrawWidget(), BuildRailDepotWindow::DrawWidget(), BuildRoadDepotWindow::DrawWidget(), BuildRoadStationWindow::DrawWidget(), SmallMapWindow::DrawWidget(), StoryBookWindow::DrawWidget(), TextfileWindow::DrawWidget(), and ScriptDebugWindow::DrawWidgetLog().
void GameLoop | ( | ) |
Definition at line 1340 of file openttd.cpp.
void GameSizeChanged | ( | ) |
Size of the application screen changed.
Adapt the game screen-size, re-allocate the open windows, and repaint everything
Definition at line 589 of file main_gui.cpp.
References _cur_resolution, MarkWholeScreenDirty(), and RelocateAllWindows().
Referenced by VideoDriver_SDL_Base::ClientSizeChanged(), and VideoDriver_Win32Base::MakeWindow().
void GetBroadestDigit | ( | uint * | front, |
uint * | next, | ||
FontSize | size | ||
) |
Determine the broadest digits for guessing the maximum width of a n-digit number.
[out] | front | Broadest digit, which is not 0. (Use this digit as first digit for numbers with more than one digit.) |
[out] | next | Broadest digit, including 0. (Use this digit for all digits, except the first one; or for numbers with only one digit.) |
size | Font of the digit |
Definition at line 1255 of file gfx.cpp.
References GetCharacterWidth().
Referenced by SetDParamMaxDigits().
int GetCharacterHeight | ( | FontSize | size | ) |
Get height of a character for a given font size.
size | Font size to get height of |
Definition at line 77 of file fontcache.cpp.
References FontCache::Get(), and FontCache::GetHeight().
Referenced by CargoesField::CargoClickedAt(), CargoesField::CargoLabelClickedAt(), CheckClickOnViewportSign(), TextfileWindow::CheckHyperlinkClick(), CargoesField::Draw(), StationViewWindow::DrawAcceptedCargo(), TownAuthorityWindow::DrawActions(), DrawAircraftDetails(), DrawAircraftPurchaseInfo(), TimetableWindow::DrawArrivalDeparturePanel(), DrawButtonDropdown(), StationViewWindow::DrawCargoRatings(), DrawCategories(), DrawCategory(), DrawCharCentered(), NetworkClientListWindow::DrawCompany(), CompanyInfrastructureWindow::DrawCountLine(), NetworkContentListWindow::DrawDetails(), FramerateWindow::DrawElementTimesColumn(), DrawEngineList(), StationViewWindow::DrawEntries(), DrawFrame(), BaseGraphWindow::DrawGraph(), SmallMapWindow::DrawIndustryNames(), IndustryViewWindow::DrawInfo(), GoalListWindow::DrawListColumn(), NetworkContentListWindow::DrawMatrix(), DrawOrderString(), TownAuthorityWindow::DrawRatings(), DrawRoadVehDetails(), NetworkGameWindow::DrawServerLine(), SettingEntry::DrawSetting(), SettingsPage::DrawSetting(), DrawShipDetails(), DrawSliderWidget(), DrawSmallOrderList(), DrawString(), TimetableWindow::DrawSummaryPanel(), TimetableWindow::DrawTimetablePanel(), SmallMapWindow::DrawTowns(), DrawTrainDetails(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehiclePurchaseInfo(), DrawVehicleRefitWindow(), CheatWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CompanyInfrastructureWindow::DrawWidget(), EnginePreviewWindow::DrawWidget(), SaveLoadWindow::DrawWidget(), FramerateWindow::DrawWidget(), FrametimeGraphWindow::DrawWidget(), GSConfigWindow::DrawWidget(), GenerateProgressWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), BaseGraphWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), VehicleGroupWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), PerformanceLeagueWindow::DrawWidget(), ScriptLeagueWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), LandInfoWindow::DrawWidget(), MusicTrackSelectionWindow::DrawWidget(), BaseNetworkContentDownloadStatusWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), NewGRFParametersWindow::DrawWidget(), NewGRFWindow::DrawWidget(), SavePresetWindow::DrawWidget(), ScanProgressWindow::DrawWidget(), ScriptListWindow::DrawWidget(), ScriptSettingsWindow::DrawWidget(), GameSettingsWindow::DrawWidget(), SignListWindow::DrawWidget(), SmallMapWindow::DrawWidget(), CompanyStationsWindow::DrawWidget(), StatusBarWindow::DrawWidget(), StoryBookWindow::DrawWidget(), SubsidyListWindow::DrawWidget(), TextfileWindow::DrawWidget(), ScenarioEditorToolbarWindow::DrawWidget(), TownViewWindow::DrawWidget(), TownDirectoryWindow::DrawWidget(), VehicleDetailsWindow::DrawWidget(), VehicleViewWindow::DrawWidget(), DrawYearCategory(), DrawYearColumn(), StoryBookWindow::EnsureStoryPageElementLayout(), GetAutoPlacePosition(), TownViewWindow::GetDesiredInfoHeight(), GetEngineListHeight(), StoryBookWindow::GetHeadHeight(), SmallMapWindow::GetLegendHeight(), SmallMapWindow::GetPositionOnLegend(), VehicleDetailsWindow::GetRoadVehDetailsHeight(), GetTotalCategoriesHeight(), GetVehicleListHeight(), LocalGetWindowPlacement(), ViewportSign::MarkDirty(), NetworkDrawChatMessage(), NetworkReInitChatBoxSize(), FramerateWindow::OnClick(), BaseGraphWindow::OnClick(), MusicTrackSelectionWindow::OnClick(), StationViewWindow::OnClick(), TownAuthorityWindow::OnClick(), IConsoleWindow::OnInit(), PaymentRatesGraphWindow::OnInit(), IndustryProductionGraphWindow::OnInit(), BuildIndustryWindow::OnInit(), IndustryViewWindow::OnInit(), IndustryCargoesWindow::OnInit(), SmallMapWindow::OnInit(), BuildAirportWindow::OnPaint(), ReplaceVehicleWindow::OnPaint(), BuildVehicleWindow::OnPaint(), HighScoreWindow::OnPaint(), GameSettingsWindow::OnPaint(), FramerateWindow::OnResize(), TextfileWindow::ReflowContent(), NWidgetResizeBase::SetMinimalSize(), NWidgetResizeBase::SetMinimalTextLines(), NWidgetBackground::SetupSmallestSize(), StationsWndShowStationRating(), NWidgetResizeBase::UpdateMultilineWidgetSize(), AIConfigWindow::UpdateWidgetSize(), BuildAirportWindow::UpdateWidgetSize(), ReplaceVehicleWindow::UpdateWidgetSize(), BuildVehicleWindow::UpdateWidgetSize(), CheatWindow::UpdateWidgetSize(), CompanyFinancesWindow::UpdateWidgetSize(), SelectCompanyLiveryWindow::UpdateWidgetSize(), CompanyInfrastructureWindow::UpdateWidgetSize(), EnginePreviewWindow::UpdateWidgetSize(), SaveLoadWindow::UpdateWidgetSize(), FramerateWindow::UpdateWidgetSize(), GSConfigWindow::UpdateWidgetSize(), GenerateLandscapeWindow::UpdateWidgetSize(), GenerateProgressWindow::UpdateWidgetSize(), BaseGraphWindow::UpdateWidgetSize(), PaymentRatesGraphWindow::UpdateWidgetSize(), PerformanceRatingDetailWindow::UpdateWidgetSize(), BuildIndustryWindow::UpdateWidgetSize(), PerformanceLeagueWindow::UpdateWidgetSize(), ScriptLeagueWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), AboutWindow::UpdateWidgetSize(), NetworkContentListWindow::UpdateWidgetSize(), BaseNetworkContentDownloadStatusWindow::UpdateWidgetSize(), NetworkGameWindow::UpdateWidgetSize(), NetworkClientListWindow::UpdateWidgetSize(), NewGRFInspectWindow::UpdateWidgetSize(), SpriteAlignerWindow::UpdateWidgetSize(), NewGRFParametersWindow::UpdateWidgetSize(), NewGRFWindow::UpdateWidgetSize(), SavePresetWindow::UpdateWidgetSize(), ScanProgressWindow::UpdateWidgetSize(), MessageHistoryWindow::UpdateWidgetSize(), OrdersWindow::UpdateWidgetSize(), PickerWindow::UpdateWidgetSize(), ScriptListWindow::UpdateWidgetSize(), ScriptSettingsWindow::UpdateWidgetSize(), ScriptDebugWindow::UpdateWidgetSize(), GameSettingsWindow::UpdateWidgetSize(), SignListWindow::UpdateWidgetSize(), CompanyStationsWindow::UpdateWidgetSize(), StationViewWindow::UpdateWidgetSize(), StoryBookWindow::UpdateWidgetSize(), SubsidyListWindow::UpdateWidgetSize(), TextfileWindow::UpdateWidgetSize(), TimetableWindow::UpdateWidgetSize(), TownAuthorityWindow::UpdateWidgetSize(), RefitWindow::UpdateWidgetSize(), VehicleDetailsWindow::UpdateWidgetSize(), VehicleViewWindow::UpdateWidgetSize(), and ViewportAddString().
uint8_t GetCharacterWidth | ( | FontSize | size, |
char32_t | key | ||
) |
Return width of character glyph.
size | Font of the character |
key | Character code glyph |
Definition at line 1227 of file gfx.cpp.
References _stringwidth_table, and GetGlyphWidth().
Referenced by DrawCharCentered(), GetBroadestDigit(), GetDigitWidth(), FallbackParagraphLayout::NextLine(), and IConsoleWindow::OnInit().
uint8_t GetDigitWidth | ( | FontSize | size | ) |
Return the maximum width of single digit.
size | Font of the digit |
Definition at line 1240 of file gfx.cpp.
References GetCharacterWidth().
Referenced by BuildSignalWindow::UpdateWidgetSize().
Scale sprite size for GUI.
Offset is ignored.
Definition at line 54 of file widget.cpp.
References GetSpriteSize(), ScaleGUITrad(), and ZOOM_LVL_NORMAL.
Referenced by DrawEngineList(), VehicleViewWindow::DrawWidget(), QueryString::GetBoundingRect(), QueryString::GetCaretPosition(), QueryString::GetCharAtPosition(), DepotWindow::OnInit(), NetworkContentListWindow::OnInit(), NetworkGameWindow::OnInit(), NWidgetLeaf::SetupSmallestSize(), BuildBridgeWindow::UpdateWidgetSize(), SelectCompanyManagerFaceWindow::UpdateWidgetSize(), CompanyWindow::UpdateWidgetSize(), BuyCompanyWindow::UpdateWidgetSize(), ErrmsgWindow::UpdateWidgetSize(), NewGRFWindow::UpdateWidgetSize(), NewsWindow::UpdateWidgetSize(), and VehicleViewWindow::UpdateWidgetSize().
Get the size of a sprite.
sprid | Sprite to examine. | |
[out] | offset | Optionally returns the sprite position offset. |
zoom | The zoom level applicable to the sprite. |
Definition at line 922 of file gfx.cpp.
References Sprite::height, Normal, UnScaleByZoom(), Sprite::width, Sprite::x_offs, and Sprite::y_offs.
Referenced by VehicleGroupWindow::ComputeGroupInfoSize(), StoryBookWindow::DrawActionElement(), DrawCargoIconOverlay(), DrawCloseBox(), NetworkClientListWindow::DrawCompany(), DrawCompanyManagerFace(), DrawEngineList(), DrawOrderString(), BuildSignalWindow::DrawSignalSprite(), DrawSpriteToRgbaBuffer(), TimetableWindow::DrawTimetablePanel(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehicleRefitWindow(), BuildAirportWindow::DrawWidget(), CompanyWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), NewGRFWindow::DrawWidget(), OrdersWindow::DrawWidget(), PickerWindow::DrawWidget(), SignListWindow::DrawWidget(), StatusBarWindow::DrawWidget(), TownDirectoryWindow::DrawWidget(), ScriptDebugWindow::DrawWidgetCompanyButton(), GetLargestCargoIconSize(), GetMaxTreeSpriteSize(), StoryBookWindow::GetPageElementHeight(), GetRailTypeDropDownList(), GetScaledSpriteSize(), MakeCompanyButtonRows(), MakeNWidgetCompanyLines(), CheatWindow::OnInit(), SelectCompanyManagerFaceWindow::OnInit(), BuildSignalWindow::OnInit(), GameSettingsWindow::OnInit(), TownAuthorityWindow::OnInit(), MainWindow::OnPaint(), NetworkClientListWindow::OnTooltip(), BuildAirportWindow::UpdateWidgetSize(), SelectCompanyLiveryWindow::UpdateWidgetSize(), CompanyWindow::UpdateWidgetSize(), PerformanceLeagueWindow::UpdateWidgetSize(), ScriptLeagueWindow::UpdateWidgetSize(), NetworkGameWindow::UpdateWidgetSize(), NetworkClientListWindow::UpdateWidgetSize(), SignListWindow::UpdateWidgetSize(), and TownDirectoryWindow::UpdateWidgetSize().
Return the string dimension in pixels.
The height and width are returned in a single Dimension value. TINYFONT, BIGFONT modifiers are only supported as the first character of the string. The returned dimensions are therefore a rough estimation correct for all the current strings but not every possible combination
str | string to calculate pixel-width |
start_fontsize | Fontsize to start the text with |
Definition at line 851 of file gfx.cpp.
References Layouter::GetBounds().
Referenced by VehicleGroupWindow::ComputeGroupInfoSize(), DrawCaption(), DrawEngineList(), SmallMapWindow::DrawIndustryNames(), DrawLabel(), DrawSliderWidget(), DrawText(), TimetableWindow::DrawTimetablePanel(), CheatWindow::DrawWidget(), OrdersWindow::DrawWidget(), BaseVehicleListWindow::GetActionDropdownSize(), IndustryDirectoryWindow::GetIndustryListWidth(), ExpensesList::GetListWidth(), GetMaxCategoriesWidth(), StoryBookWindow::GetPageElementFloatWidth(), StoryBookWindow::GetPageElementHeight(), GetStringBoundingBox(), GetStringListBoundingBox(), GetStringListWidth(), GetUnitNumberWidth(), NWidgetSocialPlugins::GetWidestPlugin(), BaseGraphWindow::GetYLabelWidth(), TextfileWindow::LoadText(), SelectCompanyManagerFaceWindow::OnInit(), IConsoleWindow::OnInit(), IndustryCargoesWindow::OnInit(), SmallMapWindow::OnInit(), BaseVehicleListWindow::OnInit(), ScriptDebugWindow::OnInvalidateData(), RefitWindow::OnInvalidateData(), GoalListWindow::OnPaint(), NWidgetBackground::SetupSmallestSize(), NWidgetLeaf::SetupSmallestSize(), NWidgetResizeBase::UpdateMultilineWidgetSize(), ViewportSign::UpdatePosition(), BuildAirportWindow::UpdateWidgetSize(), ReplaceVehicleWindow::UpdateWidgetSize(), BootstrapErrorWindow::UpdateWidgetSize(), BootstrapAskForDownloadWindow::UpdateWidgetSize(), BuildBridgeWindow::UpdateWidgetSize(), BuildVehicleWindow::UpdateWidgetSize(), CheatWindow::UpdateWidgetSize(), CompanyFinancesWindow::UpdateWidgetSize(), SelectCompanyLiveryWindow::UpdateWidgetSize(), SelectCompanyManagerFaceWindow::UpdateWidgetSize(), CompanyInfrastructureWindow::UpdateWidgetSize(), CompanyWindow::UpdateWidgetSize(), SetDateWindow::UpdateWidgetSize(), DepotWindow::UpdateWidgetSize(), SaveLoadWindow::UpdateWidgetSize(), FramerateWindow::UpdateWidgetSize(), FrametimeGraphWindow::UpdateWidgetSize(), GenerateLandscapeWindow::UpdateWidgetSize(), CreateScenarioWindow::UpdateWidgetSize(), GenerateProgressWindow::UpdateWidgetSize(), GoalListWindow::UpdateWidgetSize(), BaseGraphWindow::UpdateWidgetSize(), PaymentRatesGraphWindow::UpdateWidgetSize(), PerformanceRatingDetailWindow::UpdateWidgetSize(), IndustryProductionGraphWindow::UpdateWidgetSize(), VehicleGroupWindow::UpdateWidgetSize(), BuildIndustryWindow::UpdateWidgetSize(), IndustryDirectoryWindow::UpdateWidgetSize(), PerformanceLeagueWindow::UpdateWidgetSize(), ScriptLeagueWindow::UpdateWidgetSize(), LinkGraphLegendWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), AboutWindow::UpdateWidgetSize(), TooltipsWindow::UpdateWidgetSize(), MusicTrackSelectionWindow::UpdateWidgetSize(), MusicWindow::UpdateWidgetSize(), NetworkContentListWindow::UpdateWidgetSize(), BaseNetworkContentDownloadStatusWindow::UpdateWidgetSize(), NetworkGameWindow::UpdateWidgetSize(), NetworkStartServerWindow::UpdateWidgetSize(), NetworkClientListWindow::UpdateWidgetSize(), NetworkJoinStatusWindow::UpdateWidgetSize(), NetworkAskRelayWindow::UpdateWidgetSize(), NetworkAskSurveyWindow::UpdateWidgetSize(), SpriteAlignerWindow::UpdateWidgetSize(), NewGRFParametersWindow::UpdateWidgetSize(), NewGRFWindow::UpdateWidgetSize(), SavePresetWindow::UpdateWidgetSize(), ScanProgressWindow::UpdateWidgetSize(), NewsWindow::UpdateWidgetSize(), MessageHistoryWindow::UpdateWidgetSize(), OrdersWindow::UpdateWidgetSize(), GameOptionsWindow::UpdateWidgetSize(), GameSettingsWindow::UpdateWidgetSize(), CustomCurrencyWindow::UpdateWidgetSize(), SignListWindow::UpdateWidgetSize(), CompanyStationsWindow::UpdateWidgetSize(), StationViewWindow::UpdateWidgetSize(), SelectStationWindow< T >::UpdateWidgetSize(), StatusBarWindow::UpdateWidgetSize(), StoryBookWindow::UpdateWidgetSize(), SubsidyListWindow::UpdateWidgetSize(), TimetableWindow::UpdateWidgetSize(), ScenarioEditorToolbarWindow::UpdateWidgetSize(), TownAuthorityWindow::UpdateWidgetSize(), TownDirectoryWindow::UpdateWidgetSize(), VehicleListWindow::UpdateWidgetSize(), VehicleDetailsWindow::UpdateWidgetSize(), and Textbuf::UpdateWidth().
Get bounding box of a string.
Uses parameters set by SetDParam if needed. Has the same restrictions as GetStringBoundingBox(std::string_view str, FontSize start_fontsize).
strid | String to examine. |
Definition at line 863 of file gfx.cpp.
References GetString(), and GetStringBoundingBox().
int GetStringHeight | ( | std::string_view | str, |
int | maxw, | ||
FontSize | fontsize | ||
) |
Calculates height of string (in pixels).
The string is changed to a multiline string if needed.
str | string to check |
maxw | maximum string width |
Definition at line 704 of file gfx.cpp.
References Layouter::GetBounds().
Referenced by TownViewWindow::GetDesiredInfoHeight(), StoryBookWindow::GetHeadHeight(), SettingEntry::GetMaxHelpHeight(), StoryBookWindow::GetPageElementHeight(), GetStringHeight(), GetStringMultiLineBoundingBox(), GetStringMultiLineBoundingBox(), CompanyWindow::OnResize(), NewsWindow::OnResize(), GameOptionsWindow::OnResize(), TextfileWindow::ReflowContent(), NWidgetResizeBase::UpdateMultilineWidgetSize(), BootstrapAskForDownloadWindow::UpdateWidgetSize(), BuyCompanyWindow::UpdateWidgetSize(), EnginePreviewWindow::UpdateWidgetSize(), ErrmsgWindow::UpdateWidgetSize(), GoalQuestionWindow::UpdateWidgetSize(), ScriptLeagueWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), and TooltipsWindow::UpdateWidgetSize().
int GetStringHeight | ( | StringID | str, |
int | maxw | ||
) |
Calculates height of string (in pixels).
The string is changed to a multiline string if needed.
str | string to check |
maxw | maximum string width |
Definition at line 717 of file gfx.cpp.
References GetString(), and GetStringHeight().
int GetStringLineCount | ( | StringID | str, |
int | maxw | ||
) |
Calculates number of lines of string.
The string is changed to a multiline string if needed.
str | string to check |
maxw | maximum string width |
Definition at line 728 of file gfx.cpp.
References GetString().
Referenced by NetworkDrawChatMessage(), and GameSettingsWindow::OnPaint().
Get maximum dimension of a list of strings.
list | List of strings, terminated by INVALID_STRING_ID. |
fontsize | Font size to use. |
Definition at line 889 of file gfx.cpp.
References GetStringBoundingBox(), and maxdim().
Referenced by ReplaceVehicleWindow::UpdateWidgetSize(), BuildBridgeWindow::UpdateWidgetSize(), GenerateLandscapeWindow::UpdateWidgetSize(), IndustryDirectoryWindow::UpdateWidgetSize(), OrdersWindow::UpdateWidgetSize(), CompanyStationsWindow::UpdateWidgetSize(), TownDirectoryWindow::UpdateWidgetSize(), and VehicleDetailsWindow::UpdateWidgetSize().
Get maximum width of a list of strings.
list | List of strings. |
fontsize | Font size to use. |
Definition at line 874 of file gfx.cpp.
References GetStringBoundingBox().
Referenced by VehicleGroupWindow::UpdateWidgetSize(), and VehicleListWindow::UpdateWidgetSize().
Calculate string bounding box for multi-line strings.
str | String to check. |
suggestion | Suggested bounding box. |
Definition at line 752 of file gfx.cpp.
References GetStringHeight().
Calculate string bounding box for multi-line strings.
str | String to check. |
suggestion | Suggested bounding box. |
Definition at line 740 of file gfx.cpp.
References GetStringHeight().
Referenced by BuildAirportWindow::UpdateWidgetSize(), QueryWindow::UpdateWidgetSize(), NewGRFParametersWindow::UpdateWidgetSize(), NewsWindow::UpdateWidgetSize(), and TownAuthorityWindow::UpdateWidgetSize().
void GfxDrawLine | ( | int | left, |
int | top, | ||
int | right, | ||
int | bottom, | ||
int | colour, | ||
int | width = 1 , |
||
int | dash = 0 |
||
) |
void GfxFillPolygon | ( | const std::vector< Point > & | shape, |
int | colour, | ||
FillRectMode | mode | ||
) |
Fill a polygon with colour.
The odd-even winding rule is used, i.e. self-intersecting polygons will have holes in them. Left and top edges are inclusive, right and bottom edges are exclusive.
shape | List of points on the polygon. |
colour | An 8 bit palette index (FILLRECT_OPAQUE and FILLRECT_CHECKER) or a recolour spritenumber (FILLRECT_RECOLOUR). |
mode | FILLRECT_OPAQUE: Fill the polygon with the specified colour. FILLRECT_CHECKER: Fill every other pixel with the specified colour, in a checkerboard pattern. FILLRECT_RECOLOUR: Apply a recolour sprite to every pixel in the polygon. |
Definition at line 210 of file gfx.cpp.
References Blitter::DrawColourMappingRect(), Blitter::DrawRect(), FILLRECT_CHECKER, FILLRECT_RECOLOUR, GB(), BlitterFactory::GetCurrentBlitter(), MakePolygonSegments(), Blitter::MoveTo(), PALETTE_WIDTH, Blitter::SetPixel(), and ZOOM_LVL_MIN.
Referenced by DrawSliderWidget().
|
inline |
Definition at line 130 of file gfx_func.h.
void GfxFillRect | ( | int | left, |
int | top, | ||
int | right, | ||
int | bottom, | ||
int | colour, | ||
FillRectMode | mode | ||
) |
Applies a certain FillRectMode-operation to a rectangle [left, right] x [top, bottom] on the screen.
left | Minimum X (inclusive) |
top | Minimum Y (inclusive) |
right | Maximum X (inclusive) |
bottom | Maximum Y (inclusive) |
colour | A 8 bit palette index (FILLRECT_OPAQUE and FILLRECT_CHECKER) or a recolour spritenumber (FILLRECT_RECOLOUR) |
mode | FILLRECT_OPAQUE: Fill the rectangle with the specified colour FILLRECT_CHECKER: Like FILLRECT_OPAQUE, but only draw every second pixel (used to grey out things) FILLRECT_RECOLOUR: Apply a recolour sprite to every pixel in the rectangle currently on screen |
Definition at line 114 of file gfx.cpp.
References Blitter::DrawColourMappingRect(), Blitter::DrawRect(), FILLRECT_CHECKER, FILLRECT_RECOLOUR, GB(), BlitterFactory::GetCurrentBlitter(), Blitter::MoveTo(), PALETTE_WIDTH, Blitter::SetPixel(), and ZOOM_LVL_MIN.
Referenced by NWidgetToolbarContainer::Draw(), NWidgetMatrix::Draw(), NWidgetSpacer::Draw(), NWidgetBackground::Draw(), NWidgetViewport::Draw(), NWidgetScrollbar::Draw(), NWidgetLeaf::Draw(), CargoesField::Draw(), DrawArrowButtons(), NetworkClientListWindow::DrawButtons(), DrawCaption(), NetworkContentListWindow::DrawDetails(), DrawDropDownButton(), DrawFrame(), DrawFrameRect(), BaseGraphWindow::DrawGraph(), VehicleGroupWindow::DrawGroupInfo(), CargoesField::DrawHorConnection(), SmallMapWindow::DrawHorizMapIndicator(), DrawHorizontalScrollbar(), DrawLayoutLine(), NetworkContentListWindow::DrawMatrix(), DrawMatrix(), DrawResizeBox(), NetworkGameWindow::DrawServerLine(), SmallMapWindow::DrawSmallMap(), DrawTrainDetails(), LinkGraphOverlay::DrawVertex(), DrawVerticalScrollbar(), SmallMapWindow::DrawVertMapIndicator(), BuildAirportWindow::DrawWidget(), CompanyFinancesWindow::DrawWidget(), CompanyInfrastructureWindow::DrawWidget(), DropdownWindow::DrawWidget(), SaveLoadWindow::DrawWidget(), FrametimeGraphWindow::DrawWidget(), PaymentRatesGraphWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), IndustryProductionGraphWindow::DrawWidget(), VehicleGroupWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), TooltipsWindow::DrawWidget(), MusicTrackSelectionWindow::DrawWidget(), MusicWindow::DrawWidget(), NetworkClientListWindow::DrawWidget(), NewGRFWindow::DrawWidget(), SavePresetWindow::DrawWidget(), NewsWindow::DrawWidget(), OrdersWindow::DrawWidget(), PickerWindow::DrawWidget(), SmallMapWindow::DrawWidget(), BootstrapBackground::DrawWidget(), ScriptDebugWindow::DrawWidgetLog(), Window::DrawWidgets(), DrawYearCategory(), DrawYearColumn(), HighlightDragPosition(), NetworkDrawChatMessage(), IConsoleWindow::OnPaint(), and StationsWndShowStationRating().
void GfxScroll | ( | int | left, |
int | top, | ||
int | width, | ||
int | height, | ||
int | xo, | ||
int | yo | ||
) |
void HandleCtrlChanged | ( | ) |
State of CONTROL key has changed.
Definition at line 2625 of file window.cpp.
References ES_HANDLED, and Window::OnCTRLStateChange().
Referenced by VideoDriver_SDL_Base::InputLoop(), VideoDriver_SDL::InputLoop(), and VideoDriver_Win32Base::InputLoop().
void HandleKeypress | ( | uint | keycode, |
char32_t | key | ||
) |
Handle keyboard input.
keycode | Virtual keycode of the key. |
key | Unicode character of the key. |
Definition at line 2569 of file window.cpp.
References HotkeyList::CheckMatch(), EditBoxInGlobalFocus(), ES_HANDLED, FindWindowById(), Window::HandleEditBoxKey(), HasModalProgress(), WindowDesc::hotkeys, NWidgetCore::index, IsLocalCompany(), Window::nested_focus, Window::OnHotkey(), Window::OnKeyPress(), WC_CONSOLE, WC_MAIN_TOOLBAR, Window::window_class, and Window::window_desc.
Referenced by HandleCharMsg(), VideoDriver_SDL_Base::PollEvent(), and VideoDriver_SDL::PollEvent().
void HandleMouseEvents | ( | ) |
Handle a mouse event from the video driver.
Definition at line 2885 of file window.cpp.
References _input_events_this_tick, _left_button_clicked, _left_button_down, _mouse_hovering, _newgrf_debug_sprite_picker, _right_button_clicked, _right_button_down, _settings_client, abs(), NewGrfDebugSpritePicker::clicked_pixel, CursorVars::delta, BlitterFactory::GetCurrentBlitter(), ClientSettings::gui, HasModalProgress(), GUISettings::hover_delay_ms, CursorVars::in_window, InvalidateWindowData(), IsLocalCompany(), MarkWholeScreenDirty(), MAX_OFFSET_DOUBLE_CLICK, MAX_OFFSET_HOVER, NewGrfDebugSpritePicker::mode, Blitter::MoveTo(), CursorVars::pos, NewGrfDebugSpritePicker::sprites, TIME_BETWEEN_DOUBLE_CLICK(), WC_SPRITE_ALIGNER, and CursorVars::wheel.
Referenced by InputLoop(), VideoDriver_SDL_Base::PollEvent(), and VideoDriver_SDL::PollEvent().
void HandleTextInput | ( | const char * | str, |
bool | marked, | ||
const char * | caret, | ||
const char * | insert_location, | ||
const char * | replacement_end | ||
) |
Handle text input.
str | Text string to input. |
marked | Is the input a marked composition string from an IME? |
caret | Move the caret to this point in the insertion string. |
Definition at line 2655 of file window.cpp.
References EditBoxInGlobalFocus(), NWidgetCore::index, Window::InsertTextString(), Window::nested_focus, WC_CONSOLE, and Window::window_class.
Referenced by CancelIMEComposition(), HandleIMEComposition(), and VideoDriver_SDL_Base::PollEvent().
void HandleToolbarHotkey | ( | int | hotkey | ) |
Handle Toolbar hotkey events - can come from a source like the MacBook Touch Bar.
hotkey | Hotkey code |
Definition at line 2552 of file window.cpp.
References ES_HANDLED, FindWindowById(), HasModalProgress(), WindowDesc::hotkeys, IsLocalCompany(), Window::OnHotkey(), WC_MAIN_TOOLBAR, and Window::window_desc.
void LoadStringWidthTable | ( | bool | monospace | ) |
Initialize _stringwidth_table cache.
monospace | Whether to load the monospace cache or the normal fonts. |
Definition at line 1210 of file gfx.cpp.
References _stringwidth_table, FS_BEGIN, FS_MONO, and GetGlyphWidth().
Referenced by AdjustGUIZoom(), AfterLoadGame(), CheckForMissingGlyphs(), GenerateWorld(), and ReloadNewGRFData().
void SetAnimatedMouseCursor | ( | const AnimCursor * | table | ) |
Assign an animation to the cursor.
table | Array of animation states. |
Definition at line 1699 of file gfx.cpp.
References CursorVars::animate_cur, CursorVars::animate_list, and CursorVars::sprites.
Referenced by SetObjectToPlace().
Assign a single non-animated sprite to the cursor.
Definition at line 1686 of file gfx.cpp.
References CursorVars::animate_timeout, and SetCursorSprite().
Referenced by SetMouseCursorBusy(), and SetObjectToPlace().
void SetMouseCursorBusy | ( | bool | busy | ) |
Set or unset the ZZZ cursor.
busy | Whether to show the ZZZ cursor. |
Definition at line 1670 of file gfx.cpp.
References SetMouseCursor(), SPR_CURSOR_MOUSE, and CursorVars::sprites.
Referenced by CleanupGeneration(), GenerateProgressWindow::OnClick(), SaveFileDone(), and SaveFileStart().
void UpdateCursorSize | ( | ) |
Update cursor dimension.
Called when changing cursor sprite resp. reloading grfs.
Definition at line 1598 of file gfx.cpp.
References CursorVars::dirty, GB(), GetMaxSpriteID(), Sprite::height, Normal, SPRITE_WIDTH, CursorVars::sprites, CursorVars::total_size, UnScaleGUI(), Sprite::width, Sprite::x_offs, and Sprite::y_offs.
Referenced by AdjustGUIZoom(), GfxLoadSprites(), SetCursorSprite(), and SetMouseCursorVehicle().
void UpdateGUIZoom | ( | ) |
Resolve GUI zoom level, if auto-suggestion is requested.
Definition at line 1770 of file gfx.cpp.
References _font_zoom, _gui_scale, _gui_scale_cfg, _gui_zoom, _settings_client, Clamp(), VideoDriver::GetInstance(), VideoDriver::GetSuggestedUIScale(), ClientSettings::gui, ScaleGUITrad(), ZOOM_LVL_IN_2X, ZOOM_LVL_IN_4X, ZOOM_LVL_NORMAL, GUISettings::zoom_max, and GUISettings::zoom_min.
Referenced by AdjustGUIZoom(), and openttd_main().
void UpdateWindows | ( | ) |
Update the continuously changing contents of the windows, such as the viewports.
Definition at line 3056 of file window.cpp.
References _network_dedicated, CallWindowRealtimeTickEvent(), DrawDirtyBlocks(), TimerManager< TTimerType >::Elapsed(), Window::IsShaded(), NetworkDrawChatMessage(), PFE_DRAWING, PFE_DRAWWORLD, Window::ProcessHighlightedInvalidations(), ProcessPendingPerformanceMeasurements(), Window::ProcessScheduledInvalidations(), Window::ProcessScheduledResize(), PerformanceAccumulator::Reset(), UpdateViewportPosition(), and Window::viewport.
Referenced by VideoDriver_Null::MainLoop(), and VideoDriver::Tick().
|
extern |
Is Ctrl pressed?
Definition at line 38 of file gfx.cpp.
Referenced by CheckRedrawStationCoverage(), DepotWindow::DepotClick(), DispatchLeftClickEvent(), FindStationsAroundSelection(), GenerateDesertArea(), GenericPlaceSignals(), GetOrderCmdFromTile(), GUIPlaceProcDragXY(), HandleAutoSignalPlacement(), StationViewWindow::HandleCargoWaitingClick(), GoalListWindow::HandleClick(), HandleClickOnSign(), VideoDriver_SDL_Base::InputLoop(), VideoDriver_SDL::InputLoop(), VideoDriver_Win32Base::InputLoop(), TileHighlightData::IsDraggingDiagonal(), MenuClickHelp(), AIConfigWindow::OnClick(), ReplaceVehicleWindow::OnClick(), BuildVehicleWindow::OnClick(), CompanyFinancesWindow::OnClick(), SelectCompanyLiveryWindow::OnClick(), CompanyWindow::OnClick(), DepotWindow::OnClick(), GSConfigWindow::OnClick(), VehicleGroupWindow::OnClick(), IndustryViewWindow::OnClick(), IndustryDirectoryWindow::OnClick(), SelectGameWindow::OnClick(), LandInfoWindow::OnClick(), NetworkStartServerWindow::OnClick(), SpriteAlignerWindow::OnClick(), NewsWindow::OnClick(), OrdersWindow::OnClick(), PickerWindow::OnClick(), BuildRailToolbarWindow::OnClick(), BuildRoadToolbarWindow::OnClick(), ScriptDebugWindow::OnClick(), GameOptionsWindow::OnClick(), SignWindow::OnClick(), CompanyStationsWindow::OnClick(), StationViewWindow::OnClick(), TimetableWindow::OnClick(), TownViewWindow::OnClick(), TownDirectoryWindow::OnClick(), TransparenciesWindow::OnClick(), RefitWindow::OnClick(), VehicleListWindow::OnClick(), VehicleDetailsWindow::OnClick(), VehicleViewWindow::OnClick(), WaypointWindow::OnClick(), DepotWindow::OnCTRLStateChange(), DepotWindow::OnDragDrop(), CompanyStationsWindow::OnDropdownSelect(), SelectCompanyLiveryWindow::OnDropdownSelect(), StoryBookWindow::OnPageElementClick(), BuildDocksToolbarWindow::OnPlaceMouseUp(), BuildObjectWindow::OnPlaceMouseUp(), BuildRailToolbarWindow::OnPlaceMouseUp(), BuildRoadToolbarWindow::OnPlaceMouseUp(), TerraformToolbarWindow::OnPlaceMouseUp(), BuildTreesWindow::OnPlaceMouseUp(), BuildDocksToolbarWindow::OnPlaceObject(), DepotWindow::OnRightClick(), DepotWindow::OnVehicleSelect(), DepotWindow::OnVehicleSelect(), OrdersWindow::OnVehicleSelect(), OrdersWindow::OrderClick_Refit(), OrdersWindow::OrderClick_Skip(), OrdersWindow::OrderClick_StopSharing(), PlaceAirport(), PlaceRail_Station(), SmallMapWindow::SelectLegendItem(), ShowBuildBridgeWindow(), ShowCargoIconOverlay(), and StationJoinerNeeded().
|
extern |
|
extern |
Current palette.
Definition at line 24 of file palette.cpp.
Referenced by DrawSpriteToRgbaBuffer(), Blitter_32bppBase::LookupColourInPalette(), MakeLargeWorldScreenshot(), MakeMinimapWorldScreenshot(), and MakeSmallScreenshot().
|
extern |
The current resolution.
Definition at line 26 of file driver.cpp.
|
extern |
|
extern |
1 = left, 2 = up, 4 = right, 8 = down
Definition at line 34 of file gfx.cpp.
Referenced by VideoDriver_SDL_Base::InputLoop(), VideoDriver_SDL::InputLoop(), and VideoDriver_Win32Base::InputLoop().
|
extern |
Current game-speed; 100 is 1x, 0 is infinite.
Definition at line 40 of file gfx.cpp.
Referenced by ToolbarFastForwardClick().
|
extern |
Is left mouse button clicked?
Definition at line 42 of file gfx.cpp.
Referenced by HandleMouseEvents(), GenerateLandscapeWindow::OnClick(), CreateScenarioWindow::OnClick(), NetworkStartServerWindow::OnClick(), GameSettingsWindow::OnClick(), DropdownWindow::OnMouseLoop(), VideoDriver_SDL_Base::PollEvent(), and VideoDriver_SDL::PollEvent().
|
extern |
Is left mouse button pressed?
Definition at line 41 of file gfx.cpp.
Referenced by HandleActiveWidget(), HandleMouseDragDrop(), HandleMouseEvents(), HandleViewportScroll(), HandleWindowDragging(), TileHighlightData::IsDraggingDiagonal(), GameOptionsWindow::OnMouseLoop(), VideoDriver_SDL_Base::PollEvent(), VideoDriver_SDL::PollEvent(), and VpHandlePlaceSizingDrag().
|
extern |
List of resolutions.
Definition at line 25 of file driver.cpp.
|
extern |
Is right mouse button clicked?
Definition at line 44 of file gfx.cpp.
Referenced by HandleMouseEvents(), VideoDriver_SDL_Base::PollEvent(), and VideoDriver_SDL::PollEvent().
|
extern |
Is right mouse button pressed?
Definition at line 43 of file gfx.cpp.
Referenced by HandleMouseEvents(), HandleViewportScroll(), ErrmsgWindow::OnMouseLoop(), TooltipsWindow::OnMouseLoop(), VideoDriver_SDL_Base::PollEvent(), and VideoDriver_SDL::PollEvent().
|
extern |
|
extern |
Disable palette animation (important for 32bpp-anim blitter during giant screenshot)
Definition at line 46 of file gfx.cpp.
Referenced by Blitter_32bppAnim::CopyFromBuffer(), Blitter_40bppAnim::CopyFromBuffer(), Blitter_32bppAnim::CopyToBuffer(), Blitter_40bppAnim::CopyToBuffer(), Blitter_32bppAnim::Draw(), Blitter_40bppAnim::Draw(), Blitter_32bppAnim::DrawColourMappingRect(), Blitter_40bppAnim::DrawColourMappingRect(), Blitter_32bppAnim::DrawLine(), Blitter_40bppAnim::DrawLine(), Blitter_32bppAnim::DrawRect(), Blitter_40bppAnim::DrawRect(), DrawSpriteToRgbaBuffer(), LargeWorldCallback(), Blitter_32bppAnim::PaletteAnimate(), Blitter_32bppAnim::ScrollBuffer(), Blitter_40bppAnim::ScrollBuffer(), Blitter_32bppAnim::SetPixel(), and Blitter_40bppAnim::SetPixel().
|
extern |
Is Shift pressed?
Definition at line 39 of file gfx.cpp.
Referenced by VideoDriver_SDL_Base::InputLoop(), VideoDriver_SDL::InputLoop(), VideoDriver_Win32Base::InputLoop(), CommandHelperBase::InternalPostBefore(), EnginePreviewWindow::OnClick(), CompanyWindow::OnPlaceObject(), and ShowCargoIconOverlay().