fix eglChooseConfig() for special attributes.

affects software renderer (emu) only.

per EGL spec:
  If EGL_MAX_PBUFFER_WIDTH, EGL_MAX_PBUFFER_HEIGHT,
  EGL_MAX_PBUFFER_PIXELS, or EGL_NATIVE_VISUAL_ID are specified
  in attrib list, then they are ignored

Change-Id: I3d5214ce896986da2f11d2eb1889afc41731eaa6
This commit is contained in:
Mathias Agopian 2010-10-25 15:51:24 -07:00
parent 38e5c8ef89
commit 639716736f
1 changed files with 7 additions and 4 deletions

View File

@ -833,6 +833,9 @@ struct config_management_t {
static bool mask(GLint reqValue, GLint confValue) {
return (confValue & reqValue) == reqValue;
}
static bool ignore(GLint reqValue, GLint confValue) {
return true;
}
};
// ----------------------------------------------------------------------------
@ -1060,11 +1063,11 @@ static config_management_t const gConfigManagement[] = {
{ EGL_CONFIG_CAVEAT, config_management_t::exact },
{ EGL_CONFIG_ID, config_management_t::exact },
{ EGL_LEVEL, config_management_t::exact },
{ EGL_MAX_PBUFFER_HEIGHT, config_management_t::exact },
{ EGL_MAX_PBUFFER_PIXELS, config_management_t::exact },
{ EGL_MAX_PBUFFER_WIDTH, config_management_t::exact },
{ EGL_MAX_PBUFFER_HEIGHT, config_management_t::ignore },
{ EGL_MAX_PBUFFER_PIXELS, config_management_t::ignore },
{ EGL_MAX_PBUFFER_WIDTH, config_management_t::ignore },
{ EGL_NATIVE_RENDERABLE, config_management_t::exact },
{ EGL_NATIVE_VISUAL_ID, config_management_t::exact },
{ EGL_NATIVE_VISUAL_ID, config_management_t::ignore },
{ EGL_NATIVE_VISUAL_TYPE, config_management_t::exact },
{ EGL_SAMPLES, config_management_t::exact },
{ EGL_SAMPLE_BUFFERS, config_management_t::exact },