gfx_func.h File Reference

Functions related to the gfx engine. More...

#include "gfx_type.h"
#include "strings_type.h"

Go to the source code of this file.

Defines

#define FONT_HEIGHT_SMALL   (GetCharacterHeight(FS_SMALL))
 Height of characters in the small (FS_SMALL) font.
#define FONT_HEIGHT_NORMAL   (GetCharacterHeight(FS_NORMAL))
 Height of characters in the normal (FS_NORMAL) font.
#define FONT_HEIGHT_LARGE   (GetCharacterHeight(FS_LARGE))
 Height of characters in the large (FS_LARGE) font.
#define GREY_SCALE(level)   (level)
 Return the colour for a particular greyscale level.

Enumerations

enum  StringAlignment {
  SA_LEFT = 0 << 0, SA_HOR_CENTER = 1 << 0, SA_RIGHT = 2 << 0, SA_HOR_MASK = 3 << 0,
  SA_TOP = 0 << 2, SA_VERT_CENTER = 1 << 2, SA_BOTTOM = 2 << 2, SA_VERT_MASK = 3 << 2,
  SA_CENTER = SA_HOR_CENTER | SA_VERT_CENTER, SA_FORCE = 1 << 4, SA_STRIP = 1 << 5
}
 

How to align the to-be drawn text.

More...

Functions

void GameLoop ()
void CreateConsole ()
void HandleKeypress (uint32 key)
 Handle keyboard input.
void HandleCtrlChanged ()
 State of CONTROL key has changed.
void HandleMouseEvents ()
 Handle a mouse event from the video driver.
void CSleep (int milliseconds)
void UpdateWindows ()
 Update the continuously changing contents of the windows, such as the viewports.
void DrawMouseCursor ()
void ScreenSizeChanged ()
void GameSizeChanged ()
 Size of the application screen changed.
void UndrawMouseCursor ()
void RedrawScreenRect (int left, int top, int right, int bottom)
void GfxScroll (int left, int top, int width, int height, int xo, int yo)
Dimension GetSpriteSize (SpriteID sprid)
 Get the size of a sprite.
void DrawSprite (SpriteID img, PaletteID pal, int x, int y, const SubSprite *sub=NULL)
 Draw a sprite.
int DrawString (int left, int right, int top, const char *str, TextColour colour=TC_FROMSTRING, StringAlignment align=SA_LEFT, bool underline=false)
 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)
 Draw string, possibly truncated to make it fit in its allocated space.
int DrawStringMultiLine (int left, int right, int top, int bottom, const char *str, TextColour colour=TC_FROMSTRING, StringAlignment align=(SA_TOP|SA_LEFT), bool underline=false)
 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)
 Draw string, possibly over multiple lines.
void DrawCharCentered (uint32 c, int x, int y, TextColour colour)
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 GfxDrawLine (int left, int top, int right, int bottom, int colour, int width=1)
void DrawBox (int x, int y, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3)
 Draws the projection of a parallelepiped.
Dimension GetStringBoundingBox (const char *str, FontSize start_fontsize=FS_NORMAL)
 Return the string dimension in pixels.
Dimension GetStringBoundingBox (StringID strid)
 Get bounding box of a string.
uint32 FormatStringLinebreaks (char *str, const char *last, int maxw, FontSize start_fontsize=FS_NORMAL)
 'Correct' a string to a maximum length.
int GetStringHeight (StringID str, int maxw)
 Calculates height of string (in pixels).
Dimension GetStringMultiLineBoundingBox (StringID str, const Dimension &suggestion)
 Calculate string bounding box for multi-line strings.
void LoadStringWidthTable ()
 Initialize _stringwidth_table cache.
void DrawDirtyBlocks ()
 Repaints the rectangle blocks which are marked as 'dirty'.
void SetDirtyBlocks (int left, int top, int right, int bottom)
 This function extends the internal _invalid_rect rectangle as it now contains the rectangle defined by the given parameters.
void MarkWholeScreenDirty ()
 This function mark the whole screen as dirty.
void GfxInitPalettes ()
bool FillDrawPixelInfo (DrawPixelInfo *n, int left, int top, int width, int height)
 Set up a clipping area for only drawing into a certain area.
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 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 (int count)
bool ToggleFullScreen (bool fs)
byte GetCharacterWidth (FontSize size, uint32 key)
byte GetDigitWidth (FontSize size=FS_NORMAL)
 Return the maximum width of single digit.
static byte GetCharacterHeight (FontSize size)
 Get height of a character for a given font size.

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
 Disable palette animation (important for 32bpp-anim blitter during giant screenshot).
int _pal_first_dirty
int _pal_count_dirty
int _num_resolutions
 The number of resolutions.
Dimension _resolutions [32]
 List of resolutions.
Dimension _cur_resolution
 The current resolution.
Colour _cur_palette [256]
 Current palette. Entry 0 has to be always fully transparent!
static const int DRAW_STRING_BUFFER = 2048
 Size of the buffer used for drawing strings.
DrawPixelInfo_cur_dpi
byte _colour_gradient [COLOUR_END][8]
 All 16 colour gradients 8 colours per gradient from darkest (0) to lightest (7).
bool _palette_remap_grf []
 Whether the given NewGRFs must get a palette remap from windows to DOS or not.
static const uint8 PC_BLACK = GREY_SCALE(1)
 Black palette colour.
static const uint8 PC_DARK_GREY = GREY_SCALE(6)
 Dark grey palette colour.
static const uint8 PC_GREY = GREY_SCALE(10)
 Grey palette colour.
static const uint8 PC_WHITE = GREY_SCALE(15)
 White palette colour.
static const uint8 PC_VERY_DARK_RED = 0xB2
 Almost-black red palette colour.
static const uint8 PC_DARK_RED = 0xB4
 Dark red palette colour.
static const uint8 PC_RED = 0xB8
 Red palette colour.
static const uint8 PC_VERY_DARK_BROWN = 0x56
 Almost-black brown palette colour.
static const uint8 PC_ORANGE = 0xC2
 Orange palette colour.
static const uint8 PC_YELLOW = 0xBF
 Yellow palette colour.
static const uint8 PC_LIGHT_YELLOW = 0x44
 Light yellow palette colour.
static const uint8 PC_VERY_LIGHT_YELLOW = 0x45
 Almost-white yellow palette colour.
static const uint8 PC_GREEN = 0xD0
 Green palette colour.
static const uint8 PC_DARK_BLUE = 0x9D
 Dark blue palette colour.
static const uint8 PC_LIGHT_BLUE = 0x98
 Light blue palette colour.

Detailed Description

Functions related to the gfx engine.

Definition in file gfx_func.h.


Define Documentation

#define FONT_HEIGHT_LARGE   (GetCharacterHeight(FS_LARGE))

Height of characters in the large (FS_LARGE) font.

Definition at line 173 of file gfx_func.h.

Referenced by HighScoreWindow::OnPaint().

#define FONT_HEIGHT_NORMAL   (GetCharacterHeight(FS_NORMAL))

Height of characters in the normal (FS_NORMAL) font.

Definition at line 170 of file gfx_func.h.

Referenced by CargoesField::CargoClickedAt(), CargoesField::CargoLabelClickedAt(), CheckClickOnViewportSign(), NetworkClientListWindow::CheckClientListHeight(), CargoesField::Draw(), StationViewWindow::DrawAcceptedCargo(), DrawAircraftDetails(), StationViewWindow::DrawCargoRatings(), DrawCategories(), NetworkContentListWindow::DrawDetails(), DrawEngineList(), StationViewWindow::DrawEntries(), DrawFrame(), CargoesField::DrawHorConnection(), IndustryViewWindow::DrawInfo(), NetworkContentListWindow::DrawMatrix(), DrawOrderString(), TownAuthorityWindow::DrawRatings(), DrawRoadVehDetails(), NetworkGameWindow::DrawServerLine(), DrawShipDetails(), DrawString(), DrawTrainDetails(), DepotWindow::DrawVehicleInDepot(), BaseVehicleListWindow::DrawVehicleListItems(), DrawVehiclePurchaseInfo(), VehicleDetailsWindow::DrawWidget(), TownViewWindow::DrawWidget(), TownAuthorityWindow::DrawWidget(), ScenarioEditorToolbarWindow::DrawWidget(), TimetableWindow::DrawWidget(), SubsidyListWindow::DrawWidget(), StatusBarWindow::DrawWidget(), CompanyStationsWindow::DrawWidget(), SignListWindow::DrawWidget(), NewGRFWindow::DrawWidget(), NetworkJoinStatusWindow::DrawWidget(), NetworkClientListWindow::DrawWidget(), NetworkClientListPopupWindow::DrawWidget(), NetworkContentDownloadStatusWindow::DrawWidget(), LandInfoWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), CompanyLeagueWindow::DrawWidget(), GraphLegendWindow::DrawWidget(), GenerateProgressWindow::DrawWidget(), SaveLoadWindow::DrawWidget(), EnginePreviewWindow::DrawWidget(), CompanyWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CheatWindow::DrawWidget(), AIListWindow::DrawWidget(), DrawYearColumn(), TownViewWindow::GetDesiredInfoHeight(), GetEngineListHeight(), VehicleDetailsWindow::GetRoadVehDetailsHeight(), MakeAsdfgKeys(), MakeNumberKeys(), MakeNWidgetCompanyLines(), MakeQwertyKeys(), MakeSpacebarKeys(), MakeTopKeys(), MakeZxcvbKeys(), ViewportSign::MarkDirty(), NetworkDrawChatMessage(), NetworkReInitChatBoxSize(), TownAuthorityWindow::OnClick(), StationViewWindow::OnClick(), CompanyStationsWindow::OnClick(), IndustryViewWindow::OnClick(), SelectCompanyLiveryWindow::OnClick(), CheatWindow::OnClick(), IndustryCargoesWindow::OnInit(), NetworkClientListPopupWindow::OnMouseLoop(), NetworkClientListWindow::OnMouseOver(), BuildAirportWindow::OnPaint(), NWidgetBackground::SetupSmallestSize(), VehicleDetailsWindow::UpdateWidgetSize(), RefitWindow::UpdateWidgetSize(), TownAuthorityWindow::UpdateWidgetSize(), TimetableWindow::UpdateWidgetSize(), StationViewWindow::UpdateWidgetSize(), CompanyStationsWindow::UpdateWidgetSize(), SignListWindow::UpdateWidgetSize(), GameSettingsWindow::UpdateWidgetSize(), BuildRailStationWindow::UpdateWidgetSize(), OrdersWindow::UpdateWidgetSize(), BuildObjectWindow::UpdateWidgetSize(), MessageOptionsWindow::UpdateWidgetSize(), MessageHistoryWindow::UpdateWidgetSize(), NewGRFWindow::UpdateWidgetSize(), NewGRFParametersWindow::UpdateWidgetSize(), SpriteAlignerWindow::UpdateWidgetSize(), NewGRFInspectWindow::UpdateWidgetSize(), NetworkJoinStatusWindow::UpdateWidgetSize(), NetworkLobbyWindow::UpdateWidgetSize(), NetworkGameWindow::UpdateWidgetSize(), NetworkContentListWindow::UpdateWidgetSize(), AboutWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), BuildIndustryWindow::UpdateWidgetSize(), VehicleGroupWindow::UpdateWidgetSize(), PerformanceRatingDetailWindow::UpdateWidgetSize(), GenerateProgressWindow::UpdateWidgetSize(), GenerateLandscapeWindow::UpdateWidgetSize(), SaveLoadWindow::UpdateWidgetSize(), EnginePreviewWindow::UpdateWidgetSize(), DepotWindow::UpdateWidgetSize(), SelectCompanyLiveryWindow::UpdateWidgetSize(), CompanyFinancesWindow::UpdateWidgetSize(), CheatWindow::UpdateWidgetSize(), BuildAirportWindow::UpdateWidgetSize(), AIDebugWindow::UpdateWidgetSize(), AIConfigWindow::UpdateWidgetSize(), AISettingsWindow::UpdateWidgetSize(), AIListWindow::UpdateWidgetSize(), and ViewportAddString().

#define FONT_HEIGHT_SMALL   (GetCharacterHeight(FS_SMALL))
#define GREY_SCALE ( level   )     (level)

Return the colour for a particular greyscale level.

Parameters:
level Intensity, 0 = black, 15 = white
Returns:
colour

Definition at line 190 of file gfx_func.h.


Enumeration Type Documentation

How to align the to-be drawn text.

Enumerator:
SA_LEFT 

Left align the text.

SA_HOR_CENTER 

Horizontally center the text.

SA_RIGHT 

Right align the text (must be a single bit).

SA_HOR_MASK 

Mask for horizontal alignment.

SA_TOP 

Top align the text.

SA_VERT_CENTER 

Vertically center the text.

SA_BOTTOM 

Bottom align the text.

SA_VERT_MASK 

Mask for vertical alignment.

SA_CENTER 

Center both horizontally and vertically.

SA_FORCE 

Force the alignment, i.e. don't swap for RTL languages.

SA_STRIP 

Strip the SETX/SETXY commands from the string.

Definition at line 95 of file gfx_func.h.


Function Documentation

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.

Parameters:
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 250 of file gfx.cpp.

References PC_WHITE.

Referenced by ViewportDrawBoundingBoxes().

void DrawDirtyBlocks (  ) 

Repaints the rectangle blocks which are marked as 'dirty'.

See also:
SetDirtyBlocks

Definition at line 1543 of file gfx.cpp.

References _genworld_mapgen_mutex, _genworld_paint_mutex, _realtime_tick, Align(), ThreadMutex::BeginCritical(), ThreadMutex::EndCritical(), GENWORLD_REDRAW_TIMEOUT, and IsGeneratingWorld().

Referenced by MakeScreenshot(), and UpdateWindows().

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.

Parameters:
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 541 of file window.cpp.

References DrawOverlappedWindow(), Window::height, Window::left, Window::top, and Window::width.

void DrawSprite ( SpriteID  img,
PaletteID  pal,
int  x,
int  y,
const SubSprite sub 
)

Draw a sprite.

Parameters:
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 1140 of file gfx.cpp.

References BM_COLOUR_REMAP, BM_NORMAL, BM_TRANSPARENT, GB(), HasBit(), PALETTE_MODIFIER_TRANSPARENT, PALETTE_WIDTH, SPRITE_WIDTH, ST_NORMAL, and ST_RECOLOUR.

Referenced by SettingEntry::Draw(), DrawAircraftImage(), DrawArrowButtons(), DrawCargoIcons(), DrawCommonTileSeqInGUI(), DrawCompanyIcon(), DrawCompanyManagerFace(), DrawDebugBox(), DrawHorizontalScrollbar(), DrawImageButtons(), NetworkContentListWindow::DrawMatrix(), DrawNewObjectTileInGUI(), DrawOrderString(), TownAuthorityWindow::DrawRatings(), DrawResizeBox(), DrawRoadDepotSprite(), DrawRoadVehEngine(), DrawRoadVehImage(), NetworkGameWindow::DrawServerLine(), DrawShadeBox(), DrawShipImage(), BuildSignalWindow::DrawSignalSprite(), DrawStationTile(), DrawStickyBox(), DrawTrainDetails(), DrawTrainImage(), DepotWindow::DrawVehicleInDepot(), DrawVehicleProfitButton(), VehicleViewWindow::DrawWidget(), BuildTreesWindow::DrawWidget(), TransparenciesWindow::DrawWidget(), ScenarioEditorLandscapeGenerationWindow::DrawWidget(), StatusBarWindow::DrawWidget(), NewGRFWindow::DrawWidget(), SpriteAlignerWindow::DrawWidget(), CompanyWindow::DrawWidget(), SelectCompanyLiveryWindow::DrawWidget(), CheatWindow::DrawWidget(), BuildBridgeWindow::DrawWidget(), BuildAirportWindow::DrawWidget(), and MainWindow::OnPaint().

int DrawString ( int  left,
int  right,
int  top,
StringID  str,
TextColour  colour,
StringAlignment  align,
bool  underline 
)

Draw string, possibly truncated to make it fit in its allocated space.

Parameters:
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, see DoDrawString() for details
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.

Definition at line 649 of file gfx.cpp.

References DRAW_STRING_BUFFER, DrawString(), and lastof.

int DrawString ( int  left,
int  right,
int  top,
const char *  str,
TextColour  colour,
StringAlignment  align,
bool  underline 
)

Draw string, possibly truncated to make it fit in its allocated space.

Parameters:
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, see DoDrawString() for details
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.

Definition at line 628 of file gfx.cpp.

References DRAW_STRING_BUFFER, DrawString(), lastof, and strecpy().

int DrawStringMultiLine ( int  left,
int  right,
int  top,
int  bottom,
StringID  str,
TextColour  colour,
StringAlignment  align,
bool  underline 
)

Draw string, possibly over multiple lines.

Parameters:
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, see DoDrawString() for details
align The horizontal and vertical alignment of the string.
underline Whether to underline all strings
Returns:
If align is SA_BOTTOM, the top to where we have written, else the bottom to where we have written.

Definition at line 960 of file gfx.cpp.

References DRAW_STRING_BUFFER, DrawStringMultiLine(), and lastof.

int DrawStringMultiLine ( int  left,
int  right,
int  top,
int  bottom,
const char *  str,
TextColour  colour,
StringAlignment  align,
bool  underline 
)

Draw string, possibly over multiple lines.

Parameters:
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, see DoDrawString() for details
align The horizontal and vertical alignment of the string.
underline Whether to underline all strings
Returns:
If align is SA_BOTTOM, the top to where we have written, else the bottom to where we have written.

Definition at line 939 of file gfx.cpp.

References DRAW_STRING_BUFFER, DrawStringMultiLine(), lastof, and strecpy().

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

Parameters:
*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
Returns:
return false if the requested rectangle is not possible with the current dpi pointer. Only continue of the return value is true, or you'll get some nasty results

Definition at line 1709 of file gfx.cpp.

References BlitterFactoryBase::GetCurrentBlitter(), Blitter::MoveTo(), and ZOOM_LVL_NORMAL.

Referenced by NWidgetMatrix::Draw(), DrawRoadVehImage(), DrawTrainImage(), SmallMapWindow::DrawWidget(), BuildRailStationWindow::DrawWidget(), BuildObjectWindow::DrawWidget(), and IndustryCargoesWindow::DrawWidget().

uint32 FormatStringLinebreaks ( char *  str,
const char *  last,
int  maxw,
FontSize  size 
)

'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.

Note:
To know if the terminating '' is the string end or just a newline, the returned 'num' value should be consulted. The num'th '', starting with index 0 is the real string end.
Parameters:
str string to check and correct for length restrictions
last the last valid location (for '') in the buffer of str
maxw the maximum width the string can have on one line
size Fontsize to start the text with
Returns:
return a 32bit wide number consisting of 2 packed values: 0 - 15 the number of lines ADDED to the string 16 - 31 the fontsize in which the length calculation was done at

Definition at line 677 of file gfx.cpp.

References FS_LARGE, FS_SMALL, GetCharacterWidth(), IsTextDirectionChar(), IsWhitespace(), SCC_BIGFONT, SCC_TINYFONT, and Utf8PrevChar().

Referenced by DrawStringMultiLine(), GetStringHeight(), and NetworkAddChatMessage().

void GameSizeChanged (  ) 

Size of the application screen changed.

Adapt the game screen-size, re-allocate the open windows, and repaint everything

Definition at line 581 of file main_gui.cpp.

References _cur_resolution, MarkWholeScreenDirty(), and RelocateAllWindows().

Referenced by VideoDriver_Win32::MakeWindow().

static byte GetCharacterHeight ( FontSize  size  )  [inline, static]

Get height of a character for a given font size.

Parameters:
size Font size to get height of
Returns:
Height of characters in the given font (pixels)

Definition at line 159 of file gfx_func.h.

References _font_height.

Referenced by BaseGraphWindow::DrawGraph(), DrawStringMultiLine(), GetMultilineStringHeight(), GetStringBoundingBox(), LoadStringWidthTable(), ReallyDoDrawString(), NWidgetResizeBase::SetMinimalTextLines(), and StationsWndShowStationRating().

byte GetDigitWidth ( FontSize  size  ) 

Return the maximum width of single digit.

Parameters:
size Font of the digit
Returns:
Width of the digit.

Definition at line 1419 of file gfx.cpp.

References GetCharacterWidth(), and max().

Referenced by BaseVehicleListWindow::DrawVehicleListItems(), and DepotWindow::UpdateWidgetSize().

Dimension GetSpriteSize ( SpriteID  sprid  ) 
Dimension GetStringBoundingBox ( StringID  strid  ) 

Get bounding box of a string.

Uses parameters set by DParam if needed. Has the same restrictions as GetStringBoundingBox(const char *str).

Parameters:
strid String to examine.
Returns:
Width and height of the bounding box for the string in pixels.

Definition at line 1019 of file gfx.cpp.

References DRAW_STRING_BUFFER, GetStringBoundingBox(), and lastof.

Dimension GetStringBoundingBox ( const char *  str,
FontSize  start_fontsize 
)

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

Parameters:
str string to calculate pixel-width
start_fontsize Fontsize to start the text with
Returns:
string width and height in pixels

Definition at line 977 of file gfx.cpp.

References FS_LARGE, FS_SMALL, GetCharacterHeight(), GetCharacterWidth(), IsTextDirectionChar(), max(), SCC_BIGFONT, and SCC_TINYFONT.

Referenced by DrawLabel(), DrawString(), DrawText(), TimetableWindow::DrawWidget(), OrdersWindow::DrawWidget(), CheatWindow::DrawWidget(), BaseVehicleListWindow::GetActionDropdownSize(), ExpensesList::GetCategoriesWidth(), GetStringBoundingBox(), BaseGraphWindow::GetYLabelWidth(), SmallMapWindow::OnInit(), MessageOptionsWindow::OnInit(), IndustryCargoesWindow::OnInit(), SelectCompanyManagerFaceWindow::OnInit(), RefitWindow::OnInvalidateData(), NWidgetLeaf::SetupSmallestSize(), NWidgetBackground::SetupSmallestSize(), ViewportSign::UpdatePosition(), VehicleDetailsWindow::UpdateWidgetSize(), VehicleListWindow::UpdateWidgetSize(), TownDirectoryWindow::UpdateWidgetSize(), TownAuthorityWindow::UpdateWidgetSize(), ScenarioEditorToolbarWindow::UpdateWidgetSize(), TimetableWindow::UpdateWidgetSize(), SubsidyListWindow::UpdateWidgetSize(), StatusBarWindow::UpdateWidgetSize(), SelectStationWindow< T >::UpdateWidgetSize(), StationViewWindow::UpdateWidgetSize(), CompanyStationsWindow::UpdateWidgetSize(), SignListWindow::UpdateWidgetSize(), CustomCurrencyWindow::UpdateWidgetSize(), GameDifficultyWindow::UpdateWidgetSize(), GameOptionsWindow::UpdateWidgetSize(), BuildRailStationWindow::UpdateWidgetSize(), OrdersWindow::UpdateWidgetSize(), BuildObjectWindow::UpdateWidgetSize(), MessageHistoryWindow::UpdateWidgetSize(), NewGRFWindow::UpdateWidgetSize(), NewGRFParametersWindow::UpdateWidgetSize(), NetworkJoinStatusWindow::UpdateWidgetSize(), NetworkClientListWindow::UpdateWidgetSize(), NetworkClientListPopupWindow::UpdateWidgetSize(), NetworkStartServerWindow::UpdateWidgetSize(), NetworkGameWindow::UpdateWidgetSize(), NetworkContentListWindow::UpdateWidgetSize(), NetworkChatWindow::UpdateWidgetSize(), MusicWindow::UpdateWidgetSize(), MusicTrackSelectionWindow::UpdateWidgetSize(), TooltipsWindow::UpdateWidgetSize(), AboutWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), SelectGameWindow::UpdateWidgetSize(), IndustryDirectoryWindow::UpdateWidgetSize(), BuildIndustryWindow::UpdateWidgetSize(), VehicleGroupWindow::UpdateWidgetSize(), PerformanceRatingDetailWindow::UpdateWidgetSize(), CompanyLeagueWindow::UpdateWidgetSize(), PaymentRatesGraphWindow::UpdateWidgetSize(), BaseGraphWindow::UpdateWidgetSize(), GenerateProgressWindow::UpdateWidgetSize(), CreateScenarioWindow::UpdateWidgetSize(), GenerateLandscapeWindow::UpdateWidgetSize(), SaveLoadWindow::UpdateWidgetSize(), DepotWindow::UpdateWidgetSize(), SetDateWindow::UpdateWidgetSize(), CompanyWindow::UpdateWidgetSize(), SelectCompanyManagerFaceWindow::UpdateWidgetSize(), SelectCompanyLiveryWindow::UpdateWidgetSize(), CompanyFinancesWindow::UpdateWidgetSize(), CheatWindow::UpdateWidgetSize(), BuildVehicleWindow::UpdateWidgetSize(), BuildBridgeWindow::UpdateWidgetSize(), ReplaceVehicleWindow::UpdateWidgetSize(), and BuildAirportWindow::UpdateWidgetSize().

int GetStringHeight ( StringID  str,
int  maxw 
)

Calculates height of string (in pixels).

The string is changed to a multiline string if needed.

Parameters:
str string to check
maxw maximum string width
Returns:
height of pixels of string when it is drawn

Definition at line 802 of file gfx.cpp.

References DRAW_STRING_BUFFER, FormatStringLinebreaks(), FS_NORMAL, GB(), GetMultilineStringHeight(), and lastof.

Referenced by EnginePreviewWindow::DrawWidget(), GetStringMultiLineBoundingBox(), GameOptionsWindow::UpdateWidgetSize(), TooltipsWindow::UpdateWidgetSize(), ErrmsgWindow::UpdateWidgetSize(), LandInfoWindow::UpdateWidgetSize(), EnginePreviewWindow::UpdateWidgetSize(), BuyCompanyWindow::UpdateWidgetSize(), and CheatWindow::UpdateWidgetSize().

Dimension GetStringMultiLineBoundingBox ( StringID  str,
const Dimension suggestion 
)

Calculate string bounding box for multi-line strings.

Parameters:
str String to check.
suggestion Suggested bounding box.
Returns:
Bounding box for the multi-line string, may be bigger than suggestion.

Definition at line 819 of file gfx.cpp.

References GetStringHeight().

Referenced by TownAuthorityWindow::UpdateWidgetSize(), NewsWindow::UpdateWidgetSize(), QueryWindow::UpdateWidgetSize(), and BuildAirportWindow::UpdateWidgetSize().

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.

Precondition:
dpi->zoom == ZOOM_LVL_NORMAL, right >= left, bottom >= top
Parameters:
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 148 of file gfx.cpp.

References Blitter::DrawColourMappingRect(), Blitter::DrawRect(), FILLRECT_CHECKER, FILLRECT_RECOLOUR, GB(), BlitterFactoryBase::GetCurrentBlitter(), Blitter::MoveTo(), PALETTE_WIDTH, Blitter::SetPixel(), and ZOOM_LVL_NORMAL.

Referenced by NWidgetLeaf::Draw(), NWidgetScrollbar::Draw(), NWidgetViewport::Draw(), NWidgetBackground::Draw(), NWidgetMatrix::Draw(), NWidgetToolbarContainer::Draw(), CargoesField::Draw(), DrawArrowButtons(), DrawCaption(), NetworkContentListWindow::DrawDetails(), DrawFrame(), DrawFrameRect(), BaseGraphWindow::DrawGraph(), CargoesField::DrawHorConnection(), SmallMapWindow::DrawHorizMapIndicator(), DrawHorizontalScrollbar(), DrawMatrix(), NetworkContentListWindow::DrawMatrix(), NetworkGameWindow::DrawServerLine(), SmallMapWindow::DrawSmallMap(), DrawString(), DrawTrainDetails(), LinkGraphOverlay::DrawVertex(), DrawVerticalScrollbar(), SmallMapWindow::DrawVertMapIndicator(), DropdownWindow::DrawWidget(), CompanyStationsWindow::DrawWidget(), SmallMapWindow::DrawWidget(), BuildRailWaypointWindow::DrawWidget(), BuildRailStationWindow::DrawWidget(), OrdersWindow::DrawWidget(), BuildObjectWindow::DrawWidget(), NewsWindow::DrawWidget(), NewGRFWindow::DrawWidget(), NetworkClientListWindow::DrawWidget(), NetworkClientListPopupWindow::DrawWidget(), MusicWindow::DrawWidget(), MusicTrackSelectionWindow::DrawWidget(), TooltipsWindow::DrawWidget(), LinkGraphLegendWindow::DrawWidget(), BuildIndustryWindow::DrawWidget(), PerformanceRatingDetailWindow::DrawWidget(), PaymentRatesGraphWindow::DrawWidget(), SaveLoadWindow::DrawWidget(), CompanyFinancesWindow::DrawWidget(), BuildAirportWindow::DrawWidget(), AIDebugWindow::DrawWidget(), DrawYearColumn(), HighlightDragPosition(), NetworkDrawChatMessage(), IConsoleWindow::OnPaint(), and StationsWndShowStationRating().

void HandleKeypress ( uint32  raw_key  ) 

Handle keyboard input.

Parameters:
raw_key Lower 8 bits contain the ASCII character, the higher 16 bits the keycode

Definition at line 1996 of file window.cpp.

References EditBoxInGlobalFocus(), ES_HANDLED, FindWindowById(), GB(), IsGeneratingWorld(), IsLocalCompany(), Window::OnKeyPress(), and Window::window_class.

void SetAnimatedMouseCursor ( const AnimCursor table  ) 

Assign an animation to the cursor.

Parameters:
table Array of animation states.
See also:
SetMouseCursor

Definition at line 1827 of file gfx.cpp.

References CursorVars::animate_cur, and CursorVars::animate_list.

void SetDirtyBlocks ( int  left,
int  top,
int  right,
int  bottom 
)

This function extends the internal _invalid_rect rectangle as it now contains the rectangle defined by the given parameters.

Note the point (0,0) is top left.

Parameters:
left The left edge of the rectangle
top The top edge of the rectangle
right The right edge of the rectangle
bottom The bottm edge of the rectangle
See also:
DrawDirtyBlocks
Todo:
The name of the function should be called like AddDirtyBlock as it neither set a dirty rect nor add several dirty rects although the function name is in plural. (Progman)

Definition at line 1647 of file gfx.cpp.

Referenced by MarkViewportDirty(), MarkWholeScreenDirty(), PositionWindow(), Window::SetDirty(), NWidgetBase::SetDirty(), and NewsWindow::SetWindowTop().

void SetMouseCursor ( CursorID  sprite,
PaletteID  pal 
)

Assign a single non-animated sprite to the cursor.

Parameters:
sprite Sprite to draw for the cursor.
pal Palette to use for recolouring.
See also:
SetAnimatedMouseCursor

Definition at line 1814 of file gfx.cpp.

References CursorVars::animate_timeout, and SetCursorSprite().

Referenced by CleanupGeneration(), GenerateProgressWindow::OnClick(), SaveFileDone(), and SaveFileStart().

void UpdateCursorSize (  ) 

Update cursor dimension.

Called when changing cursor sprite resp. reloading grfs.

Definition at line 1759 of file gfx.cpp.

References CursorVars::dirty, GB(), Sprite::height, CursorVars::sprite, SPRITE_WIDTH, ST_NORMAL, Sprite::width, Sprite::x_offs, and Sprite::y_offs.

Referenced by GfxLoadSprites(), and SetCursorSprite().


Variable Documentation

Whether the given NewGRFs must get a palette remap from windows to DOS or not.

Definition at line 26 of file gfxinit.cpp.

Referenced by SpriteLoaderGrf::LoadSprite(), LoadSpriteTables(), and ReadSprite().

const int DRAW_STRING_BUFFER = 2048 [static]

Generated on Sun Jun 5 04:20:09 2011 for OpenTTD by  doxygen 1.6.1