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:

committed by
Marek Olšák

parent
4ff02b3edd
commit
72b9aa973b
@@ -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;
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user