libpsys

annotate src/pattr.h @ 6:d774738f50f6

almost finished with the reorg (2)
author John Tsiombikas <nuclear@mutantstargoat.com>
date Tue, 27 Sep 2011 07:42:54 +0300
parents
children 9c24273f211b
rev   line source
nuclear@6 1 #ifndef PATTR_H_
nuclear@6 2 #define PATTR_H_
nuclear@6 3
nuclear@6 4 #include "pstrack.h"
nuclear@6 5 #include "rndval.h"
nuclear@6 6
nuclear@6 7 struct psys_attributes {
nuclear@6 8 unsigned int tex; /* OpenGL texture to use for the billboard */
nuclear@6 9
nuclear@6 10 struct psys_track3 spawn_range; /* radius of emmiter */
nuclear@6 11 struct psys_track rate; /* spawn rate particles per sec */
nuclear@6 12 struct psys_anm_rnd life; /* particle life in seconds */
nuclear@6 13 struct psys_anm_rnd size; /* base particle size */
nuclear@6 14 struct psys_anm_rnd3 dir; /* particle shoot direction */
nuclear@6 15
nuclear@6 16 struct psys_track3 grav; /* external force (usually gravity) */
nuclear@6 17
nuclear@6 18 float drag; /* I don't think this needs to animate */
nuclear@6 19
nuclear@6 20 /* limits */
nuclear@6 21 int max_particles;
nuclear@6 22 };
nuclear@6 23
nuclear@6 24 void psys_texture_loader(unsigned int (*load)(const char*, void*), void (*unload)(unsigned int, void*), void *cls);
nuclear@6 25
nuclear@6 26 int psys_init_attr(struct psys_attributes *attr);
nuclear@6 27 void psys_destroy_attr(struct psys_attributes *attr);
nuclear@6 28
nuclear@6 29 void psys_eval_attr(struct psys_attributes *attr, anm_time_t tm);
nuclear@6 30
nuclear@6 31 int psys_load_attr(struct psys_attributes *attr, const char *fname);
nuclear@6 32 int psys_load_attr_stream(struct psys_attributes *attr, FILE *fp);
nuclear@6 33
nuclear@6 34 int psys_save_attr(struct psys_attributes *attr, const char *fname);
nuclear@6 35 int psys_save_attr_stream(struct psys_attributes *attr, FILE *fp);
nuclear@6 36
nuclear@6 37 #endif