-#define _EGL_CHECK_OBJECT(disp, type, obj, ret, drv) \
+#define _EGL_CHECK_OBJECT(disp, type, obj, ret) \
-#define _EGL_CHECK_SURFACE(disp, surf, ret, drv) \
- _EGL_CHECK_OBJECT(disp, Surface, surf, ret, drv)
+#define _EGL_CHECK_SURFACE(disp, surf, ret) \
+ _EGL_CHECK_OBJECT(disp, Surface, surf, ret)
-#define _EGL_CHECK_CONTEXT(disp, context, ret, drv) \
- _EGL_CHECK_OBJECT(disp, Context, context, ret, drv)
+#define _EGL_CHECK_CONTEXT(disp, context, ret) \
+ _EGL_CHECK_OBJECT(disp, Context, context, ret)
-#define _EGL_CHECK_CONFIG(disp, conf, ret, drv) \
- _EGL_CHECK_OBJECT(disp, Config, conf, ret, drv)
+#define _EGL_CHECK_CONFIG(disp, conf, ret) \
+ _EGL_CHECK_OBJECT(disp, Config, conf, ret)
-#define _EGL_CHECK_SYNC(disp, s, ret, drv) \
- _EGL_CHECK_OBJECT(disp, Sync, s, ret, drv)
+#define _EGL_CHECK_SYNC(disp, s, ret) \
+ _EGL_CHECK_OBJECT(disp, Sync, s, ret)
_eglCheckDisplay(_EGLDisplay *disp, const char *msg)
{
if (!disp) {
_eglError(EGL_BAD_DISPLAY, msg);
_eglCheckDisplay(_EGLDisplay *disp, const char *msg)
{
if (!disp) {
_eglError(EGL_BAD_DISPLAY, msg);
}
if (!disp->Initialized) {
_eglError(EGL_NOT_INITIALIZED, msg);
}
if (!disp->Initialized) {
_eglError(EGL_NOT_INITIALIZED, msg);
disp = _eglLockDisplay(dpy);
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, NULL);
disp = _eglLockDisplay(dpy);
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, NULL);
EGLint config_size, EGLint *num_config)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLint config_size, EGLint *num_config)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
- ret = _eglGetConfigs(drv, disp, configs, config_size, num_config);
+ ret = _eglGetConfigs(disp, configs, config_size, num_config);
EGLint config_size, EGLint *num_config)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLint config_size, EGLint *num_config)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
- ret = _eglChooseConfig(drv, disp, attrib_list, configs,
+ ret = _eglChooseConfig(disp, attrib_list, configs,
config_size, num_config);
RETURN_EGL_EVAL(disp, ret);
config_size, num_config);
RETURN_EGL_EVAL(disp, ret);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
- ret = _eglGetConfigAttrib(drv, disp, conf, attribute, value);
+ ret = _eglGetConfigAttrib(disp, conf, attribute, value);
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
_EGLContext *share = _eglLookupContext(share_list, disp);
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
_EGLContext *share = _eglLookupContext(share_list, disp);
_EGLContext *context;
EGLContext ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_NO_CONTEXT);
_EGLContext *context;
EGLContext ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_NO_CONTEXT);
- _EGL_CHECK_CONFIG(disp, conf, EGL_NO_CONTEXT, drv);
+ _EGL_CHECK_CONFIG(disp, conf, EGL_NO_CONTEXT);
else if (!disp->Extensions.KHR_no_config_context)
RETURN_EGL_ERROR(disp, EGL_BAD_CONFIG, EGL_NO_CONTEXT);
if (!share && share_list != EGL_NO_CONTEXT)
RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_NO_CONTEXT);
else if (!disp->Extensions.KHR_no_config_context)
RETURN_EGL_ERROR(disp, EGL_BAD_CONFIG, EGL_NO_CONTEXT);
if (!share && share_list != EGL_NO_CONTEXT)
RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_NO_CONTEXT);
- context = drv->CreateContext(disp, conf, share, attrib_list);
+ context = disp->Driver->CreateContext(disp, conf, share, attrib_list);
ret = (context) ? _eglLinkContext(context) : EGL_NO_CONTEXT;
RETURN_EGL_EVAL(disp, ret);
ret = (context) ? _eglLinkContext(context) : EGL_NO_CONTEXT;
RETURN_EGL_EVAL(disp, ret);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLContext *context = _eglLookupContext(ctx, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLContext *context = _eglLookupContext(ctx, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_CONTEXT_KHR, context, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_CONTEXT_KHR, context, EGL_FALSE);
_EGLContext *context = _eglLookupContext(ctx, disp);
_EGLSurface *draw_surf = _eglLookupSurface(draw, disp);
_EGLSurface *read_surf = _eglLookupSurface(read, disp);
_EGLContext *context = _eglLookupContext(ctx, disp);
_EGLSurface *draw_surf = _eglLookupSurface(draw, disp);
_EGLSurface *read_surf = _eglLookupSurface(read, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_CONTEXT_KHR, context, EGL_FALSE);
if (!disp)
RETURN_EGL_ERROR(disp, EGL_BAD_DISPLAY, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_CONTEXT_KHR, context, EGL_FALSE);
if (!disp)
RETURN_EGL_ERROR(disp, EGL_BAD_DISPLAY, EGL_FALSE);
RETURN_EGL_SUCCESS(disp, EGL_TRUE);
if (!context && ctx != EGL_NO_CONTEXT)
RETURN_EGL_SUCCESS(disp, EGL_TRUE);
if (!context && ctx != EGL_NO_CONTEXT)
if (read_surf && read_surf->Lost)
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_FALSE);
if (read_surf && read_surf->Lost)
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_FALSE);
- ret = drv->MakeCurrent(disp, draw_surf, read_surf, context);
+ ret = disp->Driver->MakeCurrent(disp, draw_surf, read_surf, context);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLContext *context = _eglLookupContext(ctx, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLContext *context = _eglLookupContext(ctx, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_CONTEXT_KHR, context, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_CONTEXT_KHR, context, EGL_FALSE);
- ret = _eglQueryContext(drv, disp, context, attribute, value);
+ ret = _eglQueryContext(context, attribute, value);
void *native_window, const EGLint *attrib_list)
{
_EGLConfig *conf = _eglLookupConfig(config, disp);
void *native_window, const EGLint *attrib_list)
{
_EGLConfig *conf = _eglLookupConfig(config, disp);
- _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
+ _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE);
if ((conf->SurfaceType & EGL_WINDOW_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
if ((conf->SurfaceType & EGL_WINDOW_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
if (_eglNativeSurfaceAlreadyUsed(disp, native_window))
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
if (_eglNativeSurfaceAlreadyUsed(disp, native_window))
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
- surf = drv->CreateWindowSurface(disp, conf, native_window, attrib_list);
+ surf = disp->Driver->CreateWindowSurface(disp, conf, native_window, attrib_list);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
void *native_pixmap, const EGLint *attrib_list)
{
_EGLConfig *conf = _eglLookupConfig(config, disp);
void *native_pixmap, const EGLint *attrib_list)
{
_EGLConfig *conf = _eglLookupConfig(config, disp);
- _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
+ _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE);
if ((conf->SurfaceType & EGL_PIXMAP_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
if ((conf->SurfaceType & EGL_PIXMAP_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
if (_eglNativeSurfaceAlreadyUsed(disp, native_pixmap))
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
if (_eglNativeSurfaceAlreadyUsed(disp, native_pixmap))
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
- surf = drv->CreatePixmapSurface(disp, conf, native_pixmap, attrib_list);
+ surf = disp->Driver->CreatePixmapSurface(disp, conf, native_pixmap, attrib_list);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
_EGLSurface *surf;
EGLSurface ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_NO_SURFACE);
_EGLSurface *surf;
EGLSurface ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_NO_SURFACE);
- _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
+ _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE);
if ((conf->SurfaceType & EGL_PBUFFER_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
if ((conf->SurfaceType & EGL_PBUFFER_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
- if (drv->QuerySurface)
- ret = drv->QuerySurface(disp, surf, attribute, value);
+ if (disp->Driver->QuerySurface)
+ ret = disp->Driver->QuerySurface(disp, surf, attribute, value);
else
ret = _eglQuerySurface(disp, surf, attribute, value);
else
ret = _eglQuerySurface(disp, surf, attribute, value);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
- ret = _eglSurfaceAttrib(drv, disp, surf, attribute, value);
+ ret = _eglSurfaceAttrib(disp, surf, attribute, value);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
- _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- ret = drv->BindTexImage(disp, surf, buffer);
+ _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE);
+ ret = disp->Driver->BindTexImage(disp, surf, buffer);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
- _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- ret = drv->ReleaseTexImage(disp, surf, buffer);
+ _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE);
+ ret = disp->Driver->ReleaseTexImage(disp, surf, buffer);
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLSurface *surf = ctx ? ctx->DrawSurface : NULL;
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLSurface *surf = ctx ? ctx->DrawSurface : NULL;
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
- if (drv->SwapInterval)
- ret = drv->SwapInterval(disp, surf, interval);
+ if (disp->Driver->SwapInterval)
+ ret = disp->Driver->SwapInterval(disp, surf, interval);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
/* EGL_KHR_partial_update
* Frame boundary successfully reached,
/* EGL_KHR_partial_update
* Frame boundary successfully reached,
const EGLint *rects, EGLint n_rects)
{
_EGLContext *ctx = _eglGetCurrentContext();
const EGLint *rects, EGLint n_rects)
{
_EGLContext *ctx = _eglGetCurrentContext();
/* surface must be bound to current context in EGL 1.4 */
if (_eglGetContextHandle(ctx) == EGL_NO_CONTEXT ||
/* surface must be bound to current context in EGL 1.4 */
if (_eglGetContextHandle(ctx) == EGL_NO_CONTEXT ||
if ((n_rects > 0 && rects == NULL) || n_rects < 0)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
if ((n_rects > 0 && rects == NULL) || n_rects < 0)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->SwapBuffersWithDamageEXT(disp, surf, rects, n_rects);
+ ret = disp->Driver->SwapBuffersWithDamageEXT(disp, surf, rects, n_rects);
/* EGL_KHR_partial_update
* Frame boundary successfully reached,
/* EGL_KHR_partial_update
* Frame boundary successfully reached,
_EGLSurface *surf = _eglLookupSurface(surface, disp);
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLSurface *surf = _eglLookupSurface(surface, disp);
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGLContext *ctx = _eglGetCurrentContext();
if (surf->SetDamageRegionCalled || !surf->BufferAgeRead)
RETURN_EGL_ERROR(disp, EGL_BAD_ACCESS, EGL_FALSE);
if (surf->SetDamageRegionCalled || !surf->BufferAgeRead)
RETURN_EGL_ERROR(disp, EGL_BAD_ACCESS, EGL_FALSE);
- _eglSetDamageRegionKHRClampRects(disp, surf, rects, n_rects);
- ret = drv->SetDamageRegion(disp, surf, rects, n_rects);
+ _eglSetDamageRegionKHRClampRects(surf, rects, n_rects);
+ ret = disp->Driver->SetDamageRegion(disp, surf, rects, n_rects);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
- _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- ret = drv->CopyBuffers(disp, surf, native_pixmap_ptr);
+ _EGL_CHECK_SURFACE(disp, surf, EGL_FALSE);
+ ret = disp->Driver->CopyBuffers(disp, surf, native_pixmap_ptr);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLConfig *conf = _eglLookupConfig(config, disp);
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_NO_SURFACE);
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_NO_SURFACE);
- _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE, drv);
+ _EGL_CHECK_CONFIG(disp, conf, EGL_NO_SURFACE);
/* OpenVG is not supported */
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
/* OpenVG is not supported */
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
EGLClientBuffer buffer, const EGLint *attr_list)
{
_EGLContext *context = _eglLookupContext(ctx, disp);
EGLClientBuffer buffer, const EGLint *attr_list)
{
_EGLContext *context = _eglLookupContext(ctx, disp);
if (!disp->Extensions.KHR_image_base)
RETURN_EGL_EVAL(disp, EGL_NO_IMAGE_KHR);
if (!context && ctx != EGL_NO_CONTEXT)
if (!disp->Extensions.KHR_image_base)
RETURN_EGL_EVAL(disp, EGL_NO_IMAGE_KHR);
if (!context && ctx != EGL_NO_CONTEXT)
if (ctx != EGL_NO_CONTEXT && target == EGL_LINUX_DMA_BUF_EXT)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_NO_IMAGE_KHR);
if (ctx != EGL_NO_CONTEXT && target == EGL_LINUX_DMA_BUF_EXT)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_NO_IMAGE_KHR);
- img = drv->CreateImageKHR(disp, context, target, buffer, attr_list);
+ img = disp->Driver->CreateImageKHR(disp, context, target, buffer, attr_list);
ret = (img) ? _eglLinkImage(img) : EGL_NO_IMAGE_KHR;
RETURN_EGL_EVAL(disp, ret);
ret = (img) ? _eglLinkImage(img) : EGL_NO_IMAGE_KHR;
RETURN_EGL_EVAL(disp, ret);
if (!disp->Extensions.KHR_image_base)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
_eglUnlinkImage(img);
if (!disp->Extensions.KHR_image_base)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
_eglUnlinkImage(img);
if (!disp->Extensions.KHR_cl_event2 && orig_is_EGLAttrib) {
/* There exist two EGLAttrib variants of eglCreateSync*:
if (!disp->Extensions.KHR_cl_event2 && orig_is_EGLAttrib) {
/* There exist two EGLAttrib variants of eglCreateSync*:
ret = (sync) ? _eglLinkSync(sync) : EGL_NO_SYNC_KHR;
RETURN_EGL_EVAL(disp, ret);
ret = (sync) ? _eglLinkSync(sync) : EGL_NO_SYNC_KHR;
RETURN_EGL_EVAL(disp, ret);
assert(disp->Extensions.KHR_reusable_sync ||
disp->Extensions.KHR_fence_sync ||
disp->Extensions.ANDROID_native_fence_sync);
_eglUnlinkSync(s);
assert(disp->Extensions.KHR_reusable_sync ||
disp->Extensions.KHR_fence_sync ||
disp->Extensions.ANDROID_native_fence_sync);
_eglUnlinkSync(s);
_eglClientWaitSyncCommon(_EGLDisplay *disp, EGLDisplay dpy,
_EGLSync *s, EGLint flags, EGLTime timeout)
{
_eglClientWaitSyncCommon(_EGLDisplay *disp, EGLDisplay dpy,
_EGLSync *s, EGLint flags, EGLTime timeout)
{
assert(disp->Extensions.KHR_reusable_sync ||
disp->Extensions.KHR_fence_sync ||
disp->Extensions.ANDROID_native_fence_sync);
assert(disp->Extensions.KHR_reusable_sync ||
disp->Extensions.KHR_fence_sync ||
disp->Extensions.ANDROID_native_fence_sync);
- ret = drv->ClientWaitSyncKHR(disp, s, flags, timeout);
+ ret = disp->Driver->ClientWaitSyncKHR(disp, s, flags, timeout);
_eglWaitSyncCommon(_EGLDisplay *disp, _EGLSync *s, EGLint flags)
{
_EGLContext *ctx = _eglGetCurrentContext();
_eglWaitSyncCommon(_EGLDisplay *disp, _EGLSync *s, EGLint flags)
{
_EGLContext *ctx = _eglGetCurrentContext();
assert(disp->Extensions.KHR_wait_sync);
/* return an error if the client API doesn't support GL_[OES|MESA]_EGL_sync. */
assert(disp->Extensions.KHR_wait_sync);
/* return an error if the client API doesn't support GL_[OES|MESA]_EGL_sync. */
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSync *s = _eglLookupSync(sync, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSync *s = _eglLookupSync(sync, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SYNC_KHR, s, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SYNC_KHR, s, EGL_FALSE);
static EGLBoolean
_eglGetSyncAttribCommon(_EGLDisplay *disp, _EGLSync *s, EGLint attribute, EGLAttrib *value)
{
static EGLBoolean
_eglGetSyncAttribCommon(_EGLDisplay *disp, _EGLSync *s, EGLint attribute, EGLAttrib *value)
{
assert(disp->Extensions.KHR_reusable_sync ||
disp->Extensions.KHR_fence_sync ||
disp->Extensions.ANDROID_native_fence_sync);
assert(disp->Extensions.KHR_reusable_sync ||
disp->Extensions.KHR_fence_sync ||
disp->Extensions.ANDROID_native_fence_sync);
- ret = _eglGetSyncAttrib(drv, disp, s, attribute, value);
+ ret = _eglGetSyncAttrib(disp, s, attribute, value);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSync *s = _eglLookupSync(sync, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSync *s = _eglLookupSync(sync, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SYNC_KHR, s, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SYNC_KHR, s, EGL_FALSE);
if (!(s && (s->Type == EGL_SYNC_NATIVE_FENCE_ANDROID)))
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_NO_NATIVE_FENCE_FD_ANDROID);
if (!(s && (s->Type == EGL_SYNC_NATIVE_FENCE_ANDROID)))
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_NO_NATIVE_FENCE_FD_ANDROID);
- _EGL_CHECK_SYNC(disp, s, EGL_NO_NATIVE_FENCE_FD_ANDROID, drv);
+ _EGL_CHECK_SYNC(disp, s, EGL_NO_NATIVE_FENCE_FD_ANDROID);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
_EGLContext *ctx = _eglGetCurrentContext();
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
if (!disp->Extensions.NOK_swap_region)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!disp->Extensions.NOK_swap_region)
RETURN_EGL_EVAL(disp, EGL_FALSE);
surf != ctx->DrawSurface)
RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
surf != ctx->DrawSurface)
RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
- ret = drv->SwapBuffersRegionNOK(disp, surf, numRects, rects);
+ ret = disp->Driver->SwapBuffersRegionNOK(disp, surf, numRects, rects);
eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attr_list)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attr_list)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img;
EGLImage ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
_EGLImage *img;
EGLImage ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
if (!disp->Extensions.MESA_drm_image)
RETURN_EGL_EVAL(disp, EGL_NO_IMAGE_KHR);
if (!disp->Extensions.MESA_drm_image)
RETURN_EGL_EVAL(disp, EGL_NO_IMAGE_KHR);
ret = (img) ? _eglLinkImage(img) : EGL_NO_IMAGE_KHR;
RETURN_EGL_EVAL(disp, ret);
ret = (img) ? _eglLinkImage(img) : EGL_NO_IMAGE_KHR;
RETURN_EGL_EVAL(disp, ret);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img = _eglLookupImage(image, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img = _eglLookupImage(image, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
assert(disp->Extensions.MESA_drm_image);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
assert(disp->Extensions.MESA_drm_image);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->ExportDRMImageMESA(disp, img, name, handle, stride);
+ ret = disp->Driver->ExportDRMImageMESA(disp, img, name, handle, stride);
eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
assert(disp->Extensions.WL_bind_wayland_display);
if (!display)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
assert(disp->Extensions.WL_bind_wayland_display);
if (!display)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
assert(disp->Extensions.WL_bind_wayland_display);
if (!display)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
assert(disp->Extensions.WL_bind_wayland_display);
if (!display)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
EGLint attribute, EGLint *value)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLint attribute, EGLint *value)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
assert(disp->Extensions.WL_bind_wayland_display);
if (!buffer)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
assert(disp->Extensions.WL_bind_wayland_display);
if (!buffer)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->QueryWaylandBufferWL(disp, buffer, attribute, value);
+ ret = disp->Driver->QueryWaylandBufferWL(disp, buffer, attribute, value);
struct wl_buffer *ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
struct wl_buffer *ret;
_EGL_FUNC_START(disp, EGL_OBJECT_DISPLAY_KHR, NULL, EGL_FALSE);
if (!disp->Extensions.WL_create_wayland_buffer_from_image)
RETURN_EGL_EVAL(disp, NULL);
if (!disp->Extensions.WL_create_wayland_buffer_from_image)
RETURN_EGL_EVAL(disp, NULL);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
if (!disp->Extensions.NV_post_sub_buffer)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!disp->Extensions.NV_post_sub_buffer)
RETURN_EGL_EVAL(disp, EGL_FALSE);
- ret = drv->PostSubBufferNV(disp, surf, x, y, width, height);
+ ret = disp->Driver->PostSubBufferNV(disp, surf, x, y, width, height);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
if (!disp->Extensions.CHROMIUM_sync_control)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!ust || !msc || !sbc)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
if (!disp->Extensions.CHROMIUM_sync_control)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!ust || !msc || !sbc)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->GetSyncValuesCHROMIUM(disp, surf, ust, msc, sbc);
+ ret = disp->Driver->GetSyncValuesCHROMIUM(disp, surf, ust, msc, sbc);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img = _eglLookupImage(image, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img = _eglLookupImage(image, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
assert(disp->Extensions.MESA_image_dma_buf_export);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
assert(disp->Extensions.MESA_image_dma_buf_export);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->ExportDMABUFImageQueryMESA(disp, img, fourcc, nplanes, modifiers);
+ ret = disp->Driver->ExportDMABUFImageQueryMESA(disp, img, fourcc, nplanes, modifiers);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img = _eglLookupImage(image, disp);
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLImage *img = _eglLookupImage(image, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
assert(disp->Extensions.MESA_image_dma_buf_export);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
assert(disp->Extensions.MESA_image_dma_buf_export);
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->ExportDMABUFImageMESA(disp, img, fds, strides, offsets);
+ ret = disp->Driver->ExportDMABUFImageMESA(disp, img, fds, strides, offsets);
EGLint *formats, EGLint *num_formats)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLint *formats, EGLint *num_formats)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
EGLBoolean ret;
_EGL_FUNC_START(NULL, EGL_NONE, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(NULL, EGL_NONE, NULL, EGL_FALSE);
- ret = drv->QueryDmaBufFormatsEXT(disp, max_formats, formats, num_formats);
+ ret = disp->Driver->QueryDmaBufFormatsEXT(disp, max_formats, formats, num_formats);
EGLBoolean ret;
_EGL_FUNC_START(NULL, EGL_NONE, NULL, EGL_FALSE);
EGLBoolean ret;
_EGL_FUNC_START(NULL, EGL_NONE, NULL, EGL_FALSE);
- ret = drv->QueryDmaBufModifiersEXT(disp, format, max_modifiers, modifiers,
+ ret = disp->Driver->QueryDmaBufModifiersEXT(disp, format, max_modifiers, modifiers,
external_only, num_modifiers);
RETURN_EGL_EVAL(disp, ret);
external_only, num_modifiers);
RETURN_EGL_EVAL(disp, ret);
- drv->SetBlobCacheFuncsANDROID(drv, disp, set, get);
+ disp->Driver->SetBlobCacheFuncsANDROID(disp, set, get);
_EGL_FUNC_START(NULL, EGL_NONE, NULL, EGL_FALSE);
_EGL_FUNC_START(NULL, EGL_NONE, NULL, EGL_FALSE);
char *ret;
_EGL_FUNC_START(disp, EGL_NONE, NULL, NULL);
char *ret;
_EGL_FUNC_START(disp, EGL_NONE, NULL, NULL);
const char *ret;
_EGL_FUNC_START(disp, EGL_NONE, NULL, NULL);
const char *ret;
_EGL_FUNC_START(disp, EGL_NONE, NULL, NULL);
*ctx = _eglLookupContext(context, *disp);
if (!*ctx ||
((*ctx)->ClientAPI != EGL_OPENGL_API &&
*ctx = _eglLookupContext(context, *disp);
if (!*ctx ||
((*ctx)->ClientAPI != EGL_OPENGL_API &&
- ret = _eglLockDisplayInterop(dpy, context, &disp, &drv, &ctx);
+ ret = _eglLockDisplayInterop(dpy, context, &disp, &ctx);
- if (drv->GLInteropQueryDeviceInfo)
- ret = drv->GLInteropQueryDeviceInfo(disp, ctx, out);
+ if (disp->Driver->GLInteropQueryDeviceInfo)
+ ret = disp->Driver->GLInteropQueryDeviceInfo(disp, ctx, out);
- ret = _eglLockDisplayInterop(dpy, context, &disp, &drv, &ctx);
+ ret = _eglLockDisplayInterop(dpy, context, &disp, &ctx);
- if (drv->GLInteropExportObject)
- ret = drv->GLInteropExportObject(disp, ctx, in, out);
+ if (disp->Driver->GLInteropExportObject)
+ ret = disp->Driver->GLInteropExportObject(disp, ctx, in, out);