mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r16672) -Codechange: Add functions to compute size of strings and sprites.
This commit is contained in:
parent
9489490e48
commit
996e5eea47
30
src/gfx.cpp
30
src/gfx.cpp
@ -830,6 +830,20 @@ Dimension GetStringBoundingBox(const char *str)
|
|||||||
return br;
|
return br;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get bounding box of a string. Uses parameters set by #DParam if needed.
|
||||||
|
* Has the same restrictions as #GetStringBoundingBox(const char *str).
|
||||||
|
* @param strid String to examine.
|
||||||
|
* @return Width and height of the bounding box for the string in pixels.
|
||||||
|
*/
|
||||||
|
Dimension GetStringBoundingBox(StringID strid)
|
||||||
|
{
|
||||||
|
char buffer[DRAW_STRING_BUFFER];
|
||||||
|
|
||||||
|
GetString(buffer, strid, lastof(buffer));
|
||||||
|
return GetStringBoundingBox(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw single character horizontally centered around (x,y)
|
* Draw single character horizontally centered around (x,y)
|
||||||
* @param c Character (glyph) to draw
|
* @param c Character (glyph) to draw
|
||||||
@ -926,6 +940,22 @@ skip_cont:;
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the size of a sprite.
|
||||||
|
* @param sprid Sprite to examine.
|
||||||
|
* @return Sprite size in pixels.
|
||||||
|
* @note The size assumes (0, 0) as top-left coordinate and ignores any part of the sprite drawn at the left or above that position.
|
||||||
|
*/
|
||||||
|
Dimension GetSpriteSize(SpriteID sprid)
|
||||||
|
{
|
||||||
|
const Sprite *sprite = GetSprite(sprid, ST_NORMAL);
|
||||||
|
|
||||||
|
Dimension d;
|
||||||
|
d.width = max<int>(0, sprite->x_offs + sprite->width);
|
||||||
|
d.height = max<int>(0, sprite->y_offs + sprite->height);
|
||||||
|
return d;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Draw a sprite.
|
* Draw a sprite.
|
||||||
* @param img Image number to draw
|
* @param img Image number to draw
|
||||||
|
@ -83,6 +83,7 @@ enum {
|
|||||||
void RedrawScreenRect(int left, int top, int right, int bottom);
|
void RedrawScreenRect(int left, int top, int right, int bottom);
|
||||||
void GfxScroll(int left, int top, int width, int height, int xo, int yo);
|
void GfxScroll(int left, int top, int width, int height, int xo, int yo);
|
||||||
|
|
||||||
|
Dimension GetSpriteSize(SpriteID sprid);
|
||||||
void DrawSprite(SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub = NULL);
|
void DrawSprite(SpriteID img, SpriteID pal, int x, int y, const SubSprite *sub = NULL);
|
||||||
|
|
||||||
/** How to align the to-be drawn text. */
|
/** How to align the to-be drawn text. */
|
||||||
@ -106,6 +107,7 @@ void GfxDrawLine(int left, int top, int right, int bottom, int colour);
|
|||||||
void DrawBox(int x, int y, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3);
|
void DrawBox(int x, int y, int dx1, int dy1, int dx2, int dy2, int dx3, int dy3);
|
||||||
|
|
||||||
Dimension GetStringBoundingBox(const char *str);
|
Dimension GetStringBoundingBox(const char *str);
|
||||||
|
Dimension GetStringBoundingBox(StringID strid);
|
||||||
uint32 FormatStringLinebreaks(char *str, int maxw);
|
uint32 FormatStringLinebreaks(char *str, int maxw);
|
||||||
int GetStringHeight(StringID str, int maxw);
|
int GetStringHeight(StringID str, int maxw);
|
||||||
void LoadStringWidthTable();
|
void LoadStringWidthTable();
|
||||||
|
Loading…
Reference in New Issue
Block a user