How can be queried list of all supported texture targets of the current OpenGL connection? (GL_TEXTURE_2D, …)
You mean supported or hardware accelerated?
Support is granted by checking OpenGL versions or related extensions which added support.
A list of what was added in which OpenGL version can be found at the end of the OpenGL specs:
http://www.opengl.org/documentation/specs/
The official list of extensions is here:
http://www.opengl.org/registry/
Finding out which feature is hardware accelerated is more difficult, but many things are documented. Like non-power-of-2 textures are in the OpenGL 2.0 spec, but only implementations exporting also the ARB_texture_non_power_of_two accelerate it.
Other combinations of good or bad format combinations can be found in the resp. vendor’s programming guides.
The only way to verify without a-priori knowledge would be to run a benchmark of the alternative paths you plan to support.
There are too many combinations to list.
Thanks Relic. I meant supported ones. I know it must be done through checking extensions with glGetString, but some easy way how to get currently supported targets propably doesn’t exist. I mean something like glGet (GL_TEXTURE_TARGETS) returning array of GLenums.
Nope, that would be too easy.
It’s not that there are too many texture targets, from the top of my head: 1D, 2D, 3D, CUBE, RECT, 1D/2D_ARRAY.
(Plus maybe in combination with NPOT and Floating Point).
It’s not too much effort to store the relevant minimum OpenGL versions and extensions and check against that.