So it is intended that version A)
test_bmps[num_bmaps] = bmap_create("test8MB.tga");
draw_quad(test_bmps[num_bmaps],...);
uses twice the memory (read: 16MB per 8MB (source) image) compared to version B)
BMAP* source_bmp = "test8MB.tga"; // global bitmap
...
test_bmps[num_bmaps] = bmap_createblack(2048,1024,32);
bmap_blit(test_bmps[num_bmaps],source_bmp, NULL, NULL);
draw_quad(test_bmps[num_bmaps],...);
(which both display the same content to the screen)?