clean up glx native surface (texture from pixmap code) to be more anal

about matching depth etc.
This commit is contained in:
Carsten Haitzler 2013-04-18 17:16:41 +09:00
parent 7cae29becd
commit d0f1933923
1 changed files with 33 additions and 22 deletions

View File

@ -2185,9 +2185,18 @@ eng_image_native_set(void *data, void *image, void *native)
{
int j = 0, val = 0;
for (j = 0; j < num; j++)
{
glXGetFBConfigAttrib(re->win->disp, configs[j],
GLX_BUFFER_SIZE, &val);
if (val != depth) continue;
glXGetFBConfigAttrib(re->win->disp, configs[j],
GLX_DRAWABLE_TYPE, &val);
if (!(val & GLX_PIXMAP_BIT)) continue;
tex_format = GLX_TEXTURE_FORMAT_RGB_EXT;
glXGetFBConfigAttrib(re->win->disp, configs[j],
GLX_ALPHA_SIZE, &val);
if ((depth == 32) && (!val)) continue;
if (val > 0)
{
glXGetFBConfigAttrib(re->win->disp, configs[j],
@ -2211,6 +2220,8 @@ eng_image_native_set(void *data, void *image, void *native)
GLX_BIND_TO_MIPMAP_TEXTURE_EXT, &val);
mipmap = val;
n->fbc = configs[j];
break;
}
XFree(configs);
}