BlurrrParticle  1.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
BlurrrParticle.h
Go to the documentation of this file.
1 #ifndef BLR_PARTICLE_H
2 #define BLR_PARTICLE_H
3 
4 
5 
6 
88 #ifdef __cplusplus
89 extern "C"
90 {
91 // C++ does not support this feature.
92 #define BLRPARTICLE_STATIC
93 
94 #else /* pure C */
95 
96 #if (__STDC_VERSION__ >= 199901L)
97 // We can use C11 6.7.6.3/7 (was 6.7.5.3/7 in C99) feature to enforce compiler warnings for array size in parameters.
98 #define BLRPARTICLE_STATIC static
99 #else
100 // Too bad Microsoft Visual Studio cannot handle this feature.
101 #define BLRPARTICLE_STATIC
102 #endif
103 
104 #endif /* __cplusplus */
105 
106 #include <stdint.h>
107 #include <stdbool.h>
108 #include <stddef.h>
109 
110 
111 #ifndef DOXYGEN_SHOULD_IGNORE_THIS
112 
114 /* Note: For Doxygen to produce clean output, you should set the
115  * PREDEFINED option to remove LOGGER_EXPORT, LOGGER_CALLCONVENTION, and
116  * the DOXYGEN_SHOULD_IGNORE_THIS blocks.
117  * PREDEFINED = DOXYGEN_SHOULD_IGNORE_THIS=1 BLRPARTICLE_EXPORT= BLRPARTICLE_STATIC=
118  */
119 
120 
121 
122 /* Windows needs to know explicitly which functions to export in a DLL. */
123 #ifdef BUILD_BLRPARTICLE_AS_DLL
124 # ifdef WIN32
125 # define BLRPARTICLE_EXPORT __declspec(dllexport)
126 # elif defined(__GNUC__) && __GNUC__ >= 4
127 # define BLRPARTICLE_EXPORT __attribute__ ((visibility("default")))
128 # else
129 # define BLRPARTICLE_EXPORT
130 # endif
131 #else
132 # define BLRPARTICLE_EXPORT
133 #endif /* BUILD_BLRPARTICLE_AS_DLL */
134 
136 #endif /* DOXYGEN_SHOULD_IGNORE_THIS */
137 
138 struct BLRParticle;
139 typedef struct BLRParticle BLRParticle;
140 
141 /* Specifies the color interpololation mode */
143 {
145  BLRPARTICLE_COLOR_INTERP_START_MID_END /* Goes through 3 points: start to mid to end */
146 };
148 
149 /* Specifies the color model mode */
151 {
154 };
156 
157 extern BLRPARTICLE_EXPORT struct BLRParticle* BLRParticle_Create(uint32_t max_number_of_particles);
158 extern BLRPARTICLE_EXPORT void BLRParticle_Free(struct BLRParticle* particle_effect);
159 extern BLRPARTICLE_EXPORT void BLRParticle_StartEmitter(struct BLRParticle* particle_effect, uint32_t current_time);
160 extern BLRPARTICLE_EXPORT void BLRParticle_StopEmitter(struct BLRParticle* particle_effect);
161 
162 //extern BLRPARTICLE_EXPORT void BLRParticle_InitializeParticles(struct BLRParticle* particle_effect);
170 extern BLRPARTICLE_EXPORT void BLRParticle_Update(struct BLRParticle* particle_effect, uint32_t current_time);
171 
172 
173 
178 extern BLRPARTICLE_EXPORT void BLRParticle_SetMaxParticles(struct BLRParticle* particle_effect, uint32_t max_num);
179 
180 
181 extern BLRPARTICLE_EXPORT uint32_t BLRParticle_GetMaxParticles(struct BLRParticle* particle_effect);
182 
183 // In particles per milliseconds
184 extern BLRPARTICLE_EXPORT void BLRParticle_SetEmissionRate(struct BLRParticle* particle_effect, float emit_rate);
185 
186 extern BLRPARTICLE_EXPORT float BLRParticle_GetEmissionRate(struct BLRParticle* particle_effect);
187 
193 extern BLRPARTICLE_EXPORT void BLRParticle_ResetProperties(struct BLRParticle* particle_effect);
194 
199 extern BLRPARTICLE_EXPORT void BLRParticle_ResetEmittedParticles(struct BLRParticle* particle_effect);
200 
201 
202 
203 extern BLRPARTICLE_EXPORT void BLRParticle_SetLifeDuration(struct BLRParticle* particle_effect, float life_duration_ms);
204 extern BLRPARTICLE_EXPORT float BLRParticle_GetLifeDuration(struct BLRParticle* particle_effect);
205 extern BLRPARTICLE_EXPORT void BLRParticle_SetLifeDurationVariance(struct BLRParticle* particle_effect, float life_duration_variance_ms);
206 extern BLRPARTICLE_EXPORT float BLRParticle_GetLifeDurationVariance(struct BLRParticle* particle_effect);
207 
208 
209 
210 /**** TexCoord ****/
211 
212 extern BLRPARTICLE_EXPORT void BLRParticle_SetTexCoord(struct BLRParticle* particle_effect, float s0, float t0, float s1, float t1);
213 extern BLRPARTICLE_EXPORT void BLRParticle_SetTexCoordS0(struct BLRParticle* particle_effect, float s0);
214 extern BLRPARTICLE_EXPORT void BLRParticle_SetTexCoordT0(struct BLRParticle* particle_effect, float t0);
215 extern BLRPARTICLE_EXPORT void BLRParticle_SetTexCoordS1(struct BLRParticle* particle_effect, float s1);
216 extern BLRPARTICLE_EXPORT void BLRParticle_SetTexCoordT1(struct BLRParticle* particle_effect, float t1);
217 
218 extern BLRPARTICLE_EXPORT void BLRParticle_GetTexCoordArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
219 
220 extern BLRPARTICLE_EXPORT void BLRParticle_GetTexCoord(struct BLRParticle* particle_effect, float* s0, float* t0, float* s1, float* t1);
221 
222 extern BLRPARTICLE_EXPORT float BLRParticle_GetTexCoordS0(struct BLRParticle* particle_effect);
223 extern BLRPARTICLE_EXPORT float BLRParticle_GetTexCoordS1(struct BLRParticle* particle_effect);
224 extern BLRPARTICLE_EXPORT float BLRParticle_GetTexCoordT0(struct BLRParticle* particle_effect);
225 extern BLRPARTICLE_EXPORT float BLRParticle_GetTexCoordT1(struct BLRParticle* particle_effect);
226 
227 /**** Size ****/
231 extern BLRPARTICLE_EXPORT void BLRParticle_SetSize(struct BLRParticle* particle_effect, float width, float height);
232 
233 extern BLRPARTICLE_EXPORT void BLRParticle_SetWidth(struct BLRParticle* particle_effect, float width);
234 
235 extern BLRPARTICLE_EXPORT void BLRParticle_SetHeight(struct BLRParticle* particle_effect, float height);
236 extern BLRPARTICLE_EXPORT float BLRParticle_GetWidth(struct BLRParticle* particle_effect);
237 extern BLRPARTICLE_EXPORT float BLRParticle_GetHeight(struct BLRParticle* particle_effect);
238 
239 extern BLRPARTICLE_EXPORT void BLRParticle_GetSize(struct BLRParticle* particle_effect, float* width, float* height);
240 
241 
242 extern BLRPARTICLE_EXPORT void BLRParticle_GetSizeArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
243 
244 /**** Start Scale ****/
245 
246 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartScale(struct BLRParticle* particle_effect, float scale);
247 
248 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartScale(struct BLRParticle* particle_effect);
249 
250 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartScaleVariance(struct BLRParticle* particle_effect, float scale);
251 
252 
253 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartScaleVariance(struct BLRParticle* particle_effect);
254 
255 /**** End Scale ****/
256 
257 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndScale(struct BLRParticle* particle_effect, float scale);
258 
259 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndScale(struct BLRParticle* particle_effect);
260 
261 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndScaleVariance(struct BLRParticle* particle_effect, float scale);
262 
263 
264 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndScaleVariance(struct BLRParticle* particle_effect);
265 
266 
267 
268 /**** Position ****/
269 
270 extern BLRPARTICLE_EXPORT void BLRParticle_SetPosition(struct BLRParticle* particle_effect, float x, float y);
271 extern BLRPARTICLE_EXPORT void BLRParticle_SetPositionX(struct BLRParticle* particle_effect, float x);
272 extern BLRPARTICLE_EXPORT void BLRParticle_SetPositionY(struct BLRParticle* particle_effect, float y);
273 
274 
275 
276 extern BLRPARTICLE_EXPORT float BLRParticle_GetPositionX(struct BLRParticle* particle_effect);
277 
278 
279 extern BLRPARTICLE_EXPORT float BLRParticle_GetPositionY(struct BLRParticle* particle_effect);
280 extern BLRPARTICLE_EXPORT void BLRParticle_GetPositionXY(struct BLRParticle* particle_effect, float* x, float* y);
281 
282 extern BLRPARTICLE_EXPORT void BLRParticle_GetPositionArray(struct BLRParticle* particle_effect, float array[BLRPARTICLE_STATIC 2]);
283 
284 
285 extern BLRPARTICLE_EXPORT void BLRParticle_SetPositionVariance(struct BLRParticle* particle_effect, float x, float y);
286 
287 
288 extern BLRPARTICLE_EXPORT void BLRParticle_GetPositionVarianceArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
289 
290 extern BLRPARTICLE_EXPORT void BLRParticle_GetPositionVariance(struct BLRParticle* particle_effect, float* x, float* y);
291 extern BLRPARTICLE_EXPORT void BLRParticle_SetPositionXVariance(struct BLRParticle* particle_effect, float x);
292 extern BLRPARTICLE_EXPORT void BLRParticle_SetPositionYVariance(struct BLRParticle* particle_effect, float y);
293 extern BLRPARTICLE_EXPORT float BLRParticle_GetPositionXVariance(struct BLRParticle* particle_effect);
294 extern BLRPARTICLE_EXPORT float BLRParticle_GetPositionYVariance(struct BLRParticle* particle_effect);
295 
296 
297 /**** Velocity ****/
298 extern BLRPARTICLE_EXPORT void BLRParticle_SetVelocity(struct BLRParticle* particle_effect, float x, float y);
299 extern BLRPARTICLE_EXPORT void BLRParticle_SetVelocityX(struct BLRParticle* particle_effect, float x);
300 extern BLRPARTICLE_EXPORT void BLRParticle_SetVelocityY(struct BLRParticle* particle_effect, float y);
301 
302 extern BLRPARTICLE_EXPORT float BLRParticle_GetVelocityX(struct BLRParticle* particle_effect);
303 
304 extern BLRPARTICLE_EXPORT float BLRParticle_GetVelocityY(struct BLRParticle* particle_effect);
305 
306 extern BLRPARTICLE_EXPORT void BLRParticle_GetVelocity(struct BLRParticle* particle_effect, float* x, float* y);
307 
308 extern BLRPARTICLE_EXPORT void BLRParticle_GetVelocityArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
309 
310 extern BLRPARTICLE_EXPORT void BLRParticle_SetVelocityVariance(struct BLRParticle* particle_effect, float x, float y);
311 extern BLRPARTICLE_EXPORT void BLRParticle_SetVelocityXVariance(struct BLRParticle* particle_effect, float x);
312 extern BLRPARTICLE_EXPORT void BLRParticle_SetVelocityYVariance(struct BLRParticle* particle_effect, float y);
313 void BLRParticle_GetVelocityVarianceArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
314 
315 extern BLRPARTICLE_EXPORT void BLRParticle_GetVelocityVariance(struct BLRParticle* particle_effect, float* x, float* y);
316 extern BLRPARTICLE_EXPORT float BLRParticle_GetVelocityXVariance(struct BLRParticle* particle_effect);
317 extern BLRPARTICLE_EXPORT float BLRParticle_GetVelocityYVariance(struct BLRParticle* particle_effect);
318 
319 /**** Linear Acceleration ****/
320 
321 extern BLRPARTICLE_EXPORT void BLRParticle_SetAcceleration(struct BLRParticle* particle_effect, float x, float y);
322 extern BLRPARTICLE_EXPORT void BLRParticle_SetAccelerationX(struct BLRParticle* particle_effect, float x);
323 extern BLRPARTICLE_EXPORT void BLRParticle_SetAccelerationY(struct BLRParticle* particle_effect, float y);
324 
325 extern BLRPARTICLE_EXPORT float BLRParticle_GetAccelerationX(struct BLRParticle* particle_effect);
326 
327 extern BLRPARTICLE_EXPORT float BLRParticle_GetAccelerationY(struct BLRParticle* particle_effect);
328 
329 extern BLRPARTICLE_EXPORT void BLRParticle_GetAcceleration(struct BLRParticle* particle_effect, float* x, float* y);
330 
331 extern BLRPARTICLE_EXPORT void BLRParticle_GetAccelerationArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
332 
333 extern BLRPARTICLE_EXPORT void BLRParticle_SetAccelerationVariance(struct BLRParticle* particle_effect, float x, float y);
334 extern BLRPARTICLE_EXPORT void BLRParticle_SetAccelerationXVariance(struct BLRParticle* particle_effect, float x);
335 extern BLRPARTICLE_EXPORT void BLRParticle_SetAccelerationYVariance(struct BLRParticle* particle_effect, float y);
336 
337 
338 extern BLRPARTICLE_EXPORT void BLRParticle_GetAccelerationVarianceArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
339 
340 extern BLRPARTICLE_EXPORT void BLRParticle_GetAccelerationVariance(struct BLRParticle* particle_effect, float* x, float* y);
341 extern BLRPARTICLE_EXPORT float BLRParticle_GetAccelerationXVariance(struct BLRParticle* particle_effect);
342 extern BLRPARTICLE_EXPORT float BLRParticle_GetAccelerationYVariance(struct BLRParticle* particle_effect);
343 
344 
345 
346 
347 /**** Spin Angle ****/
348 
349 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinAngle(struct BLRParticle* particle_effect, float angle_in_radians);
350 
351 extern BLRPARTICLE_EXPORT float BLRParticle_GetSpinAngle(struct BLRParticle* particle_effect);
352 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinAngleVariance(struct BLRParticle* particle_effect, float angle_in_radians);
353 
354 extern BLRPARTICLE_EXPORT float BLRParticle_GetSpinAngleVariance(struct BLRParticle* particle_effect);
355 
356 /**** SpinVelocity ****/
357 
358 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinVelocity(struct BLRParticle* particle_effect, float angle_in_radians);
359 extern BLRPARTICLE_EXPORT float BLRParticle_GetSpinVelocity(struct BLRParticle* particle_effect);
360 
361 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinVelocityVariance(struct BLRParticle* particle_effect, float angle_in_radians);
362 
363 extern BLRPARTICLE_EXPORT float BLRParticle_GetSpinVelocityVariance(struct BLRParticle* particle_effect);
364 
365 /**** SpinAcceleration ****/
366 
367 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinAcceleration(struct BLRParticle* particle_effect, float angle_in_radians);
368 extern BLRPARTICLE_EXPORT float BLRParticle_GetSpinAcceleration(struct BLRParticle* particle_effect);
369 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinAccelerationVariance(struct BLRParticle* particle_effect, float angle_in_radians);
370 
371 extern BLRPARTICLE_EXPORT float BLRParticle_GetSpinAccelerationVariance(struct BLRParticle* particle_effect);
372 
373 
374 
375 
376 /**** Theta Radial Angle ****/
377 
378 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialAngle(struct BLRParticle* particle_effect, float angle_in_radians);
379 
380 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialAngle(struct BLRParticle* particle_effect);
381 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialAngleVariance(struct BLRParticle* particle_effect, float angle_in_radians);
382 
383 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialAngleVariance(struct BLRParticle* particle_effect);
384 
385 
386 
387 /**** Radial Angular Velocity ****/
388 
389 extern BLRPARTICLE_EXPORT void BLRParticle_SetAngularVelocity(struct BLRParticle* particle_effect, float angle_in_radians);
390 
391 extern BLRPARTICLE_EXPORT float BLRParticle_GetAngularVelocity(struct BLRParticle* particle_effect);
392 
393 extern BLRPARTICLE_EXPORT void BLRParticle_SetAngularVelocityVariance(struct BLRParticle* particle_effect, float angle_in_radians);
394 
395 
396 extern BLRPARTICLE_EXPORT float BLRParticle_GetAngularVelocityVariance(struct BLRParticle* particle_effect);
397 
398 /**** Radial Angular Acceleration ****/
399 
400 extern BLRPARTICLE_EXPORT void BLRParticle_SetAngularAcceleration(struct BLRParticle* particle_effect, float angle_in_radians);
401 
402 extern BLRPARTICLE_EXPORT float BLRParticle_GetAngularAcceleration(struct BLRParticle* particle_effect);
403 
404 extern BLRPARTICLE_EXPORT void BLRParticle_SetAngularAccelerationVariance(struct BLRParticle* particle_effect, float angle_in_radians);
405 
406 extern BLRPARTICLE_EXPORT float BLRParticle_GetAngularAccelerationVariance(struct BLRParticle* particle_effect);
407 
408 
409 
410 /**** Radial Distance (Position) ****/
411 
412 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialDistance(struct BLRParticle* particle_effect, float angle_in_radians);
413 
414 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialDistance(struct BLRParticle* particle_effect);
415 
416 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialDistanceVariance(struct BLRParticle* particle_effect, float angle_in_radians);
417 
418 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialDistanceVariance(struct BLRParticle* particle_effect);
419 
420 
421 
422 /**** Radial Distance Velocity ****/
423 
424 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialDistanceVelocity(struct BLRParticle* particle_effect, float angle_in_radians);
425 
426 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialDistanceVelocity(struct BLRParticle* particle_effect);
427 
428 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialDistanceVelocityVariance(struct BLRParticle* particle_effect, float angle_in_radians);
429 
430 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialDistanceVelocityVariance(struct BLRParticle* particle_effect);
431 
432 
433 
434 /**** Radial Distance Acceleration ****/
435 
436 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialDistanceAcceleration(struct BLRParticle* particle_effect, float angle_in_radians);
437 
438 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialDistanceAcceleration(struct BLRParticle* particle_effect);
439 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialDistanceAccelerationVariance(struct BLRParticle* particle_effect, float angle_in_radians);
440 
441 extern BLRPARTICLE_EXPORT float BLRParticle_GetRadialDistanceAccelerationVariance(struct BLRParticle* particle_effect);
442 
443 
444 
445 /**** StartColor ****/
446 
447 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColor(struct BLRParticle* particle_effect, float r, float g, float b, float a);
448 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorRed(struct BLRParticle* particle_effect, float r);
449 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorGreen(struct BLRParticle* particle_effect, float g);
450 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorBlue(struct BLRParticle* particle_effect, float b);
451 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorAlpha(struct BLRParticle* particle_effect, float a);
452 
453 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorArray(struct BLRParticle* particle_effect, float in_array[BLRPARTICLE_STATIC 4]);
454 
455 extern BLRPARTICLE_EXPORT void BLRParticle_GetStartColorArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
456 extern BLRPARTICLE_EXPORT void BLRParticle_GetStartColor(struct BLRParticle* particle_effect, float* r, float* g, float* b, float* a);
457 
458 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorRed(struct BLRParticle* particle_effect);
459 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorGreen(struct BLRParticle* particle_effect);
460 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorBlue(struct BLRParticle* particle_effect);
461 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorAlpha(struct BLRParticle* particle_effect);
462 
463 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorVariance(struct BLRParticle* particle_effect, float r, float g, float b, float a);
464 
465 extern BLRPARTICLE_EXPORT void BLRParticle_GetStartColorVarianceArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
466 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorRedVariance(struct BLRParticle* particle_effect, float r);
467 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorGreenVariance(struct BLRParticle* particle_effect, float g);
468 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorBlueVariance(struct BLRParticle* particle_effect, float b);
469 extern BLRPARTICLE_EXPORT void BLRParticle_SetStartColorAlphaVariance(struct BLRParticle* particle_effect, float a);
470 
471 extern BLRPARTICLE_EXPORT void BLRParticle_GetStartColorVariance(struct BLRParticle* particle_effect, float* r, float* g, float* b, float* a);
472 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorRedVariance(struct BLRParticle* particle_effect);
473 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorGreenVariance(struct BLRParticle* particle_effect);
474 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorBlueVariance(struct BLRParticle* particle_effect);
475 extern BLRPARTICLE_EXPORT float BLRParticle_GetStartColorAlphaVariance(struct BLRParticle* particle_effect);
476 
477 
478 /**** MidColor ****/
479 
480 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColor(struct BLRParticle* particle_effect, float r, float g, float b, float a);
481 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorRed(struct BLRParticle* particle_effect, float r);
482 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorGreen(struct BLRParticle* particle_effect, float g);
483 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorBlue(struct BLRParticle* particle_effect, float b);
484 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorAlpha(struct BLRParticle* particle_effect, float a);
485 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorArray(struct BLRParticle* particle_effect, float in_array[BLRPARTICLE_STATIC 4]);
486 
487 
488 extern BLRPARTICLE_EXPORT void BLRParticle_GetMidColorArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
489 
490 extern BLRPARTICLE_EXPORT void BLRParticle_GetMidColor(struct BLRParticle* particle_effect, float* r, float* g, float* b, float* a);
491 
492 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorRed(struct BLRParticle* particle_effect);
493 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorGreen(struct BLRParticle* particle_effect);
494 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorBlue(struct BLRParticle* particle_effect);
495 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorAlpha(struct BLRParticle* particle_effect);
496 
497 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorVariance(struct BLRParticle* particle_effect, float r, float g, float b, float a);
498 extern BLRPARTICLE_EXPORT void BLRParticle_GetMidColorVarianceArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
499 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorRedVariance(struct BLRParticle* particle_effect, float r);
500 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorGreenVariance(struct BLRParticle* particle_effect, float g);
501 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorBlueVariance(struct BLRParticle* particle_effect, float b);
502 extern BLRPARTICLE_EXPORT void BLRParticle_SetMidColorAlphaVariance(struct BLRParticle* particle_effect, float a);
503 
504 extern BLRPARTICLE_EXPORT void BLRParticle_GetMidColorVariance(struct BLRParticle* particle_effect, float* r, float* g, float* b, float* a);
505 
506 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorRedVariance(struct BLRParticle* particle_effect);
507 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorGreenVariance(struct BLRParticle* particle_effect);
508 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorBlueVariance(struct BLRParticle* particle_effect);
509 extern BLRPARTICLE_EXPORT float BLRParticle_GetMidColorAlphaVariance(struct BLRParticle* particle_effect);
510 
511 /**** EndColor ****/
512 
513 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColor(struct BLRParticle* particle_effect, float r, float g, float b, float a);
514 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorRed(struct BLRParticle* particle_effect, float r);
515 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorGreen(struct BLRParticle* particle_effect, float g);
516 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorBlue(struct BLRParticle* particle_effect, float b);
517 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorAlpha(struct BLRParticle* particle_effect, float a);
518 
519 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorArray(struct BLRParticle* particle_effect, float in_array[BLRPARTICLE_STATIC 4]);
520 
521 extern BLRPARTICLE_EXPORT void BLRParticle_GetEndColorArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
522 
523 extern BLRPARTICLE_EXPORT void BLRParticle_GetEndColor(struct BLRParticle* particle_effect, float* r, float* g, float* b, float* a);
524 
525 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorRed(struct BLRParticle* particle_effect);
526 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorGreen(struct BLRParticle* particle_effect);
527 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorBlue(struct BLRParticle* particle_effect);
528 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorAlpha(struct BLRParticle* particle_effect);
529 
530 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorVariance(struct BLRParticle* particle_effect, float r, float g, float b, float a);
531 
532 extern BLRPARTICLE_EXPORT void BLRParticle_GetEndColorVarianceArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 4]);
533 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorRedVariance(struct BLRParticle* particle_effect, float r);
534 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorGreenVariance(struct BLRParticle* particle_effect, float g);
535 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorBlueVariance(struct BLRParticle* particle_effect, float b);
536 extern BLRPARTICLE_EXPORT void BLRParticle_SetEndColorAlphaVariance(struct BLRParticle* particle_effect, float a);
537 
538 extern BLRPARTICLE_EXPORT void BLRParticle_GetEndColorVariance(struct BLRParticle* particle_effect, float* r, float* g, float* b, float* a);
539 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorRedVariance(struct BLRParticle* particle_effect);
540 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorGreenVariance(struct BLRParticle* particle_effect);
541 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorBlueVariance(struct BLRParticle* particle_effect);
542 extern BLRPARTICLE_EXPORT float BLRParticle_GetEndColorAlphaVariance(struct BLRParticle* particle_effect);
543 
544 
545 
546 extern BLRPARTICLE_EXPORT bool BLRParticle_IsYAxisInverted(void);
547 extern BLRPARTICLE_EXPORT float BLRParticle_GetViewHeight(void);
548 
549 extern BLRPARTICLE_EXPORT void BLRParticle_SetEmitterDuration(struct BLRParticle* particle_effect, float duration_ms);
550 
551 extern BLRPARTICLE_EXPORT float BLRParticle_GetEmitterDuration(struct BLRParticle* particle_effect);
552 
553 
554 extern BLRPARTICLE_EXPORT bool BLRParticle_HasEmitterDurationEnded(struct BLRParticle* particle_effect, uint32_t current_time);
555 
556 extern BLRPARTICLE_EXPORT uint32_t BLRParticle_GetNumberOfActiveParticles(struct BLRParticle* particle_effect);
557 
558 
559 extern BLRPARTICLE_EXPORT void BLRParticle_SetSpinEnabled(struct BLRParticle* particle_effect, bool is_spin_enabled);
560 
561 extern BLRPARTICLE_EXPORT bool BLRParticle_IsSpinEnabled(struct BLRParticle* particle_effect);
562 
563 extern BLRPARTICLE_EXPORT void BLRParticle_SetRadialEnabled(struct BLRParticle* particle_effect, bool is_radial_enabled);
564 
565 extern BLRPARTICLE_EXPORT bool BLRParticle_IsRadialEnabled(struct BLRParticle* particle_effect);
566 
567 
568 extern BLRPARTICLE_EXPORT void BLRParticle_SetEmitterEnabled(struct BLRParticle* particle_effect, bool is_emitter_enabled);
569 
570 extern BLRPARTICLE_EXPORT bool BLRParticle_IsEmitterEnabled(struct BLRParticle* particle_effect);
571 
572 
578 extern BLRPARTICLE_EXPORT void BLRParticle_SetYAxisInverted(bool is_y_axis_inverted, float view_height);
579 extern BLRPARTICLE_EXPORT bool BLRParticle_IsYAxisInverted();
580 extern BLRPARTICLE_EXPORT float BLRParticle_GetViewHeight();
581 
582 extern BLRPARTICLE_EXPORT void BLRParticle_SetColorInterpMode(struct BLRParticle* particle_effect, enum BLRParticle_ColorInterp interpolation_mode);
583 
584 extern BLRPARTICLE_EXPORT enum BLRParticle_ColorInterp BLRParticle_GetColorInterpMode(struct BLRParticle* particle_effect);
585 extern BLRPARTICLE_EXPORT void BLRParticle_SetColorModelMode(struct BLRParticle* particle_effect, enum BLRParticle_ColorModel color_model_mode);
586 
587 extern BLRPARTICLE_EXPORT enum BLRParticle_ColorModel BLRParticle_GetColorModelMode(struct BLRParticle* particle_effect);
588 
596 extern BLRPARTICLE_EXPORT void BLRParticle_SetTextureName0(struct BLRParticle* particle_effect, const char* texture_name);
597 extern BLRPARTICLE_EXPORT void BLRParticle_SetTextureName1(struct BLRParticle* particle_effect, const char* texture_name);
605 extern BLRPARTICLE_EXPORT const char* BLRParticle_GetTextureName0(struct BLRParticle* particle_effect);
606 extern BLRPARTICLE_EXPORT const char* BLRParticle_GetTextureName1(struct BLRParticle* particle_effect);
607 
612 extern BLRPARTICLE_EXPORT void BLRParticle_SetBlendModePreset(struct BLRParticle* particle_effect, int blend_mode_preset);
618 extern BLRPARTICLE_EXPORT int BLRParticle_GetBlendModePreset(struct BLRParticle* particle_effect);
619 
627 extern BLRPARTICLE_EXPORT const float* BLRParticle_GetVertexArray(struct BLRParticle* particle_effect, size_t* out_num_elements);
628 
629 
630 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalTranslation(struct BLRParticle* particle_effect, float x, float y);
631 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalTranslationX(struct BLRParticle* particle_effect, float x);
632 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalTranslationY(struct BLRParticle* particle_effect, float y);
633 extern BLRPARTICLE_EXPORT void BLRParticle_GetGlobalTranslation(struct BLRParticle* particle_effect, float* x, float* y);
634 
635 extern BLRPARTICLE_EXPORT void BLRParticle_GetGlobalTranslationArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
636 
637 extern BLRPARTICLE_EXPORT float BLRParticle_GetGlobalTranslationX(struct BLRParticle* particle_effect);
638 extern BLRPARTICLE_EXPORT float BLRParticle_GetGlobalTranslationY(struct BLRParticle* particle_effect);
639 
640 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalRotation(struct BLRParticle* particle_effect, float radians);
641 extern BLRPARTICLE_EXPORT float BLRParticle_GetGlobalRotation(struct BLRParticle* particle_effect);
642 
643 
644 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalScale(struct BLRParticle* particle_effect, float x, float y);
645 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalScaleX(struct BLRParticle* particle_effect, float x);
646 extern BLRPARTICLE_EXPORT void BLRParticle_SetGlobalScaleY(struct BLRParticle* particle_effect, float y);
647 extern BLRPARTICLE_EXPORT void BLRParticle_GetGlobalScale(struct BLRParticle* particle_effect, float* x, float* y);
648 
649 extern BLRPARTICLE_EXPORT void BLRParticle_GetGlobalScaleArray(struct BLRParticle* particle_effect, float out_array[BLRPARTICLE_STATIC 2]);
650 
651 extern BLRPARTICLE_EXPORT float BLRParticle_GetGlobalScaleX(struct BLRParticle* particle_effect);
652 extern BLRPARTICLE_EXPORT float BLRParticle_GetGlobalScaleY(struct BLRParticle* particle_effect);
653 
654 
665 {
666  uint8_t major;
667  uint8_t minor;
668  uint8_t patch;
669 };
671 
672 
673 /* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
674  */
675 #define BLRPARTICLE_MAJOR_VERSION 1
676 #define BLRPARTICLE_MINOR_VERSION 0
677 #define BLRPARTICLE_PATCHLEVEL 0
678 
679 
692 #define BLRPARTICLE_GET_COMPILED_VERSION(X) \
693  { \
694  (X)->major = BLRPARTICLE_MAJOR_VERSION; \
695  (X)->minor = BLRPARTICLE_MINOR_VERSION; \
696  (X)->patch = BLRPARTICLE_PATCHLEVEL; \
697  }
698 
722 extern BLRPARTICLE_EXPORT struct BLRParticle_Version BLRParticle_GetLinkedVersion(void);
723 
724 
730 extern BLRPARTICLE_EXPORT void BLRParticle_SetAllocators(
731  void* (*malloc_fn)(size_t sz),
732  void* (*calloc_fn)(size_t count, size_t size),
733  void (*free_fn)(void* ptr),
734  void* (*realloc_fn)(void* ptr, size_t size),
735  void* (*memmove_fn)(void *dst, const void *src, size_t len)
736 );
737 
738 #ifdef __cplusplus
739 }
740 #endif
741 
742 #endif /* B_PARTICLE_EFFECT_H */
743 
float BLRParticle_GetAccelerationYVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetAccelerationY(struct BLRParticle *particle_effect, float y)
const float * BLRParticle_GetVertexArray(struct BLRParticle *particle_effect, size_t *out_num_elements)
Gets a ready-to-render OpenGL friendly vertex array.
void BLRParticle_SetBlendModePreset(struct BLRParticle *particle_effect, int blend_mode_preset)
Sets the blend mode preset.
void BLRParticle_GetSizeArray(struct BLRParticle *particle_effect, float out_array[2])
void BLRParticle_GetSize(struct BLRParticle *particle_effect, float *width, float *height)
void BLRParticle_GetEndColorVarianceArray(struct BLRParticle *particle_effect, float out_array[4])
void BLRParticle_SetMidColorRed(struct BLRParticle *particle_effect, float r)
float BLRParticle_GetStartColorAlpha(struct BLRParticle *particle_effect)
float BLRParticle_GetStartColorGreenVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetEndColorBlueVariance(struct BLRParticle *particle_effect, float b)
void BLRParticle_SetMaxParticles(struct BLRParticle *particle_effect, uint32_t max_num)
float BLRParticle_GetMidColorBlue(struct BLRParticle *particle_effect)
void BLRParticle_SetHeight(struct BLRParticle *particle_effect, float height)
float BLRParticle_GetSpinAngle(struct BLRParticle *particle_effect)
void BLRParticle_SetMidColorGreenVariance(struct BLRParticle *particle_effect, float g)
float BLRParticle_GetMidColorGreen(struct BLRParticle *particle_effect)
void BLRParticle_SetStartColorGreen(struct BLRParticle *particle_effect, float g)
bool BLRParticle_IsYAxisInverted(void)
float BLRParticle_GetStartScale(struct BLRParticle *particle_effect)
float BLRParticle_GetAccelerationXVariance(struct BLRParticle *particle_effect)
void BLRParticle_GetMidColorVariance(struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
Definition: BlurrrParticle.h:153
void BLRParticle_SetTexCoordT0(struct BLRParticle *particle_effect, float t0)
void BLRParticle_GetAccelerationVarianceArray(struct BLRParticle *particle_effect, float out_array[2])
BLRParticle_ColorModel
Definition: BlurrrParticle.h:150
uint32_t BLRParticle_GetNumberOfActiveParticles(struct BLRParticle *particle_effect)
void BLRParticle_SetSize(struct BLRParticle *particle_effect, float width, float height)
Units are in your render&#39;s pixels or points system.
Definition: BlurrrParticle.h:152
float BLRParticle_GetRadialDistanceVariance(struct BLRParticle *particle_effect)
float BLRParticle_GetGlobalScaleY(struct BLRParticle *particle_effect)
void BLRParticle_SetSpinVelocity(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_SetStartColorBlue(struct BLRParticle *particle_effect, float b)
void BLRParticle_SetRadialEnabled(struct BLRParticle *particle_effect, bool is_radial_enabled)
void BLRParticle_SetGlobalTranslation(struct BLRParticle *particle_effect, float x, float y)
bool BLRParticle_HasEmitterDurationEnded(struct BLRParticle *particle_effect, uint32_t current_time)
void BLRParticle_SetStartColorArray(struct BLRParticle *particle_effect, float in_array[4])
void BLRParticle_GetStartColorVarianceArray(struct BLRParticle *particle_effect, float out_array[4])
void BLRParticle_SetPositionX(struct BLRParticle *particle_effect, float x)
void BLRParticle_SetTexCoordT1(struct BLRParticle *particle_effect, float t1)
float BLRParticle_GetWidth(struct BLRParticle *particle_effect)
void BLRParticle_SetAngularAccelerationVariance(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_GetVelocity(struct BLRParticle *particle_effect, float *x, float *y)
void BLRParticle_SetRadialDistanceAccelerationVariance(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetStartColorBlueVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetMidColorAlphaVariance(struct BLRParticle *particle_effect, float a)
void BLRParticle_SetColorModelMode(struct BLRParticle *particle_effect, enum BLRParticle_ColorModel color_model_mode)
void BLRParticle_SetRadialDistanceVelocityVariance(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_GetVelocityArray(struct BLRParticle *particle_effect, float out_array[2])
enum BLRParticle_ColorModel BLRParticle_GetColorModelMode(struct BLRParticle *particle_effect)
void BLRParticle_GetPositionVariance(struct BLRParticle *particle_effect, float *x, float *y)
float BLRParticle_GetAngularAccelerationVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetAngularVelocityVariance(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_GetStartColor(struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
void BLRParticle_SetStartColor(struct BLRParticle *particle_effect, float r, float g, float b, float a)
enum BLRParticle_ColorInterp BLRParticle_GetColorInterpMode(struct BLRParticle *particle_effect)
void BLRParticle_SetVelocityXVariance(struct BLRParticle *particle_effect, float x)
void BLRParticle_SetMidColorRedVariance(struct BLRParticle *particle_effect, float r)
void BLRParticle_ResetEmittedParticles(struct BLRParticle *particle_effect)
Resets/clears all the emitted particles.
void BLRParticle_GetPositionXY(struct BLRParticle *particle_effect, float *x, float *y)
float BLRParticle_GetHeight(struct BLRParticle *particle_effect)
void BLRParticle_SetStartColorRedVariance(struct BLRParticle *particle_effect, float r)
float BLRParticle_GetMidColorAlphaVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetRadialDistance(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_SetVelocity(struct BLRParticle *particle_effect, float x, float y)
float BLRParticle_GetPositionXVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetStartColorVariance(struct BLRParticle *particle_effect, float r, float g, float b, float a)
void BLRParticle_SetMidColorGreen(struct BLRParticle *particle_effect, float g)
bool BLRParticle_IsSpinEnabled(struct BLRParticle *particle_effect)
float BLRParticle_GetGlobalTranslationY(struct BLRParticle *particle_effect)
void BLRParticle_SetGlobalScale(struct BLRParticle *particle_effect, float x, float y)
float BLRParticle_GetTexCoordS1(struct BLRParticle *particle_effect)
void BLRParticle_SetAccelerationX(struct BLRParticle *particle_effect, float x)
void BLRParticle_SetSpinAngleVariance(struct BLRParticle *particle_effect, float angle_in_radians)
struct BLRParticle_Version BLRParticle_GetLinkedVersion(void)
Gets the library version of the dynamically linked library you are using.
void BLRParticle_SetEndColorAlphaVariance(struct BLRParticle *particle_effect, float a)
void BLRParticle_GetVelocityVarianceArray(struct BLRParticle *particle_effect, float out_array[2])
void BLRParticle_GetEndColorVariance(struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
void BLRParticle_SetTextureName0(struct BLRParticle *particle_effect, const char *texture_name)
Sets the name of the texture you want to associate with this particle.
Struct that contains the version information of this library.
Definition: BlurrrParticle.h:664
uint32_t BLRParticle_GetMaxParticles(struct BLRParticle *particle_effect)
void BLRParticle_SetMidColorAlpha(struct BLRParticle *particle_effect, float a)
float BLRParticle_GetRadialDistanceAcceleration(struct BLRParticle *particle_effect)
float BLRParticle_GetVelocityY(struct BLRParticle *particle_effect)
void BLRParticle_SetStartScaleVariance(struct BLRParticle *particle_effect, float scale)
void BLRParticle_SetLifeDuration(struct BLRParticle *particle_effect, float life_duration_ms)
float BLRParticle_GetEndColorRed(struct BLRParticle *particle_effect)
float BLRParticle_GetSpinAcceleration(struct BLRParticle *particle_effect)
float BLRParticle_GetLifeDurationVariance(struct BLRParticle *particle_effect)
BLRParticle_ColorInterp
Definition: BlurrrParticle.h:142
float BLRParticle_GetEmitterDuration(struct BLRParticle *particle_effect)
void BLRParticle_GetStartColorArray(struct BLRParticle *particle_effect, float out_array[4])
float BLRParticle_GetRadialDistance(struct BLRParticle *particle_effect)
void BLRParticle_SetStartColorRed(struct BLRParticle *particle_effect, float r)
void BLRParticle_GetVelocityVariance(struct BLRParticle *particle_effect, float *x, float *y)
void BLRParticle_SetGlobalTranslationY(struct BLRParticle *particle_effect, float y)
void BLRParticle_SetStartColorBlueVariance(struct BLRParticle *particle_effect, float b)
float BLRParticle_GetTexCoordT1(struct BLRParticle *particle_effect)
uint8_t minor
Definition: BlurrrParticle.h:667
float BLRParticle_GetAngularAcceleration(struct BLRParticle *particle_effect)
void BLRParticle_SetVelocityX(struct BLRParticle *particle_effect, float x)
void BLRParticle_SetMidColorVariance(struct BLRParticle *particle_effect, float r, float g, float b, float a)
void BLRParticle_SetEndScale(struct BLRParticle *particle_effect, float scale)
void BLRParticle_SetTextureName1(struct BLRParticle *particle_effect, const char *texture_name)
void BLRParticle_StopEmitter(struct BLRParticle *particle_effect)
struct BLRParticle * BLRParticle_Create(uint32_t max_number_of_particles)
float BLRParticle_GetStartColorRedVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetTexCoordS0(struct BLRParticle *particle_effect, float s0)
float BLRParticle_GetEmissionRate(struct BLRParticle *particle_effect)
void BLRParticle_SetRadialDistanceAcceleration(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetGlobalRotation(struct BLRParticle *particle_effect)
float BLRParticle_GetAccelerationY(struct BLRParticle *particle_effect)
bool BLRParticle_IsRadialEnabled(struct BLRParticle *particle_effect)
void BLRParticle_GetMidColorArray(struct BLRParticle *particle_effect, float out_array[4])
void BLRParticle_SetPositionY(struct BLRParticle *particle_effect, float y)
void BLRParticle_SetSpinAccelerationVariance(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetEndScaleVariance(struct BLRParticle *particle_effect)
float BLRParticle_GetVelocityYVariance(struct BLRParticle *particle_effect)
Definition: BlurrrParticle.h:144
float BLRParticle_GetEndColorGreen(struct BLRParticle *particle_effect)
float BLRParticle_GetEndColorGreenVariance(struct BLRParticle *particle_effect)
void BLRParticle_Update(struct BLRParticle *particle_effect, uint32_t current_time)
Updates the particle system.
void BLRParticle_SetAccelerationYVariance(struct BLRParticle *particle_effect, float y)
void BLRParticle_SetEndScaleVariance(struct BLRParticle *particle_effect, float scale)
float BLRParticle_GetViewHeight(void)
float BLRParticle_GetStartColorAlphaVariance(struct BLRParticle *particle_effect)
void BLRParticle_GetPositionVarianceArray(struct BLRParticle *particle_effect, float out_array[2])
float BLRParticle_GetEndColorAlphaVariance(struct BLRParticle *particle_effect)
void BLRParticle_GetStartColorVariance(struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
void BLRParticle_SetYAxisInverted(bool is_y_axis_inverted, float view_height)
This will flip the Y-axis (non-Cartesian coordinates).
void BLRParticle_GetAccelerationVariance(struct BLRParticle *particle_effect, float *x, float *y)
struct BLRParticle BLRParticle
Definition: BlurrrParticle.h:139
void BLRParticle_SetSpinAngle(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetAngularVelocityVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetEmitterDuration(struct BLRParticle *particle_effect, float duration_ms)
float BLRParticle_GetVelocityX(struct BLRParticle *particle_effect)
float BLRParticle_GetStartScaleVariance(struct BLRParticle *particle_effect)
float BLRParticle_GetGlobalScaleX(struct BLRParticle *particle_effect)
Definition: BlurrrParticle.h:145
void BLRParticle_SetEndColorBlue(struct BLRParticle *particle_effect, float b)
float BLRParticle_GetGlobalTranslationX(struct BLRParticle *particle_effect)
float BLRParticle_GetEndScale(struct BLRParticle *particle_effect)
void BLRParticle_SetTexCoordS1(struct BLRParticle *particle_effect, float s1)
void BLRParticle_GetTexCoord(struct BLRParticle *particle_effect, float *s0, float *t0, float *s1, float *t1)
float BLRParticle_GetEndColorAlpha(struct BLRParticle *particle_effect)
void BLRParticle_ResetProperties(struct BLRParticle *particle_effect)
Resets all the properties to the defaults.
void BLRParticle_GetAccelerationArray(struct BLRParticle *particle_effect, float out_array[2])
float BLRParticle_GetLifeDuration(struct BLRParticle *particle_effect)
void BLRParticle_SetEndColorArray(struct BLRParticle *particle_effect, float in_array[4])
void BLRParticle_SetSpinAcceleration(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetStartColorBlue(struct BLRParticle *particle_effect)
float BLRParticle_GetRadialDistanceAccelerationVariance(struct BLRParticle *particle_effect)
bool BLRParticle_IsEmitterEnabled(struct BLRParticle *particle_effect)
float BLRParticle_GetPositionX(struct BLRParticle *particle_effect)
void BLRParticle_GetGlobalTranslation(struct BLRParticle *particle_effect, float *x, float *y)
const char * BLRParticle_GetTextureName1(struct BLRParticle *particle_effect)
float BLRParticle_GetEndColorRedVariance(struct BLRParticle *particle_effect)
void BLRParticle_Free(struct BLRParticle *particle_effect)
void BLRParticle_SetLifeDurationVariance(struct BLRParticle *particle_effect, float life_duration_variance_ms)
void BLRParticle_SetEndColorRed(struct BLRParticle *particle_effect, float r)
void BLRParticle_SetStartScale(struct BLRParticle *particle_effect, float scale)
void BLRParticle_SetWidth(struct BLRParticle *particle_effect, float width)
void BLRParticle_SetGlobalRotation(struct BLRParticle *particle_effect, float radians)
int BLRParticle_GetBlendModePreset(struct BLRParticle *particle_effect)
Gets the blend mode preset.
void BLRParticle_SetPositionXVariance(struct BLRParticle *particle_effect, float x)
uint8_t major
Definition: BlurrrParticle.h:666
void BLRParticle_SetMidColorArray(struct BLRParticle *particle_effect, float in_array[4])
void BLRParticle_SetStartColorGreenVariance(struct BLRParticle *particle_effect, float g)
float BLRParticle_GetPositionY(struct BLRParticle *particle_effect)
const char * BLRParticle_GetTextureName0(struct BLRParticle *particle_effect)
Gets the name of the texture.
void BLRParticle_SetEndColorRedVariance(struct BLRParticle *particle_effect, float r)
float BLRParticle_GetRadialDistanceVelocity(struct BLRParticle *particle_effect)
void BLRParticle_SetMidColorBlueVariance(struct BLRParticle *particle_effect, float b)
void BLRParticle_SetPositionVariance(struct BLRParticle *particle_effect, float x, float y)
void BLRParticle_SetRadialAngleVariance(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_SetAngularVelocity(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetSpinVelocity(struct BLRParticle *particle_effect)
float BLRParticle_GetMidColorAlpha(struct BLRParticle *particle_effect)
void BLRParticle_SetVelocityYVariance(struct BLRParticle *particle_effect, float y)
void BLRParticle_GetAcceleration(struct BLRParticle *particle_effect, float *x, float *y)
float BLRParticle_GetMidColorBlueVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetSpinVelocityVariance(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetRadialDistanceVelocityVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetMidColor(struct BLRParticle *particle_effect, float r, float g, float b, float a)
float BLRParticle_GetStartColorGreen(struct BLRParticle *particle_effect)
void BLRParticle_SetEndColorGreen(struct BLRParticle *particle_effect, float g)
void BLRParticle_GetTexCoordArray(struct BLRParticle *particle_effect, float out_array[4])
float BLRParticle_GetEndColorBlueVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetRadialDistanceVariance(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_GetGlobalScaleArray(struct BLRParticle *particle_effect, float out_array[2])
void BLRParticle_SetGlobalScaleY(struct BLRParticle *particle_effect, float y)
void BLRParticle_SetTexCoord(struct BLRParticle *particle_effect, float s0, float t0, float s1, float t1)
void BLRParticle_SetAccelerationVariance(struct BLRParticle *particle_effect, float x, float y)
void BLRParticle_GetGlobalScale(struct BLRParticle *particle_effect, float *x, float *y)
void BLRParticle_SetAccelerationXVariance(struct BLRParticle *particle_effect, float x)
void BLRParticle_SetEmissionRate(struct BLRParticle *particle_effect, float emit_rate)
void BLRParticle_SetVelocityY(struct BLRParticle *particle_effect, float y)
#define BLRPARTICLE_STATIC
Definition: BlurrrParticle.h:101
float BLRParticle_GetAccelerationX(struct BLRParticle *particle_effect)
float BLRParticle_GetTexCoordS0(struct BLRParticle *particle_effect)
uint8_t patch
Definition: BlurrrParticle.h:668
void BLRParticle_SetColorInterpMode(struct BLRParticle *particle_effect, enum BLRParticle_ColorInterp interpolation_mode)
float BLRParticle_GetRadialAngle(struct BLRParticle *particle_effect)
void BLRParticle_SetEndColorVariance(struct BLRParticle *particle_effect, float r, float g, float b, float a)
void BLRParticle_SetAcceleration(struct BLRParticle *particle_effect, float x, float y)
void BLRParticle_SetStartColorAlpha(struct BLRParticle *particle_effect, float a)
void BLRParticle_SetPosition(struct BLRParticle *particle_effect, float x, float y)
void BLRParticle_SetRadialAngle(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_GetGlobalTranslationArray(struct BLRParticle *particle_effect, float out_array[2])
void BLRParticle_SetAngularAcceleration(struct BLRParticle *particle_effect, float angle_in_radians)
void BLRParticle_SetStartColorAlphaVariance(struct BLRParticle *particle_effect, float a)
float BLRParticle_GetMidColorRedVariance(struct BLRParticle *particle_effect)
float BLRParticle_GetVelocityXVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetMidColorBlue(struct BLRParticle *particle_effect, float b)
void BLRParticle_GetEndColor(struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
float BLRParticle_GetRadialAngleVariance(struct BLRParticle *particle_effect)
void BLRParticle_GetEndColorArray(struct BLRParticle *particle_effect, float out_array[4])
float BLRParticle_GetStartColorRed(struct BLRParticle *particle_effect)
float BLRParticle_GetSpinAccelerationVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetVelocityVariance(struct BLRParticle *particle_effect, float x, float y)
void BLRParticle_GetPositionArray(struct BLRParticle *particle_effect, float array[2])
float BLRParticle_GetMidColorRed(struct BLRParticle *particle_effect)
void BLRParticle_GetMidColor(struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
void BLRParticle_SetAllocators(void *(*malloc_fn)(size_t sz), void *(*calloc_fn)(size_t count, size_t size), void(*free_fn)(void *ptr), void *(*realloc_fn)(void *ptr, size_t size), void *(*memmove_fn)(void *dst, const void *src, size_t len))
Override memory allocators with your own.
void BLRParticle_SetGlobalTranslationX(struct BLRParticle *particle_effect, float x)
float BLRParticle_GetTexCoordT0(struct BLRParticle *particle_effect)
void BLRParticle_SetGlobalScaleX(struct BLRParticle *particle_effect, float x)
float BLRParticle_GetSpinVelocityVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetSpinEnabled(struct BLRParticle *particle_effect, bool is_spin_enabled)
void BLRParticle_SetEndColor(struct BLRParticle *particle_effect, float r, float g, float b, float a)
void BLRParticle_SetPositionYVariance(struct BLRParticle *particle_effect, float y)
void BLRParticle_GetMidColorVarianceArray(struct BLRParticle *particle_effect, float out_array[4])
float BLRParticle_GetAngularVelocity(struct BLRParticle *particle_effect)
float BLRParticle_GetEndColorBlue(struct BLRParticle *particle_effect)
void BLRParticle_SetRadialDistanceVelocity(struct BLRParticle *particle_effect, float angle_in_radians)
float BLRParticle_GetMidColorGreenVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetEmitterEnabled(struct BLRParticle *particle_effect, bool is_emitter_enabled)
void BLRParticle_SetEndColorAlpha(struct BLRParticle *particle_effect, float a)
float BLRParticle_GetSpinAngleVariance(struct BLRParticle *particle_effect)
void BLRParticle_SetEndColorGreenVariance(struct BLRParticle *particle_effect, float g)
float BLRParticle_GetPositionYVariance(struct BLRParticle *particle_effect)
void BLRParticle_StartEmitter(struct BLRParticle *particle_effect, uint32_t current_time)