wrote documentation for spritesheet, and worked on adding spritesheet to graphics config
This commit is contained in:
parent
bbffbe1cb3
commit
83b87c6d63
9 changed files with 136 additions and 126 deletions
|
|
@ -11,16 +11,64 @@ extern "C" {
|
|||
#include "arc/graphics/renderer.h"
|
||||
#include "arc/std/string.h"
|
||||
|
||||
/**
|
||||
* @brief the spritesheet type, it will be defined within the backend (most likely in the backend's spritesheet header)
|
||||
*/
|
||||
typedef struct ARC_Spritesheet ARC_Spritesheet;
|
||||
|
||||
/**
|
||||
* @brief creates a spritesheet from a given filepath and renderer
|
||||
*
|
||||
* @note this function only reads in pngs currently, will be updated later to support more file extensions
|
||||
*
|
||||
* @param[out] spritesheet ARC_Spritesheet to create
|
||||
* @param[in] renderer the renderer used to create the spritesheet
|
||||
* @param[in] path the path of the spritesheet to read in
|
||||
*/
|
||||
void ARC_Spritesheet_CreateFromFile(ARC_Spritesheet **spritesheet, ARC_Renderer *renderer, ARC_String *path);
|
||||
|
||||
/**
|
||||
* @brief destroys a given spritehseet
|
||||
*
|
||||
* @param[in] spritesheet ARC_Spritesheet to free
|
||||
*/
|
||||
void ARC_Spritesheet_Destroy(ARC_Spritesheet *spritesheet);
|
||||
|
||||
void ARC_Spritesheet_RenderArea(ARC_Spritesheet *spritesheet, ARC_Rect *sheetBounds, ARC_Renderer *renderer, ARC_Rect *renderBounds);
|
||||
/**
|
||||
* @brief renders a section of a spritesheet
|
||||
*
|
||||
* @param[in] spritesheet ARC_Spritesheet to render part of
|
||||
* @param[in] sheetBounds the area of the spritesheet to render
|
||||
* @param[in] renderer the renderer to draw to
|
||||
* @param[in] renderBounds the area of the renderer to copy the spritesheet area to
|
||||
*/
|
||||
void ARC_Spritesheet_RenderArea(ARC_Spritesheet *spritesheet, ARC_Rect sheetBounds, ARC_Renderer *renderer, ARC_Rect renderBounds);
|
||||
|
||||
/**
|
||||
* @brief renders a tile of a spritesheet
|
||||
*
|
||||
* @note if the tile size is zero this function will error
|
||||
*
|
||||
* @param[in] spritesheet ARC_Spritesheet to render tile from
|
||||
* @param[in] tilePosition the coordinate of a tile to render (will be multiplied by tile size)
|
||||
* @param[in] renderer the renderer to draw to
|
||||
* @param[in] renderBounds the area of the renderer to copy the tile to
|
||||
*/
|
||||
void ARC_Spritesheet_RenderTile(ARC_Spritesheet *spritesheet, ARC_Point tilePosition, ARC_Renderer *renderer, ARC_Rect renderBounds);
|
||||
|
||||
/**
|
||||
* @brief gets the x and y size of a given spritesheet in pixels
|
||||
*
|
||||
* @param[in] spritesheet ARC_Spritesheet to get the size of
|
||||
*/
|
||||
ARC_Point ARC_Spritesheet_GetSize(ARC_Spritesheet *spritesheet);
|
||||
uint32_t *ARC_Spritesheet_GetTileSize(ARC_Spritesheet *spritesheet);
|
||||
|
||||
/**
|
||||
* @brief gets the length of a tile (square) in pixels of a spritesheet
|
||||
*
|
||||
* @param[in] spritesheet gets the tilesize of a spritesheet
|
||||
*/
|
||||
uint32_t ARC_Spritesheet_GetTileSize(ARC_Spritesheet *spritesheet);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue