EGLBoolean
dri2_init_surface(_EGLSurface *surf, _EGLDisplay *disp, EGLint type,
- _EGLConfig *conf, const EGLint *attrib_list, EGLBoolean enable_out_fence)
+ _EGLConfig *conf, const EGLint *attrib_list,
+ EGLBoolean enable_out_fence, void *native_surface)
{
struct dri2_egl_surface *dri2_surf = dri2_egl_surface(surf);
struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
dri2_surf->enable_out_fence = enable_out_fence;
}
- return _eglInitSurface(surf, disp, type, conf, attrib_list);
+ return _eglInitSurface(surf, disp, type, conf, attrib_list, native_surface);
}
static void
EGLBoolean
dri2_init_surface(_EGLSurface *surf, _EGLDisplay *disp, EGLint type,
- _EGLConfig *conf, const EGLint *attrib_list, EGLBoolean enable_out_fence);
+ _EGLConfig *conf, const EGLint *attrib_list,
+ EGLBoolean enable_out_fence, void *native_surface);
void
dri2_fini_surface(_EGLSurface *surf);
return NULL;
}
- if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list, true))
+ if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list,
+ true, native_window))
goto cleanup_surface;
if (type == EGL_WINDOW_BIT) {
}
if (!dri2_init_surface(&dri2_surf->base, disp, EGL_WINDOW_BIT, conf,
- attrib_list, false))
+ attrib_list, false, native_surface))
goto cleanup_surf;
config = dri2_get_dri_config(dri2_conf, EGL_WINDOW_BIT,
return NULL;
}
- if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list, false))
+ if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list,
+ false, NULL))
goto cleanup_surface;
config = dri2_get_dri_config(dri2_conf, type,
}
if (!dri2_init_surface(&dri2_surf->base, disp, EGL_WINDOW_BIT, conf,
- attrib_list, false))
+ attrib_list, false, native_window))
goto cleanup_surf;
config = dri2_get_dri_config(dri2_conf, EGL_WINDOW_BIT,
return NULL;
}
- if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list, false))
+ if (!dri2_init_surface(&dri2_surf->base, disp, type, conf, attrib_list,
+ false, native_surface))
goto cleanup_surf;
dri2_surf->region = XCB_NONE;
return NULL;
}
- if (!dri2_init_surface(&dri3_surf->surf.base, disp, type, conf, attrib_list, false))
+ if (!dri2_init_surface(&dri3_surf->surf.base, disp, type, conf,
+ attrib_list, false, native_surface))
goto cleanup_surf;
if (type == EGL_PBUFFER_BIT) {
}
if (!_eglInitSurface(&surface->surf, disp, EGL_WINDOW_BIT,
- conf, attrib_list)) {
+ conf, attrib_list, native_window)) {
free(surface);
return NULL;
}
*/
EGLBoolean
_eglInitSurface(_EGLSurface *surf, _EGLDisplay *disp, EGLint type,
- _EGLConfig *conf, const EGLint *attrib_list)
+ _EGLConfig *conf, const EGLint *attrib_list,
+ void *native_surface)
{
const char *func;
EGLint renderBuffer = EGL_BACK_BUFFER;
surf->Height = MIN2(surf->Height, _EGL_MAX_PBUFFER_HEIGHT);
}
+ surf->NativeSurface = native_surface;
+
return EGL_TRUE;
}
EGLBoolean PostSubBufferSupportedNV;
struct _egl_hdr_metadata HdrMetadata;
+
+ void *NativeSurface;
};
extern EGLBoolean
_eglInitSurface(_EGLSurface *surf, _EGLDisplay *disp, EGLint type,
- _EGLConfig *config, const EGLint *attrib_list);
+ _EGLConfig *config, const EGLint *attrib_list,
+ void *native_surface);
extern EGLBoolean