particles.h 683 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #ifndef particles_h
  2. #define particles_h
  3. #include "cengine.h"
  4. #include "casset.h"
  5. #include "assets/effect.h"
  6. #include "entities/camera.h"
  7. typedef struct particles {
  8. vec3 position;
  9. quat rotation;
  10. vec3 scale;
  11. asset_hndl effect;
  12. float rate;
  13. int count;
  14. bool* actives;
  15. float* seeds;
  16. float* times;
  17. float* rotations;
  18. vec3* scales;
  19. vec4* colors;
  20. vec3* positions;
  21. vec3* velocities;
  22. GLuint vertex_buff;
  23. float* vertex_data;
  24. } particles;
  25. particles* particles_new();
  26. void particles_delete(particles* p);
  27. void particles_set_effect(particles* p, asset_hndl effect);
  28. void particles_update(particles* p, float timestep, camera* cam);
  29. #endif