sprite.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <storage/storage.h>
  4. #include <gui/canvas.h>
  5. #ifdef __cplusplus
  6. extern "C" {
  7. #endif
  8. typedef struct Sprite Sprite;
  9. /** Sprite allocator
  10. * @return Sprite* Sprite instance
  11. */
  12. Sprite* sprite_alloc();
  13. /** Load sprite from bmp file
  14. * @param sprite Sprite instance
  15. * @param storage Storage instance
  16. * @param bmp_path path to bmp file
  17. * @return bool true if success
  18. */
  19. bool sprite_load_from_bmp(Sprite* sprite, Storage* storage, const char* bmp_path);
  20. /** Sprite deallocator
  21. * @param sprite Sprite instance
  22. */
  23. void sprite_free(Sprite* sprite);
  24. /** Get sprite width
  25. * @param sprite Sprite instance
  26. * @return size_t sprite width
  27. */
  28. size_t sprite_get_width(Sprite* sprite);
  29. /** Get sprite height
  30. * @param sprite Sprite instance
  31. * @return size_t sprite height
  32. */
  33. size_t sprite_get_height(Sprite* sprite);
  34. /** Draw sprite on canvas
  35. * @param canvas Canvas instance
  36. * @param sprite Sprite instance
  37. * @param x x coordinate
  38. * @param y y coordinate
  39. */
  40. void canvas_draw_sprite(Canvas* canvas, Sprite* sprite, int32_t x, int32_t y);
  41. #ifdef __cplusplus
  42. }
  43. #endif