Dynamic Texture Atlas (LWJGL)

[s]I’ve been having an issue with getting things rendering for a few days now, and after testing, I can narrow it down to the function causing it. The “stitch” function inside my TextureAtlas class seems to be breaking the display, as after running it, nothing will render. I cant even draw a simple solid quad or tri to the screen.

The way it works is simple, you request textures by name, and then stitch them together. The “stitch” function collects data on the textures first, calculates what it will need, and then loads them one by one and adds it to the texture. This seems to work perfectly, as the saveAtlas command confirms that everything is there, albeit with far too much wasted space.

Here’s the code, anybody have an idea what I am doing wrong, that is making rendering stop working?[/s]

[i]EDIT: Figured it out, apparently it was because I set GL_TEXTURE_MIN_FILTER to GL_NEAREST. Any idea why this is? I have used this setting before and it worked fine. I’ll be leaving it at default now I guess :slight_smile:

EDIT2: Okay, even wierder(to me anyhow), is that once I got white shapes rendering, I still couldn’t get textures. I found a few small mistakes in my code, such as not flipping the buffers and not casting an int to a float. Even after these, the square was still white, so I returned the code I previously removed, and it works again. Why is it that untextured primatives won’t render with the filter set to nearest, but textures wont render without it?[/i]

Another thing that would be nice, can anyone think of another method of creating the atlas’ “canvas”, so to speak? I previously had it only shifting to the next power of 2 when the total volume of the textures was > than the volume of the atlas, but that can lead to the issue where having exactly enough space doesn’t mean they can all fit. I’m sure it could still happen with the current system, but its much less likely. My main issue is all the wasted space on the atlas due to it, generally most of it is empty.

Just a note, I am aiming for a low GL version requirement, I would like to be able to play my games on my lower end computers, such as my netbook, which has GL1.4. Also, I plan to open source my “util” code so if anybody likes it, feel free to use it.