Sto cercando di ottenere il limite massimo di dimensioni texture in Android per OpenGL 2.0. Ma ho scoperto che la prossima istruzione funziona solo se sono attualmente nel contesto OpenGL, in altre parole devo avere una GL Surface e un GL Renderer, ecc., Che non voglio.Ottieni il limite massimo di dimensioni texture OpenGL ES 2.0 in Android
int[] maxTextureSize = new int[1];
GLES20.glGetIntegerv(GLES20.GL_MAX_TEXTURE_SIZE, maxTextureSize, 0);
Così sono venuto con la prossima algoritmo, che mi dà la dimensione massima della texture senza dover creare qualsiasi superficie o renderer. Funziona correttamente, quindi la mia domanda è se questo funzionerà con tutti i dispositivi Android, e se qualcuno può individuare eventuali bug, nel caso in cui.
public int getMaximumTextureSize()
{
EGL10 egl = (EGL10)EGLContext.getEGL();
EGLDisplay display = egl.eglGetDisplay(EGL10.EGL_DEFAULT_DISPLAY);
// Initialise
int[] version = new int[2];
egl.eglInitialize(display, version);
// Query total number of configurations
int[] totalConfigurations = new int[1];
egl.eglGetConfigs(display, null, 0, totalConfigurations);
// Query actual list configurations
EGLConfig[] configurationsList = new EGLConfig[totalConfigurations[0]];
egl.eglGetConfigs(display, configurationsList, totalConfigurations[0], totalConfigurations);
int[] textureSize = new int[1];
int maximumTextureSize = 0;
// Iterate through all the configurations to located the maximum texture size
for (int i = 0; i < totalConfigurations[0]; i++)
{
// Only need to check for width since opengl textures are always squared
egl.eglGetConfigAttrib(display, configurationsList[i], EGL10.EGL_MAX_PBUFFER_WIDTH, textureSize);
// Keep track of the maximum texture size
if (maximumTextureSize < textureSize[0])
{
maximumTextureSize = textureSize[0];
}
Log.i("GLHelper", Integer.toString(textureSize[0]));
}
// Release
egl.eglTerminate(display);
Log.i("GLHelper", "Maximum GL texture size: " + Integer.toString(maximumTextureSize));
return maximumTextureSize;
}
Sei sicuro che la dimensione della trama GL sia associata alla dimensione del pbuffer EGL? Questo è contenuto nella specifica EGL 1.0 da qualche parte? –