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.
 
 
 
 
 
 

57 rivejä
1.1 KiB

  1. #include "config.h"
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5. #include "caca.h"
  6. #define TIME(desc,code) \
  7. {\
  8. time_t start, end;\
  9. start = time(NULL);\
  10. code ;\
  11. end = time(NULL);\
  12. printf("%-25s:%4ld\n", desc, end-start);\
  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. }