The libGDX documentation explains about binding textures to a SpriteBatch...
If [SpriteBatch] is given a texture different than the last texture, then it binds the last texture, submits the collected geometry to be drawn, and begins collecting geometry for the new texture.
Changing textures every few rectangles that are drawn prevents SpriteBatch from batching much geometry. Also, binding a texture is a somewhat expensive operation. For these reasons, it is common to store many smaller images in a larger image and then draw regions of the larger image to both maximize geometry batching and avoid texture changes.
I've arranged all of my game sprite images into a single texture for this reason. However, I now wish to place a large background image in my game to fill the entire screen.
My options seem to be either...
put the background in the same texture I'm using for the smaller game sprites, or...
use a separate texture for the background.
The problem with #1 is that this seems very impractical if I want to use different background images for different levels (either my image gets very very large, or I have to have a copy of my game sprites in multiple images for each different background)
But if I do #2, then do I'll have to bind the SpriteBatch to 2 different textures before each submission to the GPU, which which the documentation describes as "rather expensive".
I have no idea what the best approach is. Do I really need to worry about binding to multiple textures that much? Or is there a better approach I haven't considered?
Any advice sought, thanks!