egl_dri2: add pbuffer support to platform_android

This is a simple change thanks to allocateBuffer.

Reviewed-by: Chad Versace <chad@chad-versace.us>
This commit is contained in:
Chia-I Wu 2011-08-27 00:00:18 +08:00
parent c8e18f85da
commit 93d5963744
1 changed files with 16 additions and 5 deletions

View File

@ -222,7 +222,8 @@ static _EGLSurface *
droid_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *disp,
_EGLConfig *conf, const EGLint *attrib_list)
{
return NULL;
return droid_create_surface(drv, disp, EGL_PBUFFER_BIT, conf,
NULL, attrib_list);
}
static EGLBoolean
@ -401,8 +402,10 @@ droid_get_buffers_parse_attachments(struct dri2_egl_surface *dri2_surf,
if (buf->name)
num_buffers++;
break;
}
break;
/* fall through for pbuffers */
case __DRI_BUFFER_DEPTH:
case __DRI_BUFFER_STENCIL:
case __DRI_BUFFER_ACCUM:
@ -491,10 +494,11 @@ droid_add_configs_for_visuals(_EGLDriver *drv, _EGLDisplay *dpy)
int format_count = 0;
for (j = 0; dri2_dpy->driver_configs[j]; j++) {
const EGLint surface_type = EGL_WINDOW_BIT | EGL_PBUFFER_BIT;
struct dri2_egl_config *dri2_conf;
dri2_conf = dri2_add_config(dpy, dri2_dpy->driver_configs[j],
count + 1, visuals[i].size, EGL_WINDOW_BIT, NULL,
count + 1, visuals[i].size, surface_type, NULL,
visuals[i].rgba_masks);
if (dri2_conf) {
dri2_conf->base.NativeVisualID = visuals[i].format;
@ -518,9 +522,16 @@ droid_add_configs_for_visuals(_EGLDriver *drv, _EGLDisplay *dpy)
dri2_conf->base.RenderableType &= ~EGL_OPENGL_BIT;
dri2_conf->base.Conformant &= ~EGL_OPENGL_BIT;
/* and we want to make sure GL_DRAW_BUFFER is always GL_BACK */
/*
* We want to make sure GL_DRAW_BUFFER for windows or pbuffers is always
* GL_BACK. For EGL configs that do not have a double DRI config, clear
* the surface type.
*
* This is just to be on the safe side. dri2_add_config never sets
* EGL_WINDOW_BIT or EGL_PBUFFER_BIT for such configs.
*/
if (!dri2_conf->dri_double_config)
dri2_conf->base.SurfaceType &= ~EGL_WINDOW_BIT;
dri2_conf->base.SurfaceType = 0;
}
return (count != 0);