ui_rectangle.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /**
  2. *** :: UI Rectangle ::
  3. ***
  4. *** Basic rectangle object
  5. ***
  6. **/
  7. #ifndef ui_rectangle_h
  8. #define ui_rectangle_h
  9. #include "cengine.h"
  10. #include "casset.h"
  11. typedef struct {
  12. vec2 top_left;
  13. vec2 bottom_right;
  14. vec4 color;
  15. asset_hndl texture;
  16. int texture_width;
  17. int texture_height;
  18. bool texture_tile;
  19. float border_size;
  20. vec4 border_color;
  21. float glitch;
  22. float time;
  23. GLenum blend_src;
  24. GLenum blend_dst;
  25. bool active;
  26. } ui_rectangle;
  27. ui_rectangle* ui_rectangle_new();
  28. void ui_rectangle_delete(ui_rectangle* r);
  29. void ui_rectangle_event(ui_rectangle* r, SDL_Event e);
  30. void ui_rectangle_update(ui_rectangle* r);
  31. void ui_rectangle_render(ui_rectangle* r);
  32. void ui_rectangle_move(ui_rectangle* r, vec2 pos);
  33. void ui_rectangle_resize(ui_rectangle* r, vec2 size);
  34. void ui_rectangle_set_texture(ui_rectangle* r, asset_hndl tex, int width, int height, bool tile);
  35. void ui_rectangle_set_border(ui_rectangle* r, float size, vec4 color);
  36. void ui_rectangle_set_color(ui_rectangle* r, vec4 color);
  37. void ui_rectangle_set_glitch(ui_rectangle* r, float glitch);
  38. vec2 ui_rectangle_center(ui_rectangle* r);
  39. bool ui_rectangle_contains_point(ui_rectangle* r, vec2 pos);
  40. void ui_rectangle_blend(ui_rectangle* r, GLenum blend_src, GLenum blend_dst);
  41. vec2 ui_rectangle_position(ui_rectangle* r);
  42. vec2 ui_rectangle_size(ui_rectangle* r);
  43. #endif