sprite.h 884 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include <stdbool.h>
  3. #include <stddef.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 or NULL, if failed
  11. */
  12. Sprite* sprite_alloc(const char* path);
  13. /** Sprite deallocator
  14. * @param sprite Sprite instance
  15. */
  16. void sprite_free(Sprite* sprite);
  17. /** Get sprite width
  18. * @param sprite Sprite instance
  19. * @return size_t sprite width
  20. */
  21. size_t sprite_get_width(Sprite* sprite);
  22. /** Get sprite height
  23. * @param sprite Sprite instance
  24. * @return size_t sprite height
  25. */
  26. size_t sprite_get_height(Sprite* sprite);
  27. /** Draw sprite on canvas
  28. * @param canvas Canvas instance
  29. * @param sprite Sprite instance
  30. * @param x x coordinate
  31. * @param y y coordinate
  32. */
  33. void canvas_draw_sprite(Canvas* canvas, Sprite* sprite, int32_t x, int32_t y);
  34. #ifdef __cplusplus
  35. }
  36. #endif