Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is there a max libGDX texture size for desktop?

Tags:

opengl

libgdx

I know that on mobile devices, the largest texture you could render in a single draw differs: sometimes it is a mere 1024x1024 - other times 2048x2048 etc.

What is the case for Desktop games? I am using OpenGL 2.0.

I intend to draw one single background sprite that could be as big as 5000x5000. I am guessing that TexturePacker is not quite useful in this scenario, because I don't really need an atlas since I'm just trying to make a single sprite.

Yes, I just tested for 5000x5000 and it works just fine. Just wondering if there's an actual limit to consider. Maybe it differs from one computer to another?

like image 247
Voldemort Avatar asked Jun 07 '14 23:06

Voldemort


2 Answers

In addition to what P.T. said, I wanted to supply the code for that (in libGDX).

IntBuffer intBuffer = BufferUtils.newIntBuffer(16);
Gdx.gl20.glGetIntegerv(GL20.GL_MAX_TEXTURE_SIZE, intBuffer);
System.out.println(intBuffer.get());

On my desktop system this results in 4096, meaning that the max size supported is 4096x4096. My system is not that old though. You should probably not assume that 5000x5000 is available on all desktop systems. Usually you don't need textures that big so not all GPUs support that. You can always split it up in several textures and draw it on multiple quads next to each other to work around that problem.

like image 166
noone Avatar answered Oct 09 '22 02:10

noone


The maximum texture size is a function of OpenGL, which leaves the size to the video card's device driver (within bounds).

You can check at run-time to see what the reported limits are (though see Confusion with GL_MAX_TEXTURE_SIZE for some caveats).

To find out what a variety of hardware reports in practice, there are some sites that collect databases of results from users (mostly concerned with benchmark performance), that often also collect data like max texture size. (E.g., gfxbench.com, or http://opengl.gpuinfo.org/gl_stats_caps_single.php?listreportsbycap=GL_MAX_TEXTURE_SIZE)

I think on a modern desktop GPU 5000x5000 will be well under the supported limit.

like image 44
P.T. Avatar answered Oct 09 '22 01:10

P.T.