es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Android EGLConfig no tiene propiedades

Estoy obteniendo objetos EGLConfig utilizando eglChooseConfig en Android de la siguiente manera:


    ...
    int[] configSpec = new int[]
    {
        EGL10.EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
        EGL10.EGL_NONE
    };
    if (!lEgl.eglChooseConfig(lDisplay, configSpec, configs, configs.length, num_config))
    {
    ...

p>eglChooseConfig devuelve 19 objetos EGLConfig.

Quiero obtener propiedades de estos objetos, como la profundidad de color, por ejemplo.

El problema es que la clase EGLConfig no tiene métodos getter ni miembros públicos.
Ver la documentación de EGLConfig.

¿Alguien sabe cómo obtener propiedades como la profundidad de color de un objeto EGLConfig?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según la documentación de la clase EGLConfig, no tiene miembros públicos o getters para obtener directamente las propiedades como la profundidad del color. Sin embargo, hay una forma de extraer los atributos de un objeto EGLConfig usando el método eglGetConfigAttrib. Este método es parte de la interfaz EGL10 y toma tres parámetros: el display, el config y el atributo cuyo valor se desea extraer.

    Aquí hay un ejemplo de fragmento de código que muestra cómo extraer el atributo de profundidad de color de un objeto EGLConfig:

    final int EGL_RED_SIZE = 0x3024;
    final int EGL_GREEN_SIZE = 0x3023;
    final int EGL_BLUE_SIZE = 0x3022;
    final int EGL_ALPHA_SIZE = 0x3021;
    
    int[] value = new int[1];
    lEgl.eglGetConfigAttrib(lDisplay, configs[0], EGL_RED_SIZE, value);
    int redSize = value[0];
    lEgl.eglGetConfigAttrib(lDisplay, configs[0], EGL_GREEN_SIZE, value);
    int greenSize = value[0];
    lEgl.eglGetConfigAttrib(lDisplay, configs[0], EGL_BLUE_SIZE, value);
    int blueSize = value[0];
    lEgl.eglGetConfigAttrib(lDisplay, configs[0], EGL_ALPHA_SIZE, value);
    int alphaSize = value[0];
    

    En este ejemplo, definimos cuatro constantes de atributos: EGL_RED_SIZE, EGL_GREEN_SIZE, EGL_BLUE_SIZE y EGL_ALPHA_SIZE, que corresponden a los tamaños de los canales de color rojo, verde, azul y alfa, respectivamente. Luego, utilizamos el método eglGetConfigAttrib para extraer el valor de cada uno de estos atributos del primer objeto EGLConfig en la matriz configs. Los valores extraídos se almacenan en variables separadas redSize, greenSize, blueSize y alphaSize.

    Puede modificar este código para extraer otros atributos del objeto EGLConfig pasando la constante de atributo adecuada al método eglGetConfigAttrib. Para obtener una lista completa de las constantes de atributo, consulte la documentación de EGL10.

Comments are closed.