07_renderer.cpp 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <cstdio>
  2. #include <cerrno>
  3. #include "simple/graphical/initializer.h"
  4. #include "simple/graphical/renderer_window.h"
  5. #include "simple/graphical/renderer.h"
  6. #include "simple/graphical/algorithm/fill.h"
  7. using namespace simple::graphical;
  8. using namespace color_literals;
  9. constexpr auto half2D = float2::one() * 0.5f;
  10. int main() try
  11. {
  12. initializer init;
  13. renderer_window win("Renderer", int2(600, 600), window::flags::borderless);
  14. auto center = win.renderer().target_size() / 2;
  15. fill(win.renderer(), 0x7700AA_rgb);
  16. win.update();
  17. SDL_Delay(1313);
  18. fill(win.renderer(), 0x330077_rgb, anchored_rect{ {{300, 300}, center - 75}, half2D });
  19. fill(win.renderer(), 0x330077_rgb, anchored_rect{ {{300, 300}, center + 75}, half2D });
  20. win.update();
  21. SDL_Delay(1313);
  22. win.renderer().blend(blend_mode::alpha);
  23. fill(win.renderer(), 0xFFFFFF77_rgba, anchored_rect{ {{100, 100}, center - 25}, half2D });
  24. fill(win.renderer(), 0xFFFFFF77_rgba, anchored_rect{ {{100, 100}, center + 25}, half2D });
  25. win.update();
  26. SDL_Delay(1313);
  27. return 0;
  28. }
  29. catch(...)
  30. {
  31. if(errno)
  32. std::perror("ERROR");
  33. const char* sdl_error = SDL_GetError();
  34. if(*sdl_error)
  35. std::puts(sdl_error);
  36. throw;
  37. }