#ifndef ARC_GRAPHICS_SPRITESHEET_H_
#define ARC_GRAPHICS_SPRITESHEET_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>
#include "arc/math/point.h"
#include "arc/math/rectangle.h"
#include "arc/graphics/renderer.h"
#include "arc/std/string.h"

typedef struct ARC_Spritesheet ARC_Spritesheet;

void ARC_Spritesheet_CreateFromFile(ARC_Spritesheet **spritesheet, ARC_Renderer *renderer, ARC_String *path);

void ARC_Spritesheet_Destroy(ARC_Spritesheet *spritesheet);

void ARC_Spritesheet_RenderArea(ARC_Spritesheet *spritesheet, ARC_Rect *sheetBounds, ARC_Renderer *renderer, ARC_Rect *renderBounds);

ARC_Point ARC_Spritesheet_GetSize(ARC_Spritesheet *spritesheet);
uint32_t *ARC_Spritesheet_GetTileSize(ARC_Spritesheet *spritesheet);

#ifdef __cplusplus
}
#endif

#endif // !ARC_GRAPHICS_SPRITESHEET_H_
