OpenTTD Source 20241224-master-gf74b0cf984
|
Functions related to laying out the texts. More...
#include "fontcache.h"
#include "gfx_func.h"
#include "core/math_func.hpp"
#include <stack>
#include <string_view>
Go to the source code of this file.
Data Structures | |
struct | FontState |
Text drawing parameters, which can change while drawing a line, but are kept between multiple parts of the same text, e.g. More... | |
class | Font |
Container with information about a font. More... | |
class | ParagraphLayouter |
Interface to glue fallback and normal layouter into one. More... | |
class | ParagraphLayouter::Position |
Position of a glyph within a VisualRun. More... | |
class | ParagraphLayouter::VisualRun |
Visual run contains data about the bit of text with the same font. More... | |
class | ParagraphLayouter::Line |
A single line worth of VisualRuns. More... | |
class | Layouter |
The layouter performs all the layout work. More... | |
struct | Layouter::LineCacheKey |
Key into the linecache. More... | |
struct | Layouter::LineCacheQuery |
struct | Layouter::LineCacheCompare |
Comparator for std::map. More... | |
struct | Layouter::LineCacheItem |
Item in the linecache. More... | |
Typedefs | |
using | FontMap = std::vector< std::pair< int, Font * > > |
Mapping from index to font. | |
Functions | |
ParagraphLayouter::Position | GetCharPosInString (std::string_view str, const char *ch, FontSize start_fontsize=FS_NORMAL) |
Get the leading corner of a character in a single-line string relative to the start of the string. | |
ptrdiff_t | GetCharAtPosition (std::string_view str, int x, FontSize start_fontsize=FS_NORMAL) |
Get the character from a string that is drawn at a specific position. | |
Functions related to laying out the texts.
Definition in file gfx_layout.h.
Mapping from index to font.
The pointer is owned by FontColourMap.
Definition at line 84 of file gfx_layout.h.
ptrdiff_t GetCharAtPosition | ( | std::string_view | str, |
int | x, | ||
FontSize | start_fontsize | ||
) |
Get the character from a string that is drawn at a specific position.
str | String to test. |
x | Position relative to the start of the string. |
start_fontsize | Font size to start the text with. |
Definition at line 438 of file gfx_layout.cpp.
References Layouter::GetCharAtPosition().
Referenced by IConsoleWindow::GetTextCharacterAtPosition().
ParagraphLayouter::Position GetCharPosInString | ( | std::string_view | str, |
const char * | ch, | ||
FontSize | start_fontsize | ||
) |
Get the leading corner of a character in a single-line string relative to the start of the string.
str | String containing the character. |
ch | Pointer to the character in the string. |
start_fontsize | Font size to start the text with. |
Definition at line 421 of file gfx_layout.cpp.
References Layouter::GetCharPosition().
Referenced by QueryString::GetBoundingRect(), IConsoleWindow::GetTextBoundingRect(), Textbuf::UpdateCaretPosition(), and Textbuf::UpdateMarkedText().