effect.h 840 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef effect_h
  2. #define effect_h
  3. #include "cengine.h"
  4. #include "casset.h"
  5. typedef struct {
  6. float time;
  7. float rotation;
  8. float rotation_r;
  9. vec3 scale;
  10. vec3 scale_r;
  11. vec4 color;
  12. vec4 color_r;
  13. vec3 force;
  14. vec3 force_r;
  15. } effect_key;
  16. effect_key effect_key_lerp(effect_key x, effect_key y, float amount);
  17. typedef struct {
  18. asset_hndl texture;
  19. asset_hndl texture_nm;
  20. GLuint blend_src;
  21. GLuint blend_dst;
  22. int count;
  23. float depth;
  24. float thickness;
  25. float bumpiness;
  26. float scattering;
  27. float lifetime;
  28. float output;
  29. float output_r;
  30. bool alpha_decay;
  31. bool color_decay;
  32. int keys_num;
  33. effect_key* keys;
  34. } effect;
  35. effect* effect_new();
  36. effect* effect_load_file(char* filename);
  37. void effect_delete(effect* e);
  38. effect_key effect_get_key(effect* e, float ptime);
  39. #endif