3ds_tests/include/c2d/spritesheet.h
2024-12-29 19:19:38 +01:00

62 lines
1.7 KiB
C

/**
* @file spritesheet.h
* @brief Spritesheet (texture atlas) loading and management
*/
#pragma once
#include "base.h"
struct C2D_SpriteSheet_s;
typedef struct C2D_SpriteSheet_s* C2D_SpriteSheet;
/** @defgroup SpriteSheet Sprite sheet functions
* @{
*/
/** @brief Load a sprite sheet from file
* @param[in] filename Name of the sprite sheet file (.t3x)
* @returns Sprite sheet handle
* @retval NULL Error
*/
C2D_SpriteSheet C2D_SpriteSheetLoad(const char* filename);
/** @brief Load a sprite sheet from memory
* @param[in] data Data to load
* @param[in] size Size of the data to load
* @returns Sprite sheet handle
* @retval NULL Error
*/
C2D_SpriteSheet C2D_SpriteSheetLoadFromMem(const void* data, size_t size);
/** @brief Load sprite sheet from file descriptor
* @param[in] fd File descriptor used to load data
* @returns Sprite sheet handle
* @retval NULL Error
*/
C2D_SpriteSheet C2D_SpriteSheetFromFD(int fd);
/** @brief Load sprite sheet from stdio file handle
* @param[in] f File handle used to load data
* @returns Sprite sheet handle
* @retval NULL Error
*/
C2D_SpriteSheet C2D_SpriteSheetLoadFromHandle(FILE* f);
/** @brief Free a sprite sheet
* @param[in] sheet Sprite sheet handle
*/
void C2D_SpriteSheetFree(C2D_SpriteSheet sheet);
/** @brief Retrieves the number of sprites in the specified sprite sheet
* @param[in] sheet Sprite sheet handle
* @returns Number of sprites
*/
size_t C2D_SpriteSheetCount(C2D_SpriteSheet sheet);
/** @brief Retrieves the specified image from the specified sprite sheet
* @param[in] sheet Sprite sheet handle
* @param[in] index Index of the image to retrieve
* @returns Image object
*/
C2D_Image C2D_SpriteSheetGetImage(C2D_SpriteSheet sheet, size_t index);
/** @} */