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:
parent
c8e18f85da
commit
93d5963744
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue