I had been using Kevglass’ texture loader (thanks for that ;D ) for a long time, but after deciding to use DevIL and needing multithreaded texture loading, I found myself wanting to write a new one from scratch. So this loader is still fairly simple, and mostly just for 2D games (doesn’t generate mipmaps or anything), but it does flip your textures, convert to power of two dimensions, use DevIL, and supports loading on one thread and creating the texture on another. Here are the classes:
http://www.cyntaks.com/projects/source/TextureLoader.java
http://www.cyntaks.com/projects/source/Texture.java
I’ll write some example code using the TextureLoader on two threads if anyone is interested. Although I do try to explain it with comments in the code, it may be a bit non-intuitive for some people to use.
For anyone who doesn’t know, the reason you want to load and create the texture on multiple threads is this: loading your textures can take a while and chances are you want to show a progress bar or something while this takes places. The obvious way to do this is to just load the texture on another thread, problem is that textures must be created on the same thread that they will be used on. This code splits the process into two parts so that you can load on the new thread and create on your rendering thread.
Enjoy!