OpenVG: querying and choosing different surface color formats

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

OpenVG: querying and choosing different surface color formats

656 Views
ioseph_martinez
NXP Employee
NXP Employee

When using OpenVG you can select different surface formats where to draw: 16bit, 32bit, 24bit, etc. Each one of those can have a different color ordering: ARGB, RGBA, so, you start having different options to choose.

If you want to select different color format vs the one that comes as default from the examples, you need to get all the available configurations, and choose the one you need (don't create it by your own, you may miss a value)

...

EGLConfig eglcfgs[256];

...

cfgAttribs[ix++] = EGL_RENDERABLE_TYPE; cfgAttribs[ix++] = EGL_OPENVG_BIT;

cfgAttribs[ix]   = EGL_NONE;

...

eglChooseConfig(gEGLdsp, cfgAttribs, eglcfgs, 256, &gEGLnumCfg);        // get all available configs

for(i = 0; i<gEGLnumCfg; i++){

  eglGetConfigAttrib(gEGLdsp, eglcfgs[i], EGL_ALPHA_SIZE, &alpha[i]);

  eglGetConfigAttrib(gEGLdsp, eglcfgs[i], EGL_GREEN_SIZE, &green[i]);

  //now for each one of the supported configurations,

  //you have the size of the alpha channel and the green channel,

  //that can easily point you to //the 32bit one, 24bit one and 16bit one

  //once you know which one you need, just pick that eglcfgs[i] for eglCreateContext,

  //to create the egl surface... (pbuffer, pixmap, window, etc)

}

Tags (2)
0 Kudos
0 Replies