eglarray.h revision 04ae53ca8a844fbb2764b6ecb942b68a6db850e7
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 32extern void 33_eglEraseArray(_EGLArray *array, EGLint i, void (*free_cb)(void *)); 34 35 36void * 37_eglFindArray(_EGLArray *array, void *elem); 38 39 40PUBLIC void ** 41_eglFilterArray(_EGLArray *array, EGLint *size, 42 _EGLArrayForEach filter, void *filter_data); 43 44 45EGLint 46_eglFlattenArray(_EGLArray *array, void *buffer, EGLint elem_size, EGLint size, 47 _EGLArrayForEach flatten); 48 49 50static INLINE EGLint 51_eglGetArraySize(_EGLArray *array) 52{ 53 return (array) ? array->Size : 0; 54} 55 56 57#endif /* EGLARRAY_INCLUDED */ 58