#include "stdafx.h"
#include "openttd.h"
#include "gfx_func.h"
#include "variables.h"
#include "spritecache.h"
#include "fontcache.h"
#include "genworld.h"
#include "zoom_func.h"
#include "blitter/factory.hpp"
#include "video/video_driver.hpp"
#include "strings_func.h"
#include "settings_type.h"
#include "core/alloc_func.hpp"
#include "core/sort_func.hpp"
#include "landscape_type.h"
#include "network/network_func.h"
#include "thread.h"
#include "table/palettes.h"
#include "table/sprites.h"
#include "table/control_codes.h"
Go to the source code of this file.
Defines | |
| #define | EXTR(p, q) (((uint16)(_palette_animation_counter * (p)) * (q)) >> 16) |
| #define | EXTR2(p, q) (((uint16)(~_palette_animation_counter * (p)) * (q)) >> 16) |
Enumerations | |
| enum | { DIRTY_BLOCK_HEIGHT = 8, DIRTY_BLOCK_WIDTH = 64 } |
Functions | |
| static void | GfxMainBlitter (const Sprite *sprite, int x, int y, BlitterMode mode, const SubSprite *sub=NULL) |
| static int | ReallyDoDrawString (const char *string, int x, int y, TextColour colour, bool parse_string_also_when_clipped) |
| Draw a string at the given coordinates with the given colour. | |
| void | GfxScroll (int left, int top, int width, int height, int xo, int yo) |
| 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. | |
| void | GfxDrawLine (int x, int y, int x2, int y2, int colour) |
| void | GfxDrawLineUnscaled (int x, int y, int x2, int y2, int colour) |
| void | DrawBox (int x, int y, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3) |
| Draws the projection of a parallelepiped. | |
| static void | SetColourRemap (TextColour colour) |
| Set the colour remap to be for the given colour. | |
| static void | HandleBiDiAndArabicShapes (char *text, const char *lastof) |
| static int | TruncateString (char *str, int maxw) |
| Truncate a given string to a maximum width if neccessary. | |
| static int | TruncateStringID (StringID src, char *dest, int maxw, const char *last) |
| Write string to output buffer, truncating it to specified maximal width in pixels if it is too long. | |
| int | DrawString (int x, int y, StringID str, TextColour colour) |
| Draw string starting at position (x,y). | |
| int | DrawStringTruncated (int x, int y, StringID str, TextColour colour, uint maxw) |
| Draw string, possibly truncated to make it fit in its allocated space. | |
| int | DrawStringRightAligned (int x, int y, StringID str, TextColour colour) |
| Draw string right-aligned. | |
| void | DrawStringRightAlignedTruncated (int x, int y, StringID str, TextColour colour, uint maxw) |
| Draw string right-aligned, possibly truncated to make it fit in its allocated space. | |
| void | DrawStringRightAlignedUnderline (int x, int y, StringID str, TextColour colour) |
| Draw string right-aligned with a line underneath it. | |
| int | DrawStringCentered (int x, int y, StringID str, TextColour colour) |
| Draw string centered. | |
| int | DrawStringCenteredTruncated (int xl, int xr, int y, StringID str, TextColour colour) |
| Draw string centered, possibly truncated to fit in the assigned space. | |
| int | DoDrawStringCentered (int x, int y, const char *str, TextColour colour) |
| Draw string centered. | |
| void | DrawStringCenterUnderline (int x, int y, StringID str, TextColour colour) |
| Draw string centered, with additional line underneath it. | |
| void | DrawStringCenterUnderlineTruncated (int xl, int xr, int y, StringID str, TextColour colour) |
| Draw string centered possibly truncated, with additional line underneath it. | |
| uint32 | FormatStringLinebreaks (char *str, int maxw) |
| 'Correct' a string to a maximum length. | |
| static int | GetMultilineStringHeight (const char *src, int num) |
| Calculates height of string (in pixels). | |
| int | GetStringHeight (StringID str, int maxw) |
| Calculates height of string (in pixels). | |
| void | DrawStringMultiCenter (int x, int y, StringID str, int maxw) |
| Draw a given string with the centre around the given (x,y) coordinates. | |
| uint | DrawStringMultiLine (int x, int y, StringID str, int maxw, int maxh) |
| Dimension | GetStringBoundingBox (const char *str) |
| Return the string dimension in pixels. | |
| void | DrawCharCentered (WChar c, int x, int y, TextColour colour) |
| Draw single character horizontally centered around (x,y). | |
| int | DoDrawString (const char *string, int x, int y, TextColour colour, bool parse_string_also_when_clipped) |
| Draw a string at the given coordinates with the given colour. | |
| int | DoDrawStringTruncated (const char *str, int x, int y, TextColour colour, uint maxw) |
| Draw the string of the character buffer, starting at position (x,y) with a given maximal width. | |
| void | DrawSprite (SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub) |
| Draw a sprite. | |
| void | DoPaletteAnimations () |
| void | GfxInitPalettes () |
| void | LoadStringWidthTable () |
| Initialize _stringwidth_table cache. | |
| byte | GetCharacterWidth (FontSize size, WChar key) |
| Return width of character glyph. | |
| void | ScreenSizeChanged () |
| void | UndrawMouseCursor () |
| void | DrawMouseCursor () |
| void | RedrawScreenRect (int left, int top, int right, int bottom) |
| void | DrawDirtyBlocks () |
| Let the dirty blocks repainting by the video driver. | |
| void | SetDirtyBlocks (int left, int top, int right, int bottom) |
| Set a new dirty block. | |
| void | MarkWholeScreenDirty () |
| Marks the whole screen as dirty. | |
| bool | FillDrawPixelInfo (DrawPixelInfo *n, int left, int top, int width, int height) |
| Set up a clipping area for only drawing into a certain area. | |
| static void | SetCursorSprite (SpriteID cursor, SpriteID pal) |
| static void | SwitchAnimatedCursor () |
| void | CursorTick () |
| void | SetMouseCursor (SpriteID sprite, SpriteID pal) |
| void | SetAnimatedMouseCursor (const AnimCursor *table) |
| bool | ChangeResInGame (int width, int height) |
| bool | ToggleFullScreen (bool fs) |
| static int CDECL | compare_res (const Dimension *pa, const Dimension *pb) |
| void | SortResolutions (int count) |
Variables | |
| byte | _dirkeys |
| 1 = left, 2 = up, 4 = right, 8 = down | |
| bool | _fullscreen |
| CursorVars | _cursor |
| bool | _ctrl_pressed |
| Is Ctrl pressed? | |
| bool | _shift_pressed |
| Is Shift pressed? | |
| byte | _fast_forward |
| 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 = false |
| Disable palette animation (important for 32bpp-anim blitter during giant screenshot). | |
| bool | _exit_game |
| GameMode | _game_mode |
| SwitchMode | _switch_mode |
| The next mainloop command. | |
| int8 | _pause_game |
| int | _pal_first_dirty |
| int | _pal_count_dirty |
| Colour | _cur_palette [256] |
| Current palette. Entry 0 has to be always fully transparent! | |
| byte | _stringwidth_table [FS_END][224] |
| Cache containing width of often used characters. | |
| DrawPixelInfo * | _cur_dpi |
| byte | _colour_gradient [COLOUR_END][8] |
| All 16 colour gradients 8 colours per gradient from darkest (0) to lightest (7). | |
| FontSize | _cur_fontsize |
| static FontSize | _last_fontsize |
| static ReusableBuffer< uint8 > | _cursor_backup |
| static Rect | _invalid_rect |
| The rect for repaint. | |
| static const byte * | _colour_remap_ptr |
| static byte | _string_colourremap [3] |
| static uint | _dirty_bytes_per_line = 0 |
| static byte * | _dirty_blocks = NULL |
Definition in file gfx.cpp.
| int DoDrawString | ( | const char * | string, | |
| int | x, | |||
| int | y, | |||
| TextColour | colour, | |||
| bool | parse_string_also_when_clipped | |||
| ) |
Draw a string at the given coordinates with the given colour.
While drawing the string, parse it in case some formatting is specified, like new colour, new size or even positionning.
| string | The string to draw. This is not yet bidi reordered. | |
| x | Offset from left side of the screen | |
| y | Offset from top side of the screen | |
| colour | Colour of the string, see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h | |
| parse_string_also_when_clipped | By default, always test the available space where to draw the string. When in multipline drawing, it would already be done, so no need to re-perform the same kind (more or less) of verifications. It's not only an optimisation, it's also a way to ensures the string will be parsed (as there are certain side effects on global variables, which are important for the next line) |
Definition at line 880 of file gfx.cpp.
References lastof, ReallyDoDrawString(), and strecpy().
Referenced by DoDrawStringTruncated(), Window::DrawSortButtonState(), Window::DrawWidgets(), and StationViewWindow::OnPaint().
| int DoDrawStringCentered | ( | int | x, | |
| int | y, | |||
| const char * | str, | |||
| TextColour | colour | |||
| ) |
Draw string centered.
| x | X position of center of the string | |
| y | Y position of center of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 543 of file gfx.cpp.
References GetStringBoundingBox(), lastof, ReallyDoDrawString(), strecpy(), and Dimension::width.
| int DoDrawStringTruncated | ( | const char * | str, | |
| int | x, | |||
| int | y, | |||
| TextColour | colour, | |||
| uint | maxw | |||
| ) |
Draw the string of the character buffer, starting at position (x,y) with a given maximal width.
String is truncated if it is too long.
| str | Character buffer containing the string | |
| x | Left-most x coordinate to start drawing | |
| y | Y coordinate to draw the string | |
| colour | Colour to use, see DoDrawString() for details. | |
| maxw | Maximal width in pixels that may be used for drawing |
Definition at line 986 of file gfx.cpp.
References DoDrawString(), lastof, strecpy(), and TruncateString().
Referenced by DrawNewsString(), NewGRFWindow::OnPaint(), NewGRFAddWindow::OnPaint(), AISettingsWindow::OnPaint(), and AIListWindow::OnPaint().
| 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 208 of file gfx.cpp.
Referenced by ViewportDrawBoundingBoxes().
| void DrawCharCentered | ( | WChar | c, | |
| int | x, | |||
| int | y, | |||
| TextColour | colour | |||
| ) |
Draw single character horizontally centered around (x,y).
| c | Character (glyph) to draw | |
| x | X position to draw character | |
| y | Y position to draw character | |
| colour | Colour to use, see DoDrawString() for details |
Definition at line 857 of file gfx.cpp.
References GetCharacterWidth(), GetGlyph(), and SetColourRemap().
Draw a sprite.
| img | Image number to draw | |
| pal | Palette to use. | |
| x | Left coordinate of image | |
| y | Top coordinate of image | |
| sub | If available, draw only specified part of the sprite |
Definition at line 1002 of file gfx.cpp.
References GB(), HasBit(), PALETTE_MODIFIER_TRANSPARENT, PALETTE_WIDTH, SPRITE_WIDTH, ST_NORMAL, and ST_RECOLOUR.
Referenced by SettingEntry::Draw(), DrawCargoIcons(), DrawCompanyManagerFace(), DrawStationTile(), DrawVehicleProfitButton(), Window::DrawWidgets(), NewGRFWindow::OnPaint(), and CompanyWindow::OnPaint().
| int DrawString | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string starting at position (x,y).
| x | X position to start drawing | |
| y | Y position to start drawing | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 404 of file gfx.cpp.
References lastof, and ReallyDoDrawString().
Referenced by DrawAircraftDetails(), DrawCompanyOwnerText(), DrawCompanyVehiclesAmount(), DrawShipDetails(), DrawVehiclePurchaseInfo(), DrawVehicleRefitWindow(), Window::DrawWidgets(), VehicleListWindow::OnPaint(), StationViewWindow::OnPaint(), CompanyStationsWindow::OnPaint(), CompanyWindow::OnPaint(), AIConfigWindow::OnPaint(), AIListWindow::OnPaint(), and StationsWndShowStationRating().
| int DrawStringCentered | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string centered.
| x | X position of center of the string | |
| y | Y position of center of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 498 of file gfx.cpp.
References GetStringBoundingBox(), lastof, ReallyDoDrawString(), and Dimension::width.
Referenced by DrawArrowButtons(), DrawStringCenterUnderline(), Window::DrawWidgets(), and CompanyStationsWindow::OnPaint().
| int DrawStringCenteredTruncated | ( | int | xl, | |
| int | xr, | |||
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string centered, possibly truncated to fit in the assigned space.
| xl | Left-most x position | |
| xr | Right-most x position | |
| y | Y position of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 523 of file gfx.cpp.
References GetStringBoundingBox(), lastof, ReallyDoDrawString(), TruncateStringID(), and Dimension::width.
Referenced by DrawStringCenterUnderlineTruncated(), and Window::DrawWidgets().
| void DrawStringCenterUnderline | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string centered, with additional line underneath it.
| x | X position of center of the string | |
| y | Y position of center of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 562 of file gfx.cpp.
References DrawStringCentered(), and GfxFillRect().
| void DrawStringCenterUnderlineTruncated | ( | int | xl, | |
| int | xr, | |||
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string centered possibly truncated, with additional line underneath it.
| xl | Left x position of the string | |
| xr | Right x position of the string | |
| y | Y position of center of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 577 of file gfx.cpp.
References DrawStringCenteredTruncated(), and GfxFillRect().
| void DrawStringMultiCenter | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| int | maxw | |||
| ) |
Draw a given string with the centre around the given (x,y) coordinates.
| x | Centre the string around this pixel width | |
| y | Centre the string around this pixel height | |
| str | String to draw | |
| maxw | Maximum width the string can have before it is wrapped |
Definition at line 709 of file gfx.cpp.
References FormatStringLinebreaks(), GB(), GetCharacterHeight(), GetStringBoundingBox(), lastof, ReallyDoDrawString(), strecpy(), and Dimension::width.
Referenced by QueryWindow::OnPaint(), EndGameWindow::OnPaint(), and CompanyWindow::OnPaint().
| int DrawStringRightAligned | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string right-aligned.
| x | Right-most x position of the string | |
| y | Y position of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 442 of file gfx.cpp.
References GetStringBoundingBox(), lastof, ReallyDoDrawString(), and Dimension::width.
Referenced by DrawEngineList(), DrawStringRightAlignedUnderline(), and StationViewWindow::OnPaint().
| void DrawStringRightAlignedTruncated | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour, | |||
| uint | maxw | |||
| ) |
Draw string right-aligned, possibly truncated to make it fit in its allocated space.
| x | Right-most x position to start drawing | |
| y | Y position to start drawing | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details | |
| maxw | Maximal width of the string |
Definition at line 465 of file gfx.cpp.
References GetStringBoundingBox(), lastof, ReallyDoDrawString(), and TruncateStringID().
Referenced by StationViewWindow::OnPaint().
| void DrawStringRightAlignedUnderline | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour | |||
| ) |
Draw string right-aligned with a line underneath it.
| x | Right-most x position of the string | |
| y | Y position of the string | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details |
Definition at line 482 of file gfx.cpp.
References DrawStringRightAligned(), and GfxFillRect().
| int DrawStringTruncated | ( | int | x, | |
| int | y, | |||
| StringID | str, | |||
| TextColour | colour, | |||
| uint | maxw | |||
| ) |
Draw string, possibly truncated to make it fit in its allocated space.
| x | X position to start drawing | |
| y | Y position to start drawing | |
| str | String to draw | |
| colour | Colour used for drawing the string, see DoDrawString() for details | |
| maxw | Maximal width of the string |
Definition at line 424 of file gfx.cpp.
References lastof, ReallyDoDrawString(), and TruncateStringID().
Referenced by SettingEntry::Draw(), DrawEngineList(), SettingEntry::DrawSetting(), Window::DrawWidgets(), IndustryDirectoryWindow::OnPaint(), ReplaceVehicleWindow::OnPaint(), AIConfigWindow::OnPaint(), AISettingsWindow::OnPaint(), and AIListWindow::OnPaint().
| 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 1551 of file gfx.cpp.
References BlitterFactoryBase::GetCurrentBlitter(), and Blitter::MoveTo().
| uint32 FormatStringLinebreaks | ( | char * | str, | |
| int | maxw | |||
| ) |
'Correct' a string to a maximum length.
Longer strings will be cut into additional lines at whitespace characters if possible. The string parameter is modified with terminating characters mid-string which are the placeholders for the newlines. The string WILL be truncated if there was no whitespace for the current line's maximum width.
| str | string to check and correct for length restrictions | |
| maxw | the maximum width the string can have on one line |
Definition at line 601 of file gfx.cpp.
References GetCharacterWidth(), IsWhitespace(), SCC_BIGFONT, SCC_TINYFONT, and Utf8PrevChar().
Referenced by DrawStringMultiCenter(), and GetStringHeight().
| byte GetCharacterWidth | ( | FontSize | size, | |
| WChar | key | |||
| ) |
Return width of character glyph.
| size | Font of the character | |
| key | Character code glyph |
Definition at line 1265 of file gfx.cpp.
References _stringwidth_table, and GetGlyphWidth().
Referenced by DrawCharCentered(), FormatStringLinebreaks(), GetStringBoundingBox(), InsertTextBufferChar(), InsertTextBufferClipboard(), MoveTextBufferPos(), ReallyDoDrawString(), TruncateString(), and UpdateTextBufferSize().
| static int GetMultilineStringHeight | ( | const char * | src, | |
| int | num | |||
| ) | [static] |
Calculates height of string (in pixels).
Accepts multiline string with '' as separators.
| src | string to check | |
| num | number of extra lines (output of FormatStringLinebreaks()) |
Definition at line 665 of file gfx.cpp.
References fh, GetCharacterHeight(), SCC_BIGFONT, and SCC_TINYFONT.
Referenced by GetStringHeight().
| Dimension GetStringBoundingBox | ( | const char * | str | ) |
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 |
Definition at line 814 of file gfx.cpp.
References GetCharacterHeight(), GetCharacterWidth(), Dimension::height, max(), SCC_BIGFONT, SCC_TINYFONT, and Dimension::width.
Referenced by DoDrawStringCentered(), DrawStringCentered(), DrawStringCenteredTruncated(), DrawStringMultiCenter(), DrawStringRightAligned(), DrawStringRightAlignedTruncated(), and GuiShowTooltips().
| 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 692 of file gfx.cpp.
References FormatStringLinebreaks(), GB(), GetMultilineStringHeight(), and lastof.
| 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 108 of file gfx.cpp.
References Blitter::DrawColourMappingRect(), Blitter::DrawRect(), FILLRECT_CHECKER, FILLRECT_RECOLOUR, GB(), BlitterFactoryBase::GetCurrentBlitter(), Blitter::MoveTo(), PALETTE_WIDTH, and Blitter::SetPixel().
Referenced by DrawArrowButtons(), DrawFrameRect(), DrawStringCenterUnderline(), DrawStringCenterUnderlineTruncated(), DrawStringRightAlignedUnderline(), Window::DrawWidgets(), CompanyStationsWindow::OnPaint(), NewGRFAddWindow::OnPaint(), and StationsWndShowStationRating().
| static int ReallyDoDrawString | ( | const char * | string, | |
| int | x, | |||
| int | y, | |||
| TextColour | colour, | |||
| bool | parse_string_also_when_clipped | |||
| ) | [static] |
Draw a string at the given coordinates with the given colour.
While drawing the string, parse it in case some formatting is specified, like new colour, new size or even positionning.
| string | The string to draw. This is already bidi reordered. | |
| x | Offset from left side of the screen | |
| y | Offset from top side of the screen | |
| colour | Colour of the string, see _string_colourmap in table/palettes.h or docs/ottd-colourtext-palette.png or the enum TextColour in gfx_type.h | |
| parse_string_also_when_clipped | By default, always test the available space where to draw the string. When in multipline drawing, it would already be done, so no need to re-perform the same kind (more or less) of verifications. It's not only an optimisation, it's also a way to ensures the string will be parsed (as there are certain side effects on global variables, which are important for the next line) |
Definition at line 906 of file gfx.cpp.
References GetCharacterHeight(), GetCharacterWidth(), GetGlyph(), SCC_BIGFONT, SCC_TINYFONT, SetColourRemap(), and Swap().
Referenced by DoDrawString(), DoDrawStringCentered(), DrawString(), DrawStringCentered(), DrawStringCenteredTruncated(), DrawStringMultiCenter(), DrawStringRightAligned(), DrawStringRightAlignedTruncated(), and DrawStringTruncated().
| static void SetColourRemap | ( | TextColour | colour | ) | [static] |
Set the colour remap to be for the given colour.
| colour | the new colour of the remap. |
Definition at line 243 of file gfx.cpp.
References _use_palette, IS_PALETTE_COLOUR, and PAL_DOS.
Referenced by DrawCharCentered(), and ReallyDoDrawString().
| static int TruncateString | ( | char * | str, | |
| int | maxw | |||
| ) | [static] |
Truncate a given string to a maximum width if neccessary.
If the string is truncated, add three dots ('...') to show this.
| *str | string that is checked and possibly truncated | |
| maxw | maximum width in pixels of the string |
Definition at line 330 of file gfx.cpp.
References GetCharacterWidth(), SCC_BIGFONT, and SCC_TINYFONT.
Referenced by DoDrawStringTruncated(), and TruncateStringID().
| static int TruncateStringID | ( | StringID | src, | |
| char * | dest, | |||
| int | maxw, | |||
| const char * | last | |||
| ) | [inline, static] |
Write string to output buffer, truncating it to specified maximal width in pixels if it is too long.
| src | String to truncate | |
| dest | Start of character output buffer where truncated string is stored | |
| maxw | Maximal allowed length of the string in pixels | |
| last | Address of last character in output buffer |
Definition at line 388 of file gfx.cpp.
References TruncateString().
Referenced by DrawStringCenteredTruncated(), DrawStringRightAlignedTruncated(), and DrawStringTruncated().
| byte _stringwidth_table[FS_END][224] |
Cache containing width of often used characters.
Definition at line 47 of file gfx.cpp.
Referenced by GetCharacterWidth(), and LoadStringWidthTable().
1.5.6