array.h 998 B

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * 3D Engine
  3. * array.h:
  4. * Based on pikuma.com 3D software renderer in C
  5. * Copyright (c) 2021 986-Studio. All rights reserved.
  6. *
  7. * Created by Manoël Trapier on 04/03/2021.
  8. */
  9. #ifndef THREEDENGINE_SOURCE_INCLUDE_ARRAY_H
  10. #define THREEDENGINE_SOURCE_INCLUDE_ARRAY_H
  11. #include <stdlib.h>
  12. #include <stdint.h>
  13. /***********************************************************************************************************************
  14. * Prototypes
  15. **********************************************************************************************************************/
  16. #define arrayAdd(_array, _data) do { \
  17. (_array) = arrayCheckSize((_array), 1, sizeof(_data)); \
  18. uint32_t lenght = arrayGetSize((_array)); \
  19. (_array)[lenght - 1] = (_data); \
  20. } while(0)
  21. void *arrayCheckSize(void *array, uint32_t count, size_t typeSize);
  22. uint32_t arrayGetSize(void *array);
  23. void arrayEmpty(void *array);
  24. void arrayFree(void *array);
  25. #endif /* THREEDENGINE_SOURCE_INCLUDE_ARRAY_H */