sim_linux.c 927 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // This file is Copyright (c) 2023 Victor Suarez Rovere <suarezvictor@gmail.com>
  2. // SPDX-License-Identifier: AGPL-3.0-only
  3. #include <assert.h>
  4. #include <stdint.h>
  5. #include "graphics.h"
  6. #define DISABLE_HARDWARE_ACCEL
  7. typedef union {
  8. uint32_t rgba;
  9. struct { uint32_t r:8; uint32_t g:8; uint32_t b:8; uint32_t a:8; };
  10. } pix_t;
  11. pix_t fb[FRAME_HEIGHT][FRAME_WIDTH];
  12. #undef VIDEO_FRAMEBUFFER_BASE
  13. #define VIDEO_FRAMEBUFFER_BASE (intptr_t)(&fb[0][0].rgba)
  14. #include "accel_cores.c"
  15. #include "sim_fb.c"
  16. #include "drawing_test.c"
  17. #if defined (CSR_ACCEL_RECTANGLE_FILL32_BASE) || defined(CSR_ACCEL_ELLIPSE_FILL32_BASE)
  18. #error Accelerators should be disabled
  19. #endif
  20. fb_handle_t fbh;
  21. int main()
  22. {
  23. fb_init(FRAME_WIDTH, FRAME_HEIGHT, 0, &fbh); //set pix_vblank parameter to true to limit FPS
  24. draw_shapes(1000);
  25. while(!fb_should_quit())
  26. {
  27. draw_clock();
  28. fb_update(&fbh, fb, sizeof(fb[0]));
  29. }
  30. return 0;
  31. }