egl: inline _EGLAPI into _EGLDriver
_EGLDriver was an empty wrapper around _EGLAPI, so let's only keep one
of them. "driver" represents better what's being accessed, so that's the
one we're keeping.
Signed-off-by: Eric Engestrom <eric@engestrom.ch>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5987>
diff --git a/src/egl/Makefile.sources b/src/egl/Makefile.sources
index da1fce11..92589fa 100644
--- a/src/egl/Makefile.sources
+++ b/src/egl/Makefile.sources
@@ -1,6 +1,5 @@
LIBEGL_C_FILES := \
main/eglapi.c \
- main/eglapi.h \
main/eglarray.c \
main/eglarray.h \
main/eglconfig.c \
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index ea8f15d..4fc8d40 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -1136,7 +1136,7 @@
}
/**
- * Called via eglInitialize(), GLX_drv->API.Initialize().
+ * Called via eglInitialize(), drv->Initialize().
*
* This must be guaranteed to be called exactly once, even if eglInitialize is
* called many times (without a eglTerminate in between).
@@ -1305,7 +1305,7 @@
}
/**
- * Called via eglTerminate(), drv->API.Terminate().
+ * Called via eglTerminate(), drv->Terminate().
*
* This must be guaranteed to be called exactly once, even if eglTerminate is
* called many times (without a eglInitialize in between).
@@ -1463,7 +1463,7 @@
}
/**
- * Called via eglCreateContext(), drv->API.CreateContext().
+ * Called via eglCreateContext(), drv->CreateContext().
*/
static _EGLContext *
dri2_create_context(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf,
@@ -1638,7 +1638,7 @@
}
/**
- * Called via eglDestroyContext(), drv->API.DestroyContext().
+ * Called via eglDestroyContext(), drv->DestroyContext().
*/
static EGLBoolean
dri2_destroy_context(_EGLDriver *drv, _EGLDisplay *disp, _EGLContext *ctx)
@@ -1753,7 +1753,7 @@
}
/**
- * Called via eglMakeCurrent(), drv->API.MakeCurrent().
+ * Called via eglMakeCurrent(), drv->MakeCurrent().
*/
static EGLBoolean
dri2_make_current(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *dsurf,
@@ -1871,7 +1871,7 @@
}
/*
- * Called from eglGetProcAddress() via drv->API.GetProcAddress().
+ * Called from eglGetProcAddress() via drv->GetProcAddress().
*/
static _EGLProc
dri2_get_proc_address(_EGLDriver *drv, const char *procname)
@@ -3655,55 +3655,55 @@
void
_eglInitDriver(_EGLDriver *dri2_drv)
{
- dri2_drv->API.Initialize = dri2_initialize;
- dri2_drv->API.Terminate = dri2_terminate;
- dri2_drv->API.CreateContext = dri2_create_context;
- dri2_drv->API.DestroyContext = dri2_destroy_context;
- dri2_drv->API.MakeCurrent = dri2_make_current;
- dri2_drv->API.CreateWindowSurface = dri2_create_window_surface;
- dri2_drv->API.CreatePixmapSurface = dri2_create_pixmap_surface;
- dri2_drv->API.CreatePbufferSurface = dri2_create_pbuffer_surface;
- dri2_drv->API.DestroySurface = dri2_destroy_surface;
- dri2_drv->API.GetProcAddress = dri2_get_proc_address;
- dri2_drv->API.WaitClient = dri2_wait_client;
- dri2_drv->API.WaitNative = dri2_wait_native;
- dri2_drv->API.BindTexImage = dri2_bind_tex_image;
- dri2_drv->API.ReleaseTexImage = dri2_release_tex_image;
- dri2_drv->API.SwapInterval = dri2_swap_interval;
- dri2_drv->API.SwapBuffers = dri2_swap_buffers;
- dri2_drv->API.SwapBuffersWithDamageEXT = dri2_swap_buffers_with_damage;
- dri2_drv->API.SwapBuffersRegionNOK = dri2_swap_buffers_region;
- dri2_drv->API.SetDamageRegion = dri2_set_damage_region;
- dri2_drv->API.PostSubBufferNV = dri2_post_sub_buffer;
- dri2_drv->API.CopyBuffers = dri2_copy_buffers,
- dri2_drv->API.QueryBufferAge = dri2_query_buffer_age;
- dri2_drv->API.CreateImageKHR = dri2_create_image;
- dri2_drv->API.DestroyImageKHR = dri2_destroy_image_khr;
- dri2_drv->API.CreateWaylandBufferFromImageWL = dri2_create_wayland_buffer_from_image;
- dri2_drv->API.QuerySurface = dri2_query_surface;
- dri2_drv->API.QueryDriverName = dri2_query_driver_name;
- dri2_drv->API.QueryDriverConfig = dri2_query_driver_config;
+ dri2_drv->Initialize = dri2_initialize;
+ dri2_drv->Terminate = dri2_terminate;
+ dri2_drv->CreateContext = dri2_create_context;
+ dri2_drv->DestroyContext = dri2_destroy_context;
+ dri2_drv->MakeCurrent = dri2_make_current;
+ dri2_drv->CreateWindowSurface = dri2_create_window_surface;
+ dri2_drv->CreatePixmapSurface = dri2_create_pixmap_surface;
+ dri2_drv->CreatePbufferSurface = dri2_create_pbuffer_surface;
+ dri2_drv->DestroySurface = dri2_destroy_surface;
+ dri2_drv->GetProcAddress = dri2_get_proc_address;
+ dri2_drv->WaitClient = dri2_wait_client;
+ dri2_drv->WaitNative = dri2_wait_native;
+ dri2_drv->BindTexImage = dri2_bind_tex_image;
+ dri2_drv->ReleaseTexImage = dri2_release_tex_image;
+ dri2_drv->SwapInterval = dri2_swap_interval;
+ dri2_drv->SwapBuffers = dri2_swap_buffers;
+ dri2_drv->SwapBuffersWithDamageEXT = dri2_swap_buffers_with_damage;
+ dri2_drv->SwapBuffersRegionNOK = dri2_swap_buffers_region;
+ dri2_drv->SetDamageRegion = dri2_set_damage_region;
+ dri2_drv->PostSubBufferNV = dri2_post_sub_buffer;
+ dri2_drv->CopyBuffers = dri2_copy_buffers,
+ dri2_drv->QueryBufferAge = dri2_query_buffer_age;
+ dri2_drv->CreateImageKHR = dri2_create_image;
+ dri2_drv->DestroyImageKHR = dri2_destroy_image_khr;
+ dri2_drv->CreateWaylandBufferFromImageWL = dri2_create_wayland_buffer_from_image;
+ dri2_drv->QuerySurface = dri2_query_surface;
+ dri2_drv->QueryDriverName = dri2_query_driver_name;
+ dri2_drv->QueryDriverConfig = dri2_query_driver_config;
#ifdef HAVE_LIBDRM
- dri2_drv->API.CreateDRMImageMESA = dri2_create_drm_image_mesa;
- dri2_drv->API.ExportDRMImageMESA = dri2_export_drm_image_mesa;
- dri2_drv->API.ExportDMABUFImageQueryMESA = dri2_export_dma_buf_image_query_mesa;
- dri2_drv->API.ExportDMABUFImageMESA = dri2_export_dma_buf_image_mesa;
- dri2_drv->API.QueryDmaBufFormatsEXT = dri2_query_dma_buf_formats;
- dri2_drv->API.QueryDmaBufModifiersEXT = dri2_query_dma_buf_modifiers;
+ dri2_drv->CreateDRMImageMESA = dri2_create_drm_image_mesa;
+ dri2_drv->ExportDRMImageMESA = dri2_export_drm_image_mesa;
+ dri2_drv->ExportDMABUFImageQueryMESA = dri2_export_dma_buf_image_query_mesa;
+ dri2_drv->ExportDMABUFImageMESA = dri2_export_dma_buf_image_mesa;
+ dri2_drv->QueryDmaBufFormatsEXT = dri2_query_dma_buf_formats;
+ dri2_drv->QueryDmaBufModifiersEXT = dri2_query_dma_buf_modifiers;
#endif
#ifdef HAVE_WAYLAND_PLATFORM
- dri2_drv->API.BindWaylandDisplayWL = dri2_bind_wayland_display_wl;
- dri2_drv->API.UnbindWaylandDisplayWL = dri2_unbind_wayland_display_wl;
- dri2_drv->API.QueryWaylandBufferWL = dri2_query_wayland_buffer_wl;
+ dri2_drv->BindWaylandDisplayWL = dri2_bind_wayland_display_wl;
+ dri2_drv->UnbindWaylandDisplayWL = dri2_unbind_wayland_display_wl;
+ dri2_drv->QueryWaylandBufferWL = dri2_query_wayland_buffer_wl;
#endif
- dri2_drv->API.GetSyncValuesCHROMIUM = dri2_get_sync_values_chromium;
- dri2_drv->API.CreateSyncKHR = dri2_create_sync;
- dri2_drv->API.ClientWaitSyncKHR = dri2_client_wait_sync;
- dri2_drv->API.SignalSyncKHR = dri2_signal_sync;
- dri2_drv->API.WaitSyncKHR = dri2_server_wait_sync;
- dri2_drv->API.DestroySyncKHR = dri2_destroy_sync;
- dri2_drv->API.GLInteropQueryDeviceInfo = dri2_interop_query_device_info;
- dri2_drv->API.GLInteropExportObject = dri2_interop_export_object;
- dri2_drv->API.DupNativeFenceFDANDROID = dri2_dup_native_fence_fd;
- dri2_drv->API.SetBlobCacheFuncsANDROID = dri2_set_blob_cache_funcs;
+ dri2_drv->GetSyncValuesCHROMIUM = dri2_get_sync_values_chromium;
+ dri2_drv->CreateSyncKHR = dri2_create_sync;
+ dri2_drv->ClientWaitSyncKHR = dri2_client_wait_sync;
+ dri2_drv->SignalSyncKHR = dri2_signal_sync;
+ dri2_drv->WaitSyncKHR = dri2_server_wait_sync;
+ dri2_drv->DestroySyncKHR = dri2_destroy_sync;
+ dri2_drv->GLInteropQueryDeviceInfo = dri2_interop_query_device_info;
+ dri2_drv->GLInteropExportObject = dri2_interop_export_object;
+ dri2_drv->DupNativeFenceFDANDROID = dri2_dup_native_fence_fd;
+ dri2_drv->SetBlobCacheFuncsANDROID = dri2_set_blob_cache_funcs;
}
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index f65eca1..b49337e 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -304,7 +304,7 @@
}
/**
- * Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
+ * Called via eglCreateWindowSurface(), drv->CreateWindowSurface().
*/
static _EGLSurface *
dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
@@ -426,7 +426,7 @@
}
/**
- * Called via eglDestroySurface(), drv->API.DestroySurface().
+ * Called via eglDestroySurface(), drv->DestroySurface().
*/
static EGLBoolean
dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
@@ -1050,7 +1050,7 @@
}
/**
- * Called via eglSwapBuffers(), drv->API.SwapBuffers().
+ * Called via eglSwapBuffers(), drv->SwapBuffers().
*/
static EGLBoolean
dri2_wl_swap_buffers_with_damage(_EGLDriver *drv,
diff --git a/src/egl/drivers/dri2/platform_x11.c b/src/egl/drivers/dri2/platform_x11.c
index 8732a70..200f397 100644
--- a/src/egl/drivers/dri2/platform_x11.c
+++ b/src/egl/drivers/dri2/platform_x11.c
@@ -244,7 +244,7 @@
}
/**
- * Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
+ * Called via eglCreateWindowSurface(), drv->CreateWindowSurface().
*/
static _EGLSurface *
dri2_x11_create_surface(_EGLDriver *drv, _EGLDisplay *disp, EGLint type,
@@ -360,7 +360,7 @@
}
/**
- * Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
+ * Called via eglCreateWindowSurface(), drv->CreateWindowSurface().
*/
static _EGLSurface *
dri2_x11_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
diff --git a/src/egl/drivers/dri2/platform_x11_dri3.c b/src/egl/drivers/dri2/platform_x11_dri3.c
index f230fca..ed41054 100644
--- a/src/egl/drivers/dri2/platform_x11_dri3.c
+++ b/src/egl/drivers/dri2/platform_x11_dri3.c
@@ -219,7 +219,7 @@
}
/**
- * Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
+ * Called via eglCreateWindowSurface(), drv->CreateWindowSurface().
*/
static _EGLSurface *
dri3_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
diff --git a/src/egl/drivers/haiku/egl_haiku.cpp b/src/egl/drivers/haiku/egl_haiku.cpp
index ee92abe..52ab9dc 100644
--- a/src/egl/drivers/haiku/egl_haiku.cpp
+++ b/src/egl/drivers/haiku/egl_haiku.cpp
@@ -73,7 +73,7 @@
/**
- * Called via eglCreateWindowSurface(), drv->API.CreateWindowSurface().
+ * Called via eglCreateWindowSurface(), drv->CreateWindowSurface().
*/
static _EGLSurface *
haiku_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
@@ -321,17 +321,17 @@
{
CALLED();
- driver->API.Initialize = init_haiku;
- driver->API.Terminate = haiku_terminate;
- driver->API.CreateContext = haiku_create_context;
- driver->API.DestroyContext = haiku_destroy_context;
- driver->API.MakeCurrent = haiku_make_current;
- driver->API.CreateWindowSurface = haiku_create_window_surface;
- driver->API.CreatePixmapSurface = haiku_create_pixmap_surface;
- driver->API.CreatePbufferSurface = haiku_create_pbuffer_surface;
- driver->API.DestroySurface = haiku_destroy_surface;
+ driver->Initialize = init_haiku;
+ driver->Terminate = haiku_terminate;
+ driver->CreateContext = haiku_create_context;
+ driver->DestroyContext = haiku_destroy_context;
+ driver->MakeCurrent = haiku_make_current;
+ driver->CreateWindowSurface = haiku_create_window_surface;
+ driver->CreatePixmapSurface = haiku_create_pixmap_surface;
+ driver->CreatePbufferSurface = haiku_create_pbuffer_surface;
+ driver->DestroySurface = haiku_destroy_surface;
- driver->API.SwapBuffers = haiku_swap_buffers;
+ driver->SwapBuffers = haiku_swap_buffers;
TRACE("API Calls defined\n");
}
diff --git a/src/egl/main/README.txt b/src/egl/main/README.txt
index 9b5fd41..3e23650 100644
--- a/src/egl/main/README.txt
+++ b/src/egl/main/README.txt
@@ -25,11 +25,11 @@
As part of initialization, the dispatch table in _EGLDriver->API must be
populated with all the EGL entrypoints. Some functions like
-driver->API.Initialize and driver->API.Terminate _must_ be implemented
+driver->Initialize and driver->Terminate _must_ be implemented
with driver-specific code (no default/fallback function is possible).
-Shortly after, the driver->API.Initialize() function is executed. Any additional
+Shortly after, the driver->Initialize() function is executed. Any additional
driver initialization that wasn't done in the driver entry point should be
done at this point. Typically, this will involve setting up visual configs, etc.
@@ -54,7 +54,7 @@
Teardown:
-When eglTerminate() is called, the driver->API.Terminate() function is
+When eglTerminate() is called, the driver->Terminate() function is
called. The driver should clean up after itself. eglTerminate() will
then close/unload the driver (shared library).
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index e24a267..21fb747 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -96,7 +96,6 @@
#include "c11/threads.h"
#include "util/macros.h"
-#include "eglapi.h"
#include "egldefines.h"
#include "eglglobals.h"
#include "eglcontext.h"
@@ -675,7 +674,7 @@
if (disp->Initialized) {
_EGLDriver *drv = disp->Driver;
- drv->API.Terminate(drv, disp);
+ drv->Terminate(drv, disp);
/* do not reset disp->Driver */
disp->ClientAPIsString[0] = 0;
disp->Initialized = EGL_FALSE;
@@ -805,7 +804,7 @@
if (!share && share_list != EGL_NO_CONTEXT)
RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_NO_CONTEXT);
- context = drv->API.CreateContext(drv, disp, conf, share, attrib_list);
+ context = drv->CreateContext(drv, disp, conf, share, attrib_list);
ret = (context) ? _eglLinkContext(context) : EGL_NO_CONTEXT;
RETURN_EGL_EVAL(disp, ret);
@@ -824,7 +823,7 @@
_EGL_CHECK_CONTEXT(disp, context, EGL_FALSE, drv);
_eglUnlinkContext(context);
- ret = drv->API.DestroyContext(drv, disp, context);
+ ret = drv->DestroyContext(drv, disp, context);
RETURN_EGL_EVAL(disp, ret);
}
@@ -882,7 +881,7 @@
if (read_surf && read_surf->Lost)
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_FALSE);
- ret = drv->API.MakeCurrent(drv, disp, draw_surf, read_surf, context);
+ ret = drv->MakeCurrent(drv, disp, draw_surf, read_surf, context);
RETURN_EGL_EVAL(disp, ret);
}
@@ -971,7 +970,7 @@
if (_eglNativeSurfaceAlreadyUsed(disp, native_window))
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
- surf = drv->API.CreateWindowSurface(drv, disp, conf, native_window,
+ surf = drv->CreateWindowSurface(drv, disp, conf, native_window,
attrib_list);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
@@ -1098,7 +1097,7 @@
if (_eglNativeSurfaceAlreadyUsed(disp, native_pixmap))
RETURN_EGL_ERROR(disp, EGL_BAD_ALLOC, EGL_NO_SURFACE);
- surf = drv->API.CreatePixmapSurface(drv, disp, conf, native_pixmap,
+ surf = drv->CreatePixmapSurface(drv, disp, conf, native_pixmap,
attrib_list);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
@@ -1171,7 +1170,7 @@
if ((conf->SurfaceType & EGL_PBUFFER_BIT) == 0)
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SURFACE);
- surf = drv->API.CreatePbufferSurface(drv, disp, conf, attrib_list);
+ surf = drv->CreatePbufferSurface(drv, disp, conf, attrib_list);
ret = (surf) ? _eglLinkSurface(surf) : EGL_NO_SURFACE;
RETURN_EGL_EVAL(disp, ret);
@@ -1189,7 +1188,7 @@
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
_eglUnlinkSurface(surf);
- ret = drv->API.DestroySurface(drv, disp, surf);
+ ret = drv->DestroySurface(drv, disp, surf);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1206,8 +1205,8 @@
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- if (drv->API.QuerySurface)
- ret = drv->API.QuerySurface(drv, disp, surf, attribute, value);
+ if (drv->QuerySurface)
+ ret = drv->QuerySurface(drv, disp, surf, attribute, value);
else
ret = _eglQuerySurface(drv, disp, surf, attribute, value);
@@ -1242,7 +1241,7 @@
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- ret = drv->API.BindTexImage(drv, disp, surf, buffer);
+ ret = drv->BindTexImage(drv, disp, surf, buffer);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1258,7 +1257,7 @@
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- ret = drv->API.ReleaseTexImage(drv, disp, surf, buffer);
+ ret = drv->ReleaseTexImage(drv, disp, surf, buffer);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1291,8 +1290,8 @@
surf->Config->MaxSwapInterval);
if (surf->SwapInterval != interval) {
- if (drv->API.SwapInterval)
- ret = drv->API.SwapInterval(drv, disp, surf, interval);
+ if (drv->SwapInterval)
+ ret = drv->SwapInterval(drv, disp, surf, interval);
else
ret = _eglSwapInterval(drv, disp, surf, interval);
}
@@ -1338,7 +1337,7 @@
if (surf->Lost)
RETURN_EGL_ERROR(disp, EGL_BAD_NATIVE_WINDOW, EGL_FALSE);
- ret = drv->API.SwapBuffers(drv, disp, surf);
+ ret = drv->SwapBuffers(drv, disp, surf);
/* EGL_KHR_partial_update
* Frame boundary successfully reached,
@@ -1374,7 +1373,7 @@
if ((n_rects > 0 && rects == NULL) || n_rects < 0)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.SwapBuffersWithDamageEXT(drv, disp, surf, rects, n_rects);
+ ret = drv->SwapBuffersWithDamageEXT(drv, disp, surf, rects, n_rects);
/* EGL_KHR_partial_update
* Frame boundary successfully reached,
@@ -1461,7 +1460,7 @@
RETURN_EGL_ERROR(disp, EGL_BAD_ACCESS, EGL_FALSE);
_eglSetDamageRegionKHRClampRects(disp, surf, rects, n_rects);
- ret = drv->API.SetDamageRegion(drv, disp, surf, rects, n_rects);
+ ret = drv->SetDamageRegion(drv, disp, surf, rects, n_rects);
if (ret)
surf->SetDamageRegionCalled = EGL_TRUE;
@@ -1483,7 +1482,7 @@
native_pixmap_ptr = (void*) target;
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE, drv);
- ret = drv->API.CopyBuffers(drv, disp, surf, native_pixmap_ptr);
+ ret = drv->CopyBuffers(drv, disp, surf, native_pixmap_ptr);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1511,7 +1510,7 @@
/* a valid current context implies an initialized current display */
assert(disp->Initialized);
drv = disp->Driver;
- ret = drv->API.WaitClient(drv, disp, ctx);
+ ret = drv->WaitClient(drv, disp, ctx);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1556,7 +1555,7 @@
/* a valid current context implies an initialized current display */
assert(disp->Initialized);
drv = disp->Driver;
- ret = drv->API.WaitNative(drv, disp, engine);
+ ret = drv->WaitNative(drv, disp, engine);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1714,7 +1713,7 @@
mtx_lock(&disp->Mutex);
drv = disp->Driver;
- (void) drv->API.MakeCurrent(drv, disp, NULL, NULL, NULL);
+ (void) drv->MakeCurrent(drv, disp, NULL, NULL, NULL);
mtx_unlock(&disp->Mutex);
}
}
@@ -1745,7 +1744,7 @@
if (ctx != EGL_NO_CONTEXT && target == EGL_LINUX_DMA_BUF_EXT)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_NO_IMAGE_KHR);
- img = drv->API.CreateImageKHR(drv, disp, context, target,
+ img = drv->CreateImageKHR(drv, disp, context, target,
buffer, attr_list);
ret = (img) ? _eglLinkImage(img) : EGL_NO_IMAGE_KHR;
@@ -1795,7 +1794,7 @@
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
_eglUnlinkImage(img);
- ret = drv->API.DestroyImageKHR(drv, disp, img);
+ ret = drv->DestroyImageKHR(drv, disp, img);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1879,7 +1878,7 @@
RETURN_EGL_ERROR(disp, invalid_type_error, EGL_NO_SYNC_KHR);
}
- sync = drv->API.CreateSyncKHR(drv, disp, type, attrib_list);
+ sync = drv->CreateSyncKHR(drv, disp, type, attrib_list);
ret = (sync) ? _eglLinkSync(sync) : EGL_NO_SYNC_KHR;
RETURN_EGL_EVAL(disp, ret);
@@ -1947,7 +1946,7 @@
disp->Extensions.ANDROID_native_fence_sync);
_eglUnlinkSync(s);
- ret = drv->API.DestroySyncKHR(drv, disp, s);
+ ret = drv->DestroySyncKHR(drv, disp, s);
RETURN_EGL_EVAL(disp, ret);
}
@@ -1994,7 +1993,7 @@
if (s->Type == EGL_SYNC_REUSABLE_KHR)
_eglUnlockDisplay(dpy);
- ret = drv->API.ClientWaitSyncKHR(drv, disp, s, flags, timeout);
+ ret = drv->ClientWaitSyncKHR(drv, disp, s, flags, timeout);
/*
* 'disp' is already unlocked for reusable sync type,
@@ -2047,7 +2046,7 @@
if (flags != 0)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.WaitSyncKHR(drv, disp, s);
+ ret = drv->WaitSyncKHR(drv, disp, s);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2088,7 +2087,7 @@
_EGL_CHECK_SYNC(disp, s, EGL_FALSE, drv);
assert(disp->Extensions.KHR_reusable_sync);
- ret = drv->API.SignalSyncKHR(drv, disp, s, mode);
+ ret = drv->SignalSyncKHR(drv, disp, s, mode);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2170,7 +2169,7 @@
_EGL_CHECK_SYNC(disp, s, EGL_NO_NATIVE_FENCE_FD_ANDROID, drv);
assert(disp->Extensions.ANDROID_native_fence_sync);
- ret = drv->API.DupNativeFenceFDANDROID(drv, disp, s);
+ ret = drv->DupNativeFenceFDANDROID(drv, disp, s);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2197,7 +2196,7 @@
surf != ctx->DrawSurface)
RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
- ret = drv->API.SwapBuffersRegionNOK(drv, disp, surf, numRects, rects);
+ ret = drv->SwapBuffersRegionNOK(drv, disp, surf, numRects, rects);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2217,7 +2216,7 @@
if (!disp->Extensions.MESA_drm_image)
RETURN_EGL_EVAL(disp, EGL_NO_IMAGE_KHR);
- img = drv->API.CreateDRMImageMESA(drv, disp, attr_list);
+ img = drv->CreateDRMImageMESA(drv, disp, attr_list);
ret = (img) ? _eglLinkImage(img) : EGL_NO_IMAGE_KHR;
RETURN_EGL_EVAL(disp, ret);
@@ -2240,7 +2239,7 @@
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.ExportDRMImageMESA(drv, disp, img, name, handle, stride);
+ ret = drv->ExportDRMImageMESA(drv, disp, img, name, handle, stride);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2263,7 +2262,7 @@
if (!display)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.BindWaylandDisplayWL(drv, disp, display);
+ ret = drv->BindWaylandDisplayWL(drv, disp, display);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2283,7 +2282,7 @@
if (!display)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.UnbindWaylandDisplayWL(drv, disp, display);
+ ret = drv->UnbindWaylandDisplayWL(drv, disp, display);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2304,7 +2303,7 @@
if (!buffer)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.QueryWaylandBufferWL(drv, disp, buffer, attribute, value);
+ ret = drv->QueryWaylandBufferWL(drv, disp, buffer, attribute, value);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2329,7 +2328,7 @@
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, NULL);
- ret = drv->API.CreateWaylandBufferFromImageWL(drv, disp, img);
+ ret = drv->CreateWaylandBufferFromImageWL(drv, disp, img);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2350,7 +2349,7 @@
if (!disp->Extensions.NV_post_sub_buffer)
RETURN_EGL_EVAL(disp, EGL_FALSE);
- ret = drv->API.PostSubBufferNV(drv, disp, surf, x, y, width, height);
+ ret = drv->PostSubBufferNV(drv, disp, surf, x, y, width, height);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2374,7 +2373,7 @@
if (!ust || !msc || !sbc)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.GetSyncValuesCHROMIUM(disp, surf, ust, msc, sbc);
+ ret = drv->GetSyncValuesCHROMIUM(disp, surf, ust, msc, sbc);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2397,7 +2396,7 @@
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.ExportDMABUFImageQueryMESA(drv, disp, img, fourcc, nplanes,
+ ret = drv->ExportDMABUFImageQueryMESA(drv, disp, img, fourcc, nplanes,
modifiers);
RETURN_EGL_EVAL(disp, ret);
@@ -2420,7 +2419,7 @@
if (!img)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
- ret = drv->API.ExportDMABUFImageMESA(drv, disp, img, fds, strides, offsets);
+ ret = drv->ExportDMABUFImageMESA(drv, disp, img, fds, strides, offsets);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2584,7 +2583,7 @@
_EGL_CHECK_DISPLAY(disp, EGL_FALSE, drv);
- ret = drv->API.QueryDmaBufFormatsEXT(drv, disp, max_formats, formats,
+ ret = drv->QueryDmaBufFormatsEXT(drv, disp, max_formats, formats,
num_formats);
RETURN_EGL_EVAL(disp, ret);
@@ -2603,7 +2602,7 @@
_EGL_CHECK_DISPLAY(disp, EGL_FALSE, drv);
- ret = drv->API.QueryDmaBufModifiersEXT(drv, disp, format, max_modifiers,
+ ret = drv->QueryDmaBufModifiersEXT(drv, disp, format, max_modifiers,
modifiers, external_only,
num_modifiers);
@@ -2648,7 +2647,7 @@
disp->BlobCacheSet = set;
disp->BlobCacheGet = get;
- drv->API.SetBlobCacheFuncsANDROID(drv, disp, set, get);
+ drv->SetBlobCacheFuncsANDROID(drv, disp, set, get);
_eglUnlockDisplay(disp);
}
@@ -2728,7 +2727,7 @@
assert(disp->Extensions.MESA_query_driver);
- ret = drv->API.QueryDriverConfig(disp);
+ ret = drv->QueryDriverConfig(disp);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2744,7 +2743,7 @@
assert(disp->Extensions.MESA_query_driver);
- ret = drv->API.QueryDriverName(disp);
+ ret = drv->QueryDriverName(disp);
RETURN_EGL_EVAL(disp, ret);
}
@@ -2818,8 +2817,8 @@
if (ret != MESA_GLINTEROP_SUCCESS)
return ret;
- if (drv->API.GLInteropQueryDeviceInfo)
- ret = drv->API.GLInteropQueryDeviceInfo(disp, ctx, out);
+ if (drv->GLInteropQueryDeviceInfo)
+ ret = drv->GLInteropQueryDeviceInfo(disp, ctx, out);
else
ret = MESA_GLINTEROP_UNSUPPORTED;
@@ -2841,8 +2840,8 @@
if (ret != MESA_GLINTEROP_SUCCESS)
return ret;
- if (drv->API.GLInteropExportObject)
- ret = drv->API.GLInteropExportObject(disp, ctx, in, out);
+ if (drv->GLInteropExportObject)
+ ret = drv->GLInteropExportObject(disp, ctx, in, out);
else
ret = MESA_GLINTEROP_UNSUPPORTED;
diff --git a/src/egl/main/eglapi.h b/src/egl/main/eglapi.h
deleted file mode 100644
index 968f4b2..0000000
--- a/src/egl/main/eglapi.h
+++ /dev/null
@@ -1,198 +0,0 @@
-/**************************************************************************
- *
- * Copyright 2008 VMware, Inc.
- * Copyright 2009-2010 Chia-I Wu <olvaffe@gmail.com>
- * Copyright 2010-2011 LunarG, Inc.
- * All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the
- * "Software"), to deal in the Software without restriction, including
- * without limitation the rights to use, copy, modify, merge, publish,
- * distribute, sub license, and/or sell copies of the Software, and to
- * permit persons to whom the Software is furnished to do so, subject to
- * the following conditions:
- *
- * The above copyright notice and this permission notice (including the
- * next paragraph) shall be included in all copies or substantial portions
- * of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- *
- **************************************************************************/
-
-
-#ifndef EGLAPI_INCLUDED
-#define EGLAPI_INCLUDED
-
-#include "egltypedefs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * A generic function ptr type
- */
-typedef void (*_EGLProc)(void);
-
-struct wl_display;
-struct mesa_glinterop_device_info;
-struct mesa_glinterop_export_in;
-struct mesa_glinterop_export_out;
-
-/**
- * The API dispatcher jumps through these functions
- */
-struct _egl_api
-{
- /* driver funcs */
- EGLBoolean (*Initialize)(_EGLDriver *, _EGLDisplay *disp);
- EGLBoolean (*Terminate)(_EGLDriver *, _EGLDisplay *disp);
- const char *(*QueryDriverName)(_EGLDisplay *disp);
- char *(*QueryDriverConfig)(_EGLDisplay *disp);
-
- /* context funcs */
- _EGLContext *(*CreateContext)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLConfig *config, _EGLContext *share_list,
- const EGLint *attrib_list);
- EGLBoolean (*DestroyContext)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLContext *ctx);
- /* this is the only function (other than Initialize) that may be called
- * with an uninitialized display
- */
- EGLBoolean (*MakeCurrent)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *draw, _EGLSurface *read,
- _EGLContext *ctx);
-
- /* surface funcs */
- _EGLSurface *(*CreateWindowSurface)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLConfig *config, void *native_window,
- const EGLint *attrib_list);
- _EGLSurface *(*CreatePixmapSurface)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLConfig *config, void *native_pixmap,
- const EGLint *attrib_list);
- _EGLSurface *(*CreatePbufferSurface)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLConfig *config,
- const EGLint *attrib_list);
- EGLBoolean (*DestroySurface)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface);
- EGLBoolean (*QuerySurface)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface, EGLint attribute,
- EGLint *value);
- EGLBoolean (*BindTexImage)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface, EGLint buffer);
- EGLBoolean (*ReleaseTexImage)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface, EGLint buffer);
- EGLBoolean (*SwapInterval)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surf, EGLint interval);
- EGLBoolean (*SwapBuffers)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *draw);
- EGLBoolean (*CopyBuffers)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface, void *native_pixmap_target);
- EGLBoolean (*SetDamageRegion)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface, EGLint *rects, EGLint n_rects);
-
- /* misc functions */
- EGLBoolean (*WaitClient)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLContext *ctx);
- EGLBoolean (*WaitNative)(_EGLDriver *drv, _EGLDisplay *disp,
- EGLint engine);
-
- /* this function may be called from multiple threads at the same time */
- _EGLProc (*GetProcAddress)(_EGLDriver *drv, const char *procname);
-
- _EGLImage *(*CreateImageKHR)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLContext *ctx, EGLenum target,
- EGLClientBuffer buffer,
- const EGLint *attr_list);
- EGLBoolean (*DestroyImageKHR)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLImage *image);
-
- _EGLSync *(*CreateSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp, EGLenum type,
- const EGLAttrib *attrib_list);
- EGLBoolean (*DestroySyncKHR)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSync *sync);
- EGLint (*ClientWaitSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSync *sync, EGLint flags, EGLTime timeout);
- EGLint (*WaitSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp, _EGLSync *sync);
- EGLBoolean (*SignalSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSync *sync, EGLenum mode);
- EGLint (*DupNativeFenceFDANDROID)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSync *sync);
-
- EGLBoolean (*SwapBuffersRegionNOK)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surf, EGLint numRects,
- const EGLint *rects);
-
- _EGLImage *(*CreateDRMImageMESA)(_EGLDriver *drv, _EGLDisplay *disp,
- const EGLint *attr_list);
- EGLBoolean (*ExportDRMImageMESA)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLImage *img, EGLint *name,
- EGLint *handle, EGLint *stride);
-
- EGLBoolean (*BindWaylandDisplayWL)(_EGLDriver *drv, _EGLDisplay *disp,
- struct wl_display *display);
- EGLBoolean (*UnbindWaylandDisplayWL)(_EGLDriver *drv, _EGLDisplay *disp,
- struct wl_display *display);
- EGLBoolean (*QueryWaylandBufferWL)(_EGLDriver *drv, _EGLDisplay *displ,
- struct wl_resource *buffer,
- EGLint attribute, EGLint *value);
-
- struct wl_buffer *(*CreateWaylandBufferFromImageWL)(_EGLDriver *drv,
- _EGLDisplay *disp,
- _EGLImage *img);
-
- EGLBoolean (*SwapBuffersWithDamageEXT)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface,
- const EGLint *rects, EGLint n_rects);
-
- EGLBoolean (*PostSubBufferNV)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLSurface *surface, EGLint x, EGLint y,
- EGLint width, EGLint height);
-
- EGLint (*QueryBufferAge)(_EGLDriver *drv,
- _EGLDisplay *disp, _EGLSurface *surface);
- EGLBoolean (*GetSyncValuesCHROMIUM)(_EGLDisplay *disp, _EGLSurface *surface,
- EGLuint64KHR *ust, EGLuint64KHR *msc,
- EGLuint64KHR *sbc);
-
- EGLBoolean (*ExportDMABUFImageQueryMESA)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLImage *img, EGLint *fourcc,
- EGLint *nplanes,
- EGLuint64KHR *modifiers);
- EGLBoolean (*ExportDMABUFImageMESA)(_EGLDriver *drv, _EGLDisplay *disp,
- _EGLImage *img, EGLint *fds,
- EGLint *strides, EGLint *offsets);
-
- int (*GLInteropQueryDeviceInfo)(_EGLDisplay *disp, _EGLContext *ctx,
- struct mesa_glinterop_device_info *out);
- int (*GLInteropExportObject)(_EGLDisplay *disp, _EGLContext *ctx,
- struct mesa_glinterop_export_in *in,
- struct mesa_glinterop_export_out *out);
-
- EGLBoolean (*QueryDmaBufFormatsEXT)(_EGLDriver *drv, _EGLDisplay *disp,
- EGLint max_formats, EGLint *formats,
- EGLint *num_formats);
- EGLBoolean (*QueryDmaBufModifiersEXT) (_EGLDriver *drv, _EGLDisplay *disp,
- EGLint format, EGLint max_modifiers,
- EGLuint64KHR *modifiers,
- EGLBoolean *external_only,
- EGLint *num_modifiers);
-
- void (*SetBlobCacheFuncsANDROID) (_EGLDriver *drv, _EGLDisplay *disp,
- EGLSetBlobFuncANDROID set,
- EGLGetBlobFuncANDROID get);
-};
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* EGLAPI_INCLUDED */
diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c
index 2cafc74..3321d9e 100644
--- a/src/egl/main/egldisplay.c
+++ b/src/egl/main/egldisplay.c
@@ -303,7 +303,7 @@
list = list->Next;
_eglUnlinkContext(ctx);
- drv->API.DestroyContext(drv, display, ctx);
+ drv->DestroyContext(drv, display, ctx);
}
assert(!display->ResourceLists[_EGL_RESOURCE_CONTEXT]);
@@ -313,7 +313,7 @@
list = list->Next;
_eglUnlinkSurface(surf);
- drv->API.DestroySurface(drv, display, surf);
+ drv->DestroySurface(drv, display, surf);
}
assert(!display->ResourceLists[_EGL_RESOURCE_SURFACE]);
@@ -323,7 +323,7 @@
list = list->Next;
_eglUnlinkImage(image);
- drv->API.DestroyImageKHR(drv, display, image);
+ drv->DestroyImageKHR(drv, display, image);
}
assert(!display->ResourceLists[_EGL_RESOURCE_IMAGE]);
@@ -333,7 +333,7 @@
list = list->Next;
_eglUnlinkSync(sync);
- drv->API.DestroySyncKHR(drv, display, sync);
+ drv->DestroySyncKHR(drv, display, sync);
}
assert(!display->ResourceLists[_EGL_RESOURCE_SYNC]);
}
diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c
index 526de02..7bc373d 100644
--- a/src/egl/main/egldriver.c
+++ b/src/egl/main/egldriver.c
@@ -72,7 +72,7 @@
_eglMatchAndInitialize(_EGLDisplay *disp)
{
if (_eglGetDriver())
- if (_eglDriver->API.Initialize(_eglDriver, disp))
+ if (_eglDriver->Initialize(_eglDriver, disp))
return _eglDriver;
return NULL;
@@ -112,8 +112,8 @@
__eglMustCastToProperFunctionPointerType
_eglGetDriverProc(const char *procname)
{
- if (_eglGetDriver() && _eglDriver->API.GetProcAddress)
- return _eglDriver->API.GetProcAddress(_eglDriver, procname);
+ if (_eglGetDriver() && _eglDriver->GetProcAddress)
+ return _eglDriver->GetProcAddress(_eglDriver, procname);
return NULL;
}
diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h
index 1a5238a..52767c2 100644
--- a/src/egl/main/egldriver.h
+++ b/src/egl/main/egldriver.h
@@ -35,7 +35,6 @@
#include "c99_compat.h"
#include "egltypedefs.h"
-#include "eglapi.h"
#include <stddef.h>
@@ -69,13 +68,158 @@
_EGL_DRIVER_TYPECAST(drvname ## _surface, _EGLSurface, obj) \
_EGL_DRIVER_TYPECAST(drvname ## _config, _EGLConfig, obj)
+/**
+ * A generic function ptr type
+ */
+typedef void (*_EGLProc)(void);
+
+struct wl_display;
+struct mesa_glinterop_device_info;
+struct mesa_glinterop_export_in;
+struct mesa_glinterop_export_out;
/**
- * Base class for device drivers.
+ * The API dispatcher jumps through these functions
*/
struct _egl_driver
{
- _EGLAPI API; /**< EGL API dispatch table */
+ /* driver funcs */
+ EGLBoolean (*Initialize)(_EGLDriver *, _EGLDisplay *disp);
+ EGLBoolean (*Terminate)(_EGLDriver *, _EGLDisplay *disp);
+ const char *(*QueryDriverName)(_EGLDisplay *disp);
+ char *(*QueryDriverConfig)(_EGLDisplay *disp);
+
+ /* context funcs */
+ _EGLContext *(*CreateContext)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLConfig *config, _EGLContext *share_list,
+ const EGLint *attrib_list);
+ EGLBoolean (*DestroyContext)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLContext *ctx);
+ /* this is the only function (other than Initialize) that may be called
+ * with an uninitialized display
+ */
+ EGLBoolean (*MakeCurrent)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *draw, _EGLSurface *read,
+ _EGLContext *ctx);
+
+ /* surface funcs */
+ _EGLSurface *(*CreateWindowSurface)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLConfig *config, void *native_window,
+ const EGLint *attrib_list);
+ _EGLSurface *(*CreatePixmapSurface)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLConfig *config, void *native_pixmap,
+ const EGLint *attrib_list);
+ _EGLSurface *(*CreatePbufferSurface)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLConfig *config,
+ const EGLint *attrib_list);
+ EGLBoolean (*DestroySurface)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface);
+ EGLBoolean (*QuerySurface)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface, EGLint attribute,
+ EGLint *value);
+ EGLBoolean (*BindTexImage)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface, EGLint buffer);
+ EGLBoolean (*ReleaseTexImage)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface, EGLint buffer);
+ EGLBoolean (*SwapInterval)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surf, EGLint interval);
+ EGLBoolean (*SwapBuffers)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *draw);
+ EGLBoolean (*CopyBuffers)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface, void *native_pixmap_target);
+ EGLBoolean (*SetDamageRegion)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface, EGLint *rects, EGLint n_rects);
+
+ /* misc functions */
+ EGLBoolean (*WaitClient)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLContext *ctx);
+ EGLBoolean (*WaitNative)(_EGLDriver *drv, _EGLDisplay *disp,
+ EGLint engine);
+
+ /* this function may be called from multiple threads at the same time */
+ _EGLProc (*GetProcAddress)(_EGLDriver *drv, const char *procname);
+
+ _EGLImage *(*CreateImageKHR)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLContext *ctx, EGLenum target,
+ EGLClientBuffer buffer,
+ const EGLint *attr_list);
+ EGLBoolean (*DestroyImageKHR)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLImage *image);
+
+ _EGLSync *(*CreateSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp, EGLenum type,
+ const EGLAttrib *attrib_list);
+ EGLBoolean (*DestroySyncKHR)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSync *sync);
+ EGLint (*ClientWaitSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSync *sync, EGLint flags, EGLTime timeout);
+ EGLint (*WaitSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp, _EGLSync *sync);
+ EGLBoolean (*SignalSyncKHR)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSync *sync, EGLenum mode);
+ EGLint (*DupNativeFenceFDANDROID)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSync *sync);
+
+ EGLBoolean (*SwapBuffersRegionNOK)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surf, EGLint numRects,
+ const EGLint *rects);
+
+ _EGLImage *(*CreateDRMImageMESA)(_EGLDriver *drv, _EGLDisplay *disp,
+ const EGLint *attr_list);
+ EGLBoolean (*ExportDRMImageMESA)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLImage *img, EGLint *name,
+ EGLint *handle, EGLint *stride);
+
+ EGLBoolean (*BindWaylandDisplayWL)(_EGLDriver *drv, _EGLDisplay *disp,
+ struct wl_display *display);
+ EGLBoolean (*UnbindWaylandDisplayWL)(_EGLDriver *drv, _EGLDisplay *disp,
+ struct wl_display *display);
+ EGLBoolean (*QueryWaylandBufferWL)(_EGLDriver *drv, _EGLDisplay *displ,
+ struct wl_resource *buffer,
+ EGLint attribute, EGLint *value);
+
+ struct wl_buffer *(*CreateWaylandBufferFromImageWL)(_EGLDriver *drv,
+ _EGLDisplay *disp,
+ _EGLImage *img);
+
+ EGLBoolean (*SwapBuffersWithDamageEXT)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface,
+ const EGLint *rects, EGLint n_rects);
+
+ EGLBoolean (*PostSubBufferNV)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLSurface *surface, EGLint x, EGLint y,
+ EGLint width, EGLint height);
+
+ EGLint (*QueryBufferAge)(_EGLDriver *drv,
+ _EGLDisplay *disp, _EGLSurface *surface);
+ EGLBoolean (*GetSyncValuesCHROMIUM)(_EGLDisplay *disp, _EGLSurface *surface,
+ EGLuint64KHR *ust, EGLuint64KHR *msc,
+ EGLuint64KHR *sbc);
+
+ EGLBoolean (*ExportDMABUFImageQueryMESA)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLImage *img, EGLint *fourcc,
+ EGLint *nplanes,
+ EGLuint64KHR *modifiers);
+ EGLBoolean (*ExportDMABUFImageMESA)(_EGLDriver *drv, _EGLDisplay *disp,
+ _EGLImage *img, EGLint *fds,
+ EGLint *strides, EGLint *offsets);
+
+ int (*GLInteropQueryDeviceInfo)(_EGLDisplay *disp, _EGLContext *ctx,
+ struct mesa_glinterop_device_info *out);
+ int (*GLInteropExportObject)(_EGLDisplay *disp, _EGLContext *ctx,
+ struct mesa_glinterop_export_in *in,
+ struct mesa_glinterop_export_out *out);
+
+ EGLBoolean (*QueryDmaBufFormatsEXT)(_EGLDriver *drv, _EGLDisplay *disp,
+ EGLint max_formats, EGLint *formats,
+ EGLint *num_formats);
+ EGLBoolean (*QueryDmaBufModifiersEXT) (_EGLDriver *drv, _EGLDisplay *disp,
+ EGLint format, EGLint max_modifiers,
+ EGLuint64KHR *modifiers,
+ EGLBoolean *external_only,
+ EGLint *num_modifiers);
+
+ void (*SetBlobCacheFuncsANDROID) (_EGLDriver *drv, _EGLDisplay *disp,
+ EGLSetBlobFuncANDROID set,
+ EGLGetBlobFuncANDROID get);
};
diff --git a/src/egl/main/eglsurface.c b/src/egl/main/eglsurface.c
index 2225739..2024271 100644
--- a/src/egl/main/eglsurface.c
+++ b/src/egl/main/eglsurface.c
@@ -534,7 +534,7 @@
return _eglError(EGL_BAD_ATTRIBUTE, "eglQuerySurface");
_EGLContext *ctx = _eglGetCurrentContext();
- EGLint result = drv->API.QueryBufferAge(drv, disp, surface);
+ EGLint result = drv->QueryBufferAge(drv, disp, surface);
/* error happened */
if (result < 0)
return EGL_FALSE;
diff --git a/src/egl/main/eglsync.c b/src/egl/main/eglsync.c
index d3c0cf4..b903229 100644
--- a/src/egl/main/eglsync.c
+++ b/src/egl/main/eglsync.c
@@ -134,7 +134,7 @@
sync->Type == EGL_SYNC_CL_EVENT_KHR ||
sync->Type == EGL_SYNC_REUSABLE_KHR ||
sync->Type == EGL_SYNC_NATIVE_FENCE_ANDROID))
- drv->API.ClientWaitSyncKHR(drv, disp, sync, 0, 0);
+ drv->ClientWaitSyncKHR(drv, disp, sync, 0, 0);
*value = sync->SyncStatus;
break;
diff --git a/src/egl/main/egltypedefs.h b/src/egl/main/egltypedefs.h
index 4809cf5..935fd02 100644
--- a/src/egl/main/egltypedefs.h
+++ b/src/egl/main/egltypedefs.h
@@ -40,8 +40,6 @@
extern "C" {
#endif
-typedef struct _egl_api _EGLAPI;
-
typedef struct _egl_array _EGLArray;
typedef struct _egl_config _EGLConfig;
diff --git a/src/egl/meson.build b/src/egl/meson.build
index d4912a6..aca3de2 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -28,7 +28,6 @@
files_egl = files(
'main/eglapi.c',
- 'main/eglapi.h',
'main/eglarray.c',
'main/eglarray.h',
'main/eglconfig.c',