My application is intended to be a simple 2D game with textures for rocks, characters, etc.
The way I'm currently handling this texture data is by loading the textures into application memory, packing them all into giant atlases that are filled to GL_MAX_TEXTURE_SIZE before creating more atlases, and then uploaded to the GPU. When drawing these textures at runtime, no sorting is done to keep texture switches to a minimum. If every draw call uses a texture from a different atlas it'll have to glBindTexture/glDraw for every object. Now, I don't see this being a likely problem in my case because my textures are small and I can fit hundreds of textures in a single atlas on modern graphics cards.
Now, if these texture switches were a problem for me, how could I minimize/eliminate them without doing any draw ordering? Assuming all of the texture data is the same format, would a texture array of atlases be the ideal solution or is there other alternatives?