OpenTTD Source 20241224-master-gee860a5c8e
gfx_type.h File Reference

Types related to the graphics and/or input devices. More...

#include "core/endian_type.hpp"
#include "core/enum_type.hpp"
#include "core/geometry_type.hpp"
#include "zoom_type.h"

Go to the source code of this file.

Data Structures

struct  PalSpriteID
 Combination of a palette sprite and a 'real' sprite. More...
 
struct  AnimCursor
 A single sprite of a list of animated cursors. More...
 
struct  CursorSprite
 
struct  CursorVars
 Collection of variables for cursor-display and -animation. More...
 
struct  DrawPixelInfo
 Data about how and where to blit pixels. More...
 
union  Colour
 Structure to access the alpha, red, green, and blue channels from a 32 bit number. More...
 
struct  SubSprite
 Used to only draw a part of the sprite. More...
 
struct  Palette
 Information about the currently used palette. More...
 

Typedefs

typedef uint32_t SpriteID
 The number of a sprite, without mapping bits and colourtables.
 
typedef uint32_t PaletteID
 The number of the palette.
 
typedef uint32_t CursorID
 The number of the cursor (sprite)
 

Enumerations

enum  WindowKeyCodes {
  WKC_SHIFT = 0x8000 , WKC_CTRL = 0x4000 , WKC_ALT = 0x2000 , WKC_META = 0x1000 ,
  WKC_GLOBAL_HOTKEY = 0x0800 , WKC_SPECIAL_KEYS = WKC_SHIFT | WKC_CTRL | WKC_ALT | WKC_META | WKC_GLOBAL_HOTKEY , WKC_NONE = 0 , WKC_ESC = 1 ,
  WKC_BACKSPACE = 2 , WKC_INSERT = 3 , WKC_DELETE = 4 , WKC_PAGEUP = 5 ,
  WKC_PAGEDOWN = 6 , WKC_END = 7 , WKC_HOME = 8 , WKC_LEFT = 9 ,
  WKC_UP = 10 , WKC_RIGHT = 11 , WKC_DOWN = 12 , WKC_RETURN = 13 ,
  WKC_TAB = 14 , WKC_SPACE = 32 , WKC_F1 = 33 , WKC_F2 = 34 ,
  WKC_F3 = 35 , WKC_F4 = 36 , WKC_F5 = 37 , WKC_F6 = 38 ,
  WKC_F7 = 39 , WKC_F8 = 40 , WKC_F9 = 41 , WKC_F10 = 42 ,
  WKC_F11 = 43 , WKC_F12 = 44 , WKC_BACKQUOTE = 45 , WKC_PAUSE = 46 ,
  WKC_NUM_DIV = 138 , WKC_NUM_MUL = 139 , WKC_NUM_MINUS = 140 , WKC_NUM_PLUS = 141 ,
  WKC_NUM_ENTER = 142 , WKC_NUM_DECIMAL = 143 , WKC_SLASH = 144 , WKC_SEMICOLON = 145 ,
  WKC_EQUALS = 146 , WKC_L_BRACKET = 147 , WKC_BACKSLASH = 148 , WKC_R_BRACKET = 149 ,
  WKC_SINGLEQUOTE = 150 , WKC_COMMA = 151 , WKC_PERIOD = 152 , WKC_MINUS = 153
}
 
enum  FontSize {
  FS_NORMAL , FS_SMALL , FS_LARGE , FS_MONO ,
  FS_END , FS_BEGIN = FS_NORMAL
}
 Available font sizes. More...
 
enum  Colours : uint8_t {
  COLOUR_BEGIN , COLOUR_DARK_BLUE = COLOUR_BEGIN , COLOUR_PALE_GREEN , COLOUR_PINK ,
  COLOUR_YELLOW , COLOUR_RED , COLOUR_LIGHT_BLUE , COLOUR_GREEN ,
  COLOUR_DARK_GREEN , COLOUR_BLUE , COLOUR_CREAM , COLOUR_MAUVE ,
  COLOUR_PURPLE , COLOUR_ORANGE , COLOUR_BROWN , COLOUR_GREY ,
  COLOUR_WHITE , COLOUR_END , INVALID_COLOUR = 0xFF
}
 
enum  TextColour {
  TC_BEGIN = 0x00 , TC_FROMSTRING = 0x00 , TC_BLUE = 0x00 , TC_SILVER = 0x01 ,
  TC_GOLD = 0x02 , TC_RED = 0x03 , TC_PURPLE = 0x04 , TC_LIGHT_BROWN = 0x05 ,
  TC_ORANGE = 0x06 , TC_GREEN = 0x07 , TC_YELLOW = 0x08 , TC_DARK_GREEN = 0x09 ,
  TC_CREAM = 0x0A , TC_BROWN = 0x0B , TC_WHITE = 0x0C , TC_LIGHT_BLUE = 0x0D ,
  TC_GREY = 0x0E , TC_DARK_BLUE = 0x0F , TC_BLACK = 0x10 , TC_END ,
  TC_INVALID = 0xFF , TC_IS_PALETTE_COLOUR = 0x100 , TC_NO_SHADE = 0x200 , TC_FORCED = 0x400 ,
  TC_COLOUR_MASK = 0xFF , TC_FLAGS_MASK = 0x700
}
 Colour of the strings, see _string_colourmap in table/string_colours.h or docs/ottd-colourtext-palette.png. More...
 
enum  FillRectMode { FILLRECT_OPAQUE , FILLRECT_CHECKER , FILLRECT_RECOLOUR }
 Define the operation GfxFillRect performs. More...
 
enum  PaletteType { PAL_DOS , PAL_WINDOWS , PAL_AUTODETECT , MAX_PAL = 2 }
 Palettes OpenTTD supports. More...
 
enum class  SpriteType : uint8_t {
  Normal = 0 , MapGen = 1 , Font = 2 , Recolour = 3 ,
  Invalid = 4
}
 Types of sprites that might be loaded. More...
 
enum  Support8bpp { S8BPP_NONE = 0 , S8BPP_SYSTEM , S8BPP_HARDWARE }
 Modes for 8bpp support. More...
 
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
}
 How to align the to-be drawn text. More...
 

Functions

const char * FontSizeToName (FontSize fs)
 

Variables

static constexpr uint8_t PALETTE_ANIM_SIZE = 28
 number of animated colours
 
static constexpr uint8_t PALETTE_ANIM_START = 227
 Index in the _palettes array from which all animations are taking places (table/palettes.h)
 
static const uint MILLISECONDS_PER_TICK = 27
 The number of milliseconds per game tick.
 

Detailed Description

Types related to the graphics and/or input devices.

Definition in file gfx_type.h.

Typedef Documentation

◆ CursorID

typedef uint32_t CursorID

The number of the cursor (sprite)

Definition at line 20 of file gfx_type.h.

◆ PaletteID

typedef uint32_t PaletteID

The number of the palette.

Definition at line 19 of file gfx_type.h.

◆ SpriteID

typedef uint32_t SpriteID

The number of a sprite, without mapping bits and colourtables.

Definition at line 18 of file gfx_type.h.

Enumeration Type Documentation

◆ Colours

enum Colours : uint8_t

Definition at line 235 of file gfx_type.h.

◆ FillRectMode

Define the operation GfxFillRect performs.

Enumerator
FILLRECT_OPAQUE 

Fill rectangle with a single colour.

FILLRECT_CHECKER 

Draw only every second pixel, used for greying-out.

FILLRECT_RECOLOUR 

Apply a recolour sprite to the screen content.

Definition at line 297 of file gfx_type.h.

◆ FontSize

enum FontSize

Available font sizes.

Enumerator
FS_NORMAL 

Index of the normal font in the font tables.

FS_SMALL 

Index of the small font in the font tables.

FS_LARGE 

Index of the large font in the font tables.

FS_MONO 

Index of the monospaced font in the font tables.

FS_BEGIN 

First font.

Definition at line 208 of file gfx_type.h.

◆ PaletteType

Palettes OpenTTD supports.

Enumerator
PAL_DOS 

Use the DOS palette.

PAL_WINDOWS 

Use the Windows palette.

PAL_AUTODETECT 

Automatically detect the palette based on the graphics pack.

MAX_PAL 

The number of palettes.

Definition at line 304 of file gfx_type.h.

◆ SpriteType

enum class SpriteType : uint8_t
strong

Types of sprites that might be loaded.

Enumerator
Normal 

The most basic (normal) sprite.

MapGen 

Special sprite for the map generator.

Font 

A sprite used for fonts.

Recolour 

Recolour sprite.

Invalid 

Pseudosprite or other unusable sprite, used only internally.

Definition at line 312 of file gfx_type.h.

◆ StringAlignment

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.

Definition at line 342 of file gfx_type.h.

◆ Support8bpp

Modes for 8bpp support.

Enumerator
S8BPP_NONE 

No support for 8bpp by OS or hardware, force 32bpp blitters.

S8BPP_SYSTEM 

No 8bpp support by hardware, do not try to use 8bpp video modes or hardware palettes.

S8BPP_HARDWARE 

Full 8bpp support by OS and hardware.

Definition at line 335 of file gfx_type.h.

◆ TextColour

enum TextColour

Colour of the strings, see _string_colourmap in table/string_colours.h or docs/ottd-colourtext-palette.png.

Enumerator
TC_IS_PALETTE_COLOUR 

Colour value is already a real palette colour index, not an index of a StringColour.

TC_NO_SHADE 

Do not add shading to this text colour.

TC_FORCED 

Ignore colour changes from strings.

TC_COLOUR_MASK 

Mask to test if TextColour (without flags) is within limits.

TC_FLAGS_MASK 

Mask to test if TextColour (with flags) is within limits.

Definition at line 260 of file gfx_type.h.

◆ WindowKeyCodes

Enumerator
WKC_GLOBAL_HOTKEY 

Fake keycode bit to indicate global hotkeys.

WKC_SLASH 

/ Forward slash

WKC_SEMICOLON 

; Semicolon

WKC_EQUALS 

= Equals

WKC_L_BRACKET 

[ Left square bracket

WKC_BACKSLASH 

\ Backslash

WKC_R_BRACKET 

] Right square bracket

WKC_SINGLEQUOTE 

' Single quote

WKC_COMMA 

, Comma

WKC_PERIOD 

. Period

WKC_MINUS 
  • Minus

Definition at line 28 of file gfx_type.h.

Function Documentation

◆ FontSizeToName()

const char * FontSizeToName ( FontSize  fs)
inline

Definition at line 219 of file gfx_type.h.

Variable Documentation

◆ MILLISECONDS_PER_TICK

const uint MILLISECONDS_PER_TICK = 27
static

The number of milliseconds per game tick.

The value 27 together with a day length of 74 ticks makes one day 1998 milliseconds, almost exactly 2 seconds. With a 2 second day, one standard month is 1 minute, and one standard year is slightly over 12 minutes.

Definition at line 325 of file gfx_type.h.

Referenced by ClientNetworkGameSocketHandler::CloseConnection(), and NetworkServer_Tick().

◆ PALETTE_ANIM_SIZE

constexpr uint8_t PALETTE_ANIM_SIZE = 28
staticconstexpr

number of animated colours

Definition at line 293 of file gfx_type.h.

◆ PALETTE_ANIM_START

constexpr uint8_t PALETTE_ANIM_START = 227
staticconstexpr

Index in the _palettes array from which all animations are taking places (table/palettes.h)

Definition at line 294 of file gfx_type.h.

Referenced by Blitter_32bppAnim::CopyFromBuffer(), and Blitter_32bppAnim::PaletteAnimate().