eglarray.h revision 106466783f986f532d3ee7af3a70f693c610ea04
1#ifndef EGLARRAY_INCLUDED 2#define EGLARRAY_INCLUDED 3 4 5#include "egltypedefs.h" 6 7 8typedef EGLBoolean (*_EGLArrayForEach)(void *elem, void *foreach_data); 9 10 11struct _egl_array { 12 const char *Name; 13 EGLint MaxSize; 14 15 void **Elements; 16 EGLint Size; 17}; 18 19 20extern _EGLArray * 21_eglCreateArray(const char *name, EGLint init_size); 22 23 24PUBLIC void 25_eglDestroyArray(_EGLArray *array, void (*free_cb)(void *)); 26 27 28extern void 29_eglAppendArray(_EGLArray *array, void *elem); 30 31 32void * 33_eglFindArray(_EGLArray *array, void *elem); 34 35 36void ** 37_eglFilterArray(_EGLArray *array, EGLint *size, 38 _EGLArrayForEach filter, void *filter_data); 39 40 41EGLint 42_eglFlattenArray(_EGLArray *array, void *buffer, EGLint elem_size, EGLint size, 43 _EGLArrayForEach flatten); 44 45 46static INLINE EGLint 47_eglGetArraySize(_EGLArray *array) 48{ 49 return (array) ? array->Size : 0; 50} 51 52 53#endif /* EGLARRAY_INCLUDED */ 54