egl: flesh out a _eglNumAttribs() helper

Reviewed-by: Mathias Fröhlich <Mathias.Froehlich@web.de>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Emil Velikov
2019-05-16 18:01:33 +01:00
committed by Marek Olšák
parent 4ff02b3edd
commit 72b9aa973b
2 changed files with 16 additions and 9 deletions

View File

@@ -340,22 +340,16 @@ _eglConvertIntsToAttribs(const EGLint *int_list, EGLAttrib **out_attrib_list)
static EGLint *
_eglConvertAttribsToInt(const EGLAttrib *attr_list)
{
size_t size = _eglNumAttribs(attr_list);
EGLint *int_attribs = NULL;
/* Convert attributes from EGLAttrib[] to EGLint[] */
if (attr_list) {
int i, size = 0;
while (attr_list[size] != EGL_NONE)
size += 2;
size += 1; /* add space for EGL_NONE */
if (size) {
int_attribs = calloc(size, sizeof(int_attribs[0]));
if (!int_attribs)
return NULL;
for (i = 0; i < size; i++)
for (size_t i = 0; i < size; i++)
int_attribs[i] = attr_list[i];
}
return int_attribs;

View File

@@ -274,6 +274,19 @@ _eglIsResourceLinked(_EGLResource *res)
return res->IsLinked;
}
static inline size_t
_eglNumAttribs(const EGLAttrib *attribs)
{
size_t len = 0;
if (attribs) {
while (attribs[len] != EGL_NONE)
len += 2;
len++;
}
return len;
}
#ifdef HAVE_X11_PLATFORM
_EGLDisplay*
_eglGetX11Display(Display *native_display, const EGLAttrib *attrib_list);