You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

56 lines
1.2 KiB

  1. #include "config.h"
  2. #include <stdio.h>
  3. #include "caca.h"
  4. #define TIME(desc, code) \
  5. { \
  6. caca_display_t *dummy = caca_create_display_with_driver(NULL, "null"); \
  7. printf("%-25s: ", desc);\
  8. caca_refresh_display(dummy); \
  9. code; \
  10. caca_refresh_display(dummy); \
  11. printf("%5dms\n", caca_get_display_time(dummy) / 1000); \
  12. caca_free_display(dummy); \
  13. }
  14. static void blit(int mask, int clear)
  15. {
  16. caca_canvas_t *cv, *cv2;
  17. int i;
  18. cv = caca_create_canvas(40, 40);
  19. cv2 = caca_create_canvas(16, 16);
  20. caca_fill_box(cv2, 0, 0, 16, 16, 'x');
  21. for (i=0; i<1000000; i++) {
  22. if(clear)
  23. caca_clear_canvas(cv);
  24. caca_blit(cv, 1, 1, cv2, mask?cv2:NULL);
  25. }
  26. caca_free_canvas(cv);
  27. caca_free_canvas(cv2);
  28. }
  29. static void putchars(void)
  30. {
  31. caca_canvas_t *cv;
  32. int i;
  33. cv = caca_create_canvas(40, 40);
  34. for (i=0; i<50000000; i++) {
  35. caca_put_char(cv, 1, 1, 'x');
  36. caca_put_char(cv, 1, 1, 'o');
  37. }
  38. caca_free_canvas(cv);
  39. }
  40. int main(int argc, char *argv[])
  41. {
  42. TIME("blit no mask, no clear",blit(0, 0));
  43. TIME("blit no mask, clear",blit(0, 1));
  44. TIME("blit mask, no clear",blit(1, 0));
  45. TIME("blit mask, clear",blit(1, 1));
  46. TIME("putchars",putchars());
  47. return 0;
  48. }