libtcod
Loading...
Searching...
No Matches
Tilesets (C)

TCOD_Tileset loading and handling functions. More...

Classes

struct  TCOD_TilesetObserver
 
struct  TCOD_Tileset
 A container for libtcod tileset graphics. More...
 

Typedefs

typedef struct TCOD_Tileset TCOD_Tileset
 

Functions

TCOD_TilesetTCOD_tileset_new (int tile_width, int tile_height)
 Create a new tile-set with the given tile size.
 
void TCOD_tileset_delete (TCOD_Tileset *tileset)
 Delete a tile-set.
 
TCOD_TilesetTCOD_tileset_load (const char *filename, int columns, int rows, int n, const int *charmap)
 Load a PNG font as a tilesheet and return a TCOD_Tileset.
 
TCOD_TilesetTCOD_tileset_load_mem (size_t buffer_length, const unsigned char *buffer, int columns, int rows, int n, const int *charmap)
 Load a PNG font from memory and return a TCOD_Tileset.
 
TCOD_TilesetTCOD_tileset_load_raw (int width, int height, const struct TCOD_ColorRGBA *pixels, int columns, int rows, int n, const int *charmap)
 Load raw RGBA data and return a TCOD_Tileset.
 
int TCOD_tileset_assign_tile (struct TCOD_Tileset *tileset, int tile_id, int codepoint)
 Assign a codepoint to an existing tile based on its tile ID.
 
const struct TCOD_ColorRGBATCOD_tileset_get_tile (const TCOD_Tileset *tileset, int codepoint)
 Return a pointer to the tile for codepoint.
 
struct TCOD_TilesetObserverTCOD_tileset_observer_new (struct TCOD_Tileset *tileset)
 Return a new observer to this tileset.
 
void TCOD_tileset_observer_delete (struct TCOD_TilesetObserver *observer)
 Delete an existing observer.
 
void TCOD_tileset_notify_tile_changed (TCOD_Tileset *tileset, int tile_id)
 Called to notify any observers that a tile has been changed.
 
TCOD_Error TCOD_tileset_reserve (TCOD_Tileset *tileset, int desired)
 Reserve memory for a specific amount of tiles.
 
TCOD_TilesetTCOD_load_bdf (const char *path)
 Load a BDF font from a file path.
 
TCOD_TilesetTCOD_load_bdf_memory (int size, const unsigned char *buffer)
 Load a BDF font from memory.
 
TCOD_Error TCOD_tileset_render_to_surface (const TCOD_Tileset *tileset, const TCOD_Console *console, TCOD_Console **cache, struct SDL_Surface **surface_out)
 Render a console to a SDL_Surface with a software renderer.
 

Variables

static const int TCOD_CHARMAP_CP437 [256] = { 0x0000, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, 0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C, 0x25BA, 0x25C4, 0x2195, 0x203C, 0x00B6, 0x00A7, 0x25AC, 0x21A8, 0x2191, 0x2193, 0x2192, 0x2190, 0x221F, 0x2194, 0x25B2, 0x25BC, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x2302, 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0, }
 A character mapping of a Code Page 437 tileset to Unicode.
 
static const int TCOD_CHARMAP_TCOD [256] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x7B, 0x7C, 0x7D, 0x7E, 0x2591, 0x2592, 0x2593, 0x2502, 0x2500, 0x253C, 0x2524, 0x2534, 0x251C, 0x252C, 0x2514, 0x250C, 0x2510, 0x2518, 0x2598, 0x259D, 0x2580, 0x2596, 0x259A, 0x2590, 0x2597, 0x2191, 0x2193, 0x2190, 0x2192, 0x25B2, 0x25BC, 0x25C4, 0x25BA, 0x2195, 0x2194, 0x2610, 0x2611, 0x25CB, 0x25C9, 0x2551, 0x2550, 0x256C, 0x2563, 0x2569, 0x2560, 0x2566, 0x255A, 0x2554, 0x2557, 0x255D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
 A character mapping of a deprecated TCOD tileset to Unicode.
 

Detailed Description

TCOD_Tileset loading and handling functions.

Function Documentation

◆ TCOD_load_bdf()

TCOD_Tileset * TCOD_load_bdf ( const char * path)

Load a BDF font from a file path.

For the best results, you should use a BDF font with a cell-based monospace alignment.

May return NULL on failure. See TCOD_get_error for the error message.

embed:rst:leading-asterisk
 .. versionadded:: 1.16

◆ TCOD_load_bdf_memory()

TCOD_Tileset * TCOD_load_bdf_memory ( int size,
const unsigned char * buffer )

Load a BDF font from memory.

size is the byte length of buffer. buffer is the BDF data to load.

May return NULL on failure. See TCOD_get_error for the error message.

embed:rst:leading-asterisk
 .. versionadded:: 1.16

◆ TCOD_tileset_assign_tile()

int TCOD_tileset_assign_tile ( struct TCOD_Tileset * tileset,
int tile_id,
int codepoint )

Assign a codepoint to an existing tile based on its tile ID.

Parameters
tilesetA TCOD_Tileset pointer, must not be NULL.
tile_idThe index of the tile.
codepointThe Unicode codepoint to associate with tile_id.
Returns
Returns a negative value on error.

◆ TCOD_tileset_delete()

void TCOD_tileset_delete ( TCOD_Tileset * tileset)

Delete a tile-set.

embed:rst:leading-asterisk
 .. versionadded:: 1.19

◆ TCOD_tileset_get_tile()

const struct TCOD_ColorRGBA * TCOD_tileset_get_tile ( const TCOD_Tileset * tileset,
int codepoint )

Return a pointer to the tile for codepoint.

Returns NULL if no tile exists for codepoint.

◆ TCOD_tileset_load()

TCOD_Tileset * TCOD_tileset_load ( const char * filename,
int columns,
int rows,
int n,
const int * charmap )

Load a PNG font as a tilesheet and return a TCOD_Tileset.

filename is the path to a PNG file.

columns and rows are the shape of the tileset in the image. The tile size will be derived from these parameters and the size of the image.

charmap[n] is an array of which codepoints to assign to which tiles. Tiles are assigned in row-major order. TCOD_CHARMAP_CP437 or TCOD_CHARMAP_TCOD could be used here.

embed:rst:leading-asterisk
 .. versionadded:: 1.19

◆ TCOD_tileset_load_mem()

TCOD_Tileset * TCOD_tileset_load_mem ( size_t buffer_length,
const unsigned char * buffer,
int columns,
int rows,
int n,
const int * charmap )

Load a PNG font from memory and return a TCOD_Tileset.

buffer[buffer_length] is the PNG data to load.

The remaining parameters are the same as TCOD_tileset_load.

embed:rst:leading-asterisk
 .. versionadded:: 1.19

◆ TCOD_tileset_load_raw()

TCOD_Tileset * TCOD_tileset_load_raw ( int width,
int height,
const struct TCOD_ColorRGBA * pixels,
int columns,
int rows,
int n,
const int * charmap )

Load raw RGBA data and return a TCOD_Tileset.

pixels[width*height] is a row-major RGBA-ordered byte array.

The remaining parameters are the same as TCOD_tileset_load.

embed:rst:leading-asterisk
 .. versionadded:: 1.19

◆ TCOD_tileset_new()

TCOD_Tileset * TCOD_tileset_new ( int tile_width,
int tile_height )

Create a new tile-set with the given tile size.

embed:rst:leading-asterisk
 .. versionadded:: 1.19

◆ TCOD_tileset_notify_tile_changed()

void TCOD_tileset_notify_tile_changed ( TCOD_Tileset * tileset,
int tile_id )

Called to notify any observers that a tile has been changed.

This may cause running atlases to update or mark cache consoles as dirty.

For internal use.

◆ TCOD_tileset_observer_delete()

void TCOD_tileset_observer_delete ( struct TCOD_TilesetObserver * observer)

Delete an existing observer.

Will call this observers on_observer_delete callback.

For internal use.

◆ TCOD_tileset_observer_new()

struct TCOD_TilesetObserver * TCOD_tileset_observer_new ( struct TCOD_Tileset * tileset)

Return a new observer to this tileset.

For internal use.

◆ TCOD_tileset_render_to_surface()

TCOD_Error TCOD_tileset_render_to_surface ( const TCOD_Tileset * tileset,
const TCOD_Console * console,
TCOD_Console ** cache,
struct SDL_Surface ** surface_out )

Render a console to a SDL_Surface with a software renderer.

tileset is the tiles to render with, must not be NULL.

console is the console to render, must not be NULL.

cache is an optional pointer to a consoled used as a cache. The console at *cache will be created or modified. The cache will be used to skip drawing already drawn tiles on any subsequent calls.

surface_out is a pointer to where to put the surface will be managed. The surface at *surface_out will be created or modified and will change to match the size of console and tileset. The pixel format will be SDL_PIXELFORMAT_RGBA32.

Returns a negative value on error, see TCOD_get_error.

embed:rst:leading-asterisk
 .. versionadded:: 1.16

◆ TCOD_tileset_reserve()

TCOD_Error TCOD_tileset_reserve ( TCOD_Tileset * tileset,
int desired )

Reserve memory for a specific amount of tiles.

For internal use.

Variable Documentation

◆ TCOD_CHARMAP_CP437

const int TCOD_CHARMAP_CP437[256] = { 0x0000, 0x263A, 0x263B, 0x2665, 0x2666, 0x2663, 0x2660, 0x2022, 0x25D8, 0x25CB, 0x25D9, 0x2642, 0x2640, 0x266A, 0x266B, 0x263C, 0x25BA, 0x25C4, 0x2195, 0x203C, 0x00B6, 0x00A7, 0x25AC, 0x21A8, 0x2191, 0x2193, 0x2192, 0x2190, 0x221F, 0x2194, 0x25B2, 0x25BC, 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002A, 0x002B, 0x002C, 0x002D, 0x002E, 0x002F, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x003A, 0x003B, 0x003C, 0x003D, 0x003E, 0x003F, 0x0040, 0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048, 0x0049, 0x004A, 0x004B, 0x004C, 0x004D, 0x004E, 0x004F, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006A, 0x006B, 0x006C, 0x006D, 0x006E, 0x006F, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007A, 0x007B, 0x007C, 0x007D, 0x007E, 0x2302, 0x00C7, 0x00FC, 0x00E9, 0x00E2, 0x00E4, 0x00E0, 0x00E5, 0x00E7, 0x00EA, 0x00EB, 0x00E8, 0x00EF, 0x00EE, 0x00EC, 0x00C4, 0x00C5, 0x00C9, 0x00E6, 0x00C6, 0x00F4, 0x00F6, 0x00F2, 0x00FB, 0x00F9, 0x00FF, 0x00D6, 0x00DC, 0x00A2, 0x00A3, 0x00A5, 0x20A7, 0x0192, 0x00E1, 0x00ED, 0x00F3, 0x00FA, 0x00F1, 0x00D1, 0x00AA, 0x00BA, 0x00BF, 0x2310, 0x00AC, 0x00BD, 0x00BC, 0x00A1, 0x00AB, 0x00BB, 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556, 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510, 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F, 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567, 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B, 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580, 0x03B1, 0x00DF, 0x0393, 0x03C0, 0x03A3, 0x03C3, 0x00B5, 0x03C4, 0x03A6, 0x0398, 0x03A9, 0x03B4, 0x221E, 0x03C6, 0x03B5, 0x2229, 0x2261, 0x00B1, 0x2265, 0x2264, 0x2320, 0x2321, 0x00F7, 0x2248, 0x00B0, 0x2219, 0x00B7, 0x221A, 0x207F, 0x00B2, 0x25A0, 0x00A0, }
static

A character mapping of a Code Page 437 tileset to Unicode.

embed:rst:leading-asterisk
 .. versionadded:: 1.19

◆ TCOD_CHARMAP_TCOD

const int TCOD_CHARMAP_TCOD[256] = { 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x60, 0x7B, 0x7C, 0x7D, 0x7E, 0x2591, 0x2592, 0x2593, 0x2502, 0x2500, 0x253C, 0x2524, 0x2534, 0x251C, 0x252C, 0x2514, 0x250C, 0x2510, 0x2518, 0x2598, 0x259D, 0x2580, 0x2596, 0x259A, 0x2590, 0x2597, 0x2191, 0x2193, 0x2190, 0x2192, 0x25B2, 0x25BC, 0x25C4, 0x25BA, 0x2195, 0x2194, 0x2610, 0x2611, 0x25CB, 0x25C9, 0x2551, 0x2550, 0x256C, 0x2563, 0x2569, 0x2560, 0x2566, 0x255A, 0x2554, 0x2557, 0x255D, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }
static

A character mapping of a deprecated TCOD tileset to Unicode.

embed:rst:leading-asterisk
 .. versionadded:: 1.19