Skip to content

Instantly share code, notes, and snippets.

@tehsausage
Created December 1, 2015 11:46
Show Gist options
  • Save tehsausage/7704d013a263c3a4c8cc to your computer and use it in GitHub Desktop.
Save tehsausage/7704d013a263c3a4c8cc to your computer and use it in GitHub Desktop.
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include <stdio.h>
#include <math.h>
#define PATH_PREFIX "bmpsuite2/"
static const char* FILE_ARRAY[] = {
PATH_PREFIX "g/rgb16.bmp",
PATH_PREFIX "g/rgb16-565.bmp",
PATH_PREFIX "g/rgb24.bmp",
PATH_PREFIX "g/pal1.bmp",
PATH_PREFIX "q/pal2.bmp",
PATH_PREFIX "g/pal4.bmp",
PATH_PREFIX "g/pal8.bmp",
PATH_PREFIX "g/pal4rle.bmp",
PATH_PREFIX "g/pal8rle.bmp",
PATH_PREFIX "g/rgb32.bmp",
#ifdef OLD_CODE
"dummy.bmp",
"dummy.bmp",
"dummy.bmp",
"dummy.bmp",
#else
PATH_PREFIX "q/rgba32.bmp",
PATH_PREFIX "g/rgb32bf.bmp",
PATH_PREFIX "q/rgb16-231.bmp",
PATH_PREFIX "q/rgb32-111110.bmp",
#endif
PATH_PREFIX "q/rgb32fakealpha.bmp"
};
#define NUM_FILES (sizeof(FILE_ARRAY) / sizeof(const char*))
#define NUM_ROUNDS 20
#define NUM_LOADS 1000
double start = al_get_time();
float results[NUM_FILES];
int main()
{
al_init();
al_init_image_addon();
#ifdef WITH_DISPLAY
ALLEGRO_DISPLAY* d = al_create_display(100, 100);
printf("display format: %d\n", al_get_display_format(d));
#endif
for (int rnd = 0; rnd < NUM_ROUNDS; ++rnd)
{
for (int file = 0; file < NUM_FILES; ++file)
{
double start = al_get_time();
for (int load = 0; load < NUM_LOADS; ++load)
{
ALLEGRO_BITMAP* b = al_load_bitmap(FILE_ARRAY[file]);
if (!b)
{
fprintf(stderr, "Could not load file: %s\n", FILE_ARRAY[file]);
return 1;
}
al_destroy_bitmap(b);
}
double end = al_get_time();
results[file] += (end - start);
}
}
for (int file = 0; file < NUM_FILES; ++file)
{
printf("%d\t%s\t%dus\n", file, FILE_ARRAY[file], (int)((results[file] / NUM_LOADS / NUM_ROUNDS) * 1000000));
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment