2011-01-23 8 views
8

¿Cuál es la diferencia entre esto y cómo puedo consultar qué es compatible con el teléfono real? (GL10 o GL11)Android OpenGL ES GL10 o GL11

tengo un HTC Legend, que es compatible con GL11 o no? O héroe ... etc ...?

Respuesta

8

Hay una API para que:

public int getGLVersion() 
{ 
    ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); 
    ConfigurationInfo info = am.getDeviceConfigurationInfo(); 
    return info.reqGlEsVersion; 
} 

El orden superior 16 bits representan la versión principal y el orden inferior 16 bits la versión menor. Para obtener más información, visite this link. Así :

  • Para OpenGLES 1.1, getGLVersion() == 0x00010001
  • Para OpenGLES 2.0, getGLVersion() == 0x00020000

Si desea que la representación de cadena (por pantalla), llamada ConfigurationInfo.getGlEsVersion()

+0

ok, 2.0 significa GL11? y GL10 significan Gl1.0 y GL1.1? – lacas

+0

Esto no devuelve lo que el hardware puede admitir, pero lo que la aplicación ha solicitado en AndroidManifest.xml – ryanm

+0

No, 2.0 significa GLES20, 1.1 significa GL11 y 1.0 significa GL10. – Lior

1

Puede utilizar instanceof en su instancia GL10 para probar si GL11 o superior se apoya:

public void onSurfaceCreated(GL10 gl, EGLConfig config) 
{   
    if(gl instanceof GL11) 
    { 
    // ... 
    } 
} 
0

Utilice glGetString para consultar la información de la versión, debe tener cuidado al analizar la cadena devuelta, algunas implementaciones no siguen exactamente las especificaciones, pero el código here funciona para mí.

0

En la práctica, cualquier cosa que realmente tenga hardware de gráficos, admitirá 1.1. 1.0 era un perfil diseñado para implementaciones de software, y no existe hardware que soporte solo 1.0 afaik.

Si no tiene hardware de gráficos, en realidad no desea ejecutar su aplicación gl de todos modos debido a un rendimiento muy bajo, por lo que también podría configurar AndroidManifest.xml para especificar la versión 0x00010001, y luego usted sabe que será compatible con GL11.

Además, cualquier cosa lanzado en '11 o temprano va a apoyar con toda probabilidad GLES 2.0 (y todo el apoyo gl1.1 gl2.0)

Comprobación de las estadísticas de mercado androide, el 90,5% de los dispositivos de apoyo 2.0 y 1.0 ISN incluso en las estadísticas, porque 1.0 nunca es usado por nadie.