The one problem is that you can only draw on a display from the thread that created that display, otherwise the video bitmaps have no home... they have to be compatible with the display in use ie its context.
It's best to load in a thread and then convert in main. You can then use them normally, or in whatever thread you create your display on. So threads aren't that useful. You can work on memory bitmaps with threads, but no hardware accel.
You may be able to call al_init() from any thread, but I would call it from main, because it registers itself with atexit unless you specify null in al_install_system().
Roger Levy said:
Same goes for creating display windows. Can I put my entire renderer in another thread?
Yes, but I question what the benefit will be. Normally, adding threads only complicates things.