I'm working with a legacy piece of code in some stuff for work which uses glBitmap() calls to draw bitmap icons. My issue is that it's rather slow once you get to drawing about 1000 icons at once. It slows down to about a 1- to 2-second refresh rate, and I'd like to see if I can make it faster than that.
First I should probably describe how the current code works. The bitmap icons are 32x32 images with one bit per pixel, pre-loaded into memory. For each icon being drawn, the code does:
glNewList glRasterPos2f glBitmap glEndList
and then glCallList() is called on the display list. I know that calling glCallList() repeatedly like this for each icon can be really slow, but some overlying architecture in the code makes changing that pretty difficult.
Are there any other ways I can speed this up without rearchitecting the whole thing? I have pretty much free reign to do that kind of thing, but I have to be able to justify it to management. Would changing from glBitmap() to using something like texture-mapped quads be any faster? Can I stick multiple calls to glBitmap() in a single display list and just call glCallList() once for all of the icons?
I've done a bit of GL stuff in the past but it's been a while. I'm pretty rusty but I can figure most of it out.