blob: 80bdb0e3eef35d2215d69d3234cb0e18072efc1e [file] [log] [blame]
#ifndef EGLARRAY_INCLUDED
#define EGLARRAY_INCLUDED
#include "egltypedefs.h"
typedef EGLBoolean (*_EGLArrayForEach)(void *elem, void *foreach_data);
struct _egl_array {
const char *Name;
EGLint MaxSize;
void **Elements;
EGLint Size;
};
extern _EGLArray *
_eglCreateArray(const char *name, EGLint init_size);
PUBLIC void
_eglDestroyArray(_EGLArray *array, void (*free_cb)(void *));
extern void
_eglAppendArray(_EGLArray *array, void *elem);
void *
_eglFindArray(_EGLArray *array, void *elem);
void **
_eglFilterArray(_EGLArray *array, EGLint *size,
_EGLArrayForEach filter, void *filter_data);
EGLint
_eglFlattenArray(_EGLArray *array, void *buffer, EGLint elem_size, EGLint size,
_EGLArrayForEach flatten);
static INLINE EGLint
_eglGetArraySize(_EGLArray *array)
{
return (array) ? array->Size : 0;
}
#endif /* EGLARRAY_INCLUDED */