BlurrrParticle  1.0.0
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
Data Structures | Macros | Typedefs | Enumerations | Functions
BlurrrParticle.h File Reference
#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>

Go to the source code of this file.

Data Structures

struct  BLRParticle_Version
 Struct that contains the version information of this library. More...
 

Macros

#define BLRPARTICLE_STATIC
 
#define BLRPARTICLE_MAJOR_VERSION   1
 
#define BLRPARTICLE_MINOR_VERSION   0
 
#define BLRPARTICLE_PATCHLEVEL   0
 
#define BLRPARTICLE_GET_COMPILED_VERSION(X)
 This macro fills in a version structure with the version of the library you compiled against. More...
 

Typedefs

typedef struct BLRParticle BLRParticle
 
typedef enum
BLRParticle_ColorInterp 
BLRParticle_ColorInterp
 
typedef enum BLRParticle_ColorModel BLRParticle_ColorModel
 

Enumerations

enum  BLRParticle_ColorInterp { BLRPARTICLE_COLOR_INTERP_START_END = 0, BLRPARTICLE_COLOR_INTERP_START_MID_END }
 
enum  BLRParticle_ColorModel { BLRPARTICLE_COLOR_MODEL_RGB = 0, BLRPARTICLE_COLOR_MODEL_HSV }
 

Functions

struct BLRParticleBLRParticle_Create (uint32_t max_number_of_particles)
 
void BLRParticle_Free (struct BLRParticle *particle_effect)
 
void BLRParticle_StartEmitter (struct BLRParticle *particle_effect, uint32_t current_time)
 
void BLRParticle_StopEmitter (struct BLRParticle *particle_effect)
 
void BLRParticle_Update (struct BLRParticle *particle_effect, uint32_t current_time)
 Updates the particle system. More...
 
void BLRParticle_SetMaxParticles (struct BLRParticle *particle_effect, uint32_t max_num)
 
uint32_t BLRParticle_GetMaxParticles (struct BLRParticle *particle_effect)
 
void BLRParticle_SetEmissionRate (struct BLRParticle *particle_effect, float emit_rate)
 
float BLRParticle_GetEmissionRate (struct BLRParticle *particle_effect)
 
void BLRParticle_ResetProperties (struct BLRParticle *particle_effect)
 Resets all the properties to the defaults. More...
 
void BLRParticle_ResetEmittedParticles (struct BLRParticle *particle_effect)
 Resets/clears all the emitted particles. More...
 
void BLRParticle_SetLifeDuration (struct BLRParticle *particle_effect, float life_duration_ms)
 
float BLRParticle_GetLifeDuration (struct BLRParticle *particle_effect)
 
void BLRParticle_SetLifeDurationVariance (struct BLRParticle *particle_effect, float life_duration_variance_ms)
 
float BLRParticle_GetLifeDurationVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetTexCoord (struct BLRParticle *particle_effect, float s0, float t0, float s1, float t1)
 
void BLRParticle_SetTexCoordS0 (struct BLRParticle *particle_effect, float s0)
 
void BLRParticle_SetTexCoordT0 (struct BLRParticle *particle_effect, float t0)
 
void BLRParticle_SetTexCoordS1 (struct BLRParticle *particle_effect, float s1)
 
void BLRParticle_SetTexCoordT1 (struct BLRParticle *particle_effect, float t1)
 
void BLRParticle_GetTexCoordArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_GetTexCoord (struct BLRParticle *particle_effect, float *s0, float *t0, float *s1, float *t1)
 
float BLRParticle_GetTexCoordS0 (struct BLRParticle *particle_effect)
 
float BLRParticle_GetTexCoordS1 (struct BLRParticle *particle_effect)
 
float BLRParticle_GetTexCoordT0 (struct BLRParticle *particle_effect)
 
float BLRParticle_GetTexCoordT1 (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSize (struct BLRParticle *particle_effect, float width, float height)
 Units are in your render's pixels or points system. More...
 
void BLRParticle_SetWidth (struct BLRParticle *particle_effect, float width)
 
void BLRParticle_SetHeight (struct BLRParticle *particle_effect, float height)
 
float BLRParticle_GetWidth (struct BLRParticle *particle_effect)
 
float BLRParticle_GetHeight (struct BLRParticle *particle_effect)
 
void BLRParticle_GetSize (struct BLRParticle *particle_effect, float *width, float *height)
 
void BLRParticle_GetSizeArray (struct BLRParticle *particle_effect, float out_array[2])
 
void BLRParticle_SetStartScale (struct BLRParticle *particle_effect, float scale)
 
float BLRParticle_GetStartScale (struct BLRParticle *particle_effect)
 
void BLRParticle_SetStartScaleVariance (struct BLRParticle *particle_effect, float scale)
 
float BLRParticle_GetStartScaleVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetEndScale (struct BLRParticle *particle_effect, float scale)
 
float BLRParticle_GetEndScale (struct BLRParticle *particle_effect)
 
void BLRParticle_SetEndScaleVariance (struct BLRParticle *particle_effect, float scale)
 
float BLRParticle_GetEndScaleVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetPosition (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetPositionX (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetPositionY (struct BLRParticle *particle_effect, float y)
 
float BLRParticle_GetPositionX (struct BLRParticle *particle_effect)
 
float BLRParticle_GetPositionY (struct BLRParticle *particle_effect)
 
void BLRParticle_GetPositionXY (struct BLRParticle *particle_effect, float *x, float *y)
 
void BLRParticle_GetPositionArray (struct BLRParticle *particle_effect, float array[2])
 
void BLRParticle_SetPositionVariance (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_GetPositionVarianceArray (struct BLRParticle *particle_effect, float out_array[2])
 
void BLRParticle_GetPositionVariance (struct BLRParticle *particle_effect, float *x, float *y)
 
void BLRParticle_SetPositionXVariance (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetPositionYVariance (struct BLRParticle *particle_effect, float y)
 
float BLRParticle_GetPositionXVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetPositionYVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetVelocity (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetVelocityX (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetVelocityY (struct BLRParticle *particle_effect, float y)
 
float BLRParticle_GetVelocityX (struct BLRParticle *particle_effect)
 
float BLRParticle_GetVelocityY (struct BLRParticle *particle_effect)
 
void BLRParticle_GetVelocity (struct BLRParticle *particle_effect, float *x, float *y)
 
void BLRParticle_GetVelocityArray (struct BLRParticle *particle_effect, float out_array[2])
 
void BLRParticle_SetVelocityVariance (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetVelocityXVariance (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetVelocityYVariance (struct BLRParticle *particle_effect, float y)
 
void BLRParticle_GetVelocityVarianceArray (struct BLRParticle *particle_effect, float out_array[2])
 
void BLRParticle_GetVelocityVariance (struct BLRParticle *particle_effect, float *x, float *y)
 
float BLRParticle_GetVelocityXVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetVelocityYVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetAcceleration (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetAccelerationX (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetAccelerationY (struct BLRParticle *particle_effect, float y)
 
float BLRParticle_GetAccelerationX (struct BLRParticle *particle_effect)
 
float BLRParticle_GetAccelerationY (struct BLRParticle *particle_effect)
 
void BLRParticle_GetAcceleration (struct BLRParticle *particle_effect, float *x, float *y)
 
void BLRParticle_GetAccelerationArray (struct BLRParticle *particle_effect, float out_array[2])
 
void BLRParticle_SetAccelerationVariance (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetAccelerationXVariance (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetAccelerationYVariance (struct BLRParticle *particle_effect, float y)
 
void BLRParticle_GetAccelerationVarianceArray (struct BLRParticle *particle_effect, float out_array[2])
 
void BLRParticle_GetAccelerationVariance (struct BLRParticle *particle_effect, float *x, float *y)
 
float BLRParticle_GetAccelerationXVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetAccelerationYVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinAngle (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetSpinAngle (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinAngleVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetSpinAngleVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinVelocity (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetSpinVelocity (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinVelocityVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetSpinVelocityVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinAcceleration (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetSpinAcceleration (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinAccelerationVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetSpinAccelerationVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialAngle (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialAngle (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialAngleVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialAngleVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetAngularVelocity (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetAngularVelocity (struct BLRParticle *particle_effect)
 
void BLRParticle_SetAngularVelocityVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetAngularVelocityVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetAngularAcceleration (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetAngularAcceleration (struct BLRParticle *particle_effect)
 
void BLRParticle_SetAngularAccelerationVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetAngularAccelerationVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialDistance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialDistance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialDistanceVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialDistanceVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialDistanceVelocity (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialDistanceVelocity (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialDistanceVelocityVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialDistanceVelocityVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialDistanceAcceleration (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialDistanceAcceleration (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialDistanceAccelerationVariance (struct BLRParticle *particle_effect, float angle_in_radians)
 
float BLRParticle_GetRadialDistanceAccelerationVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetStartColor (struct BLRParticle *particle_effect, float r, float g, float b, float a)
 
void BLRParticle_SetStartColorRed (struct BLRParticle *particle_effect, float r)
 
void BLRParticle_SetStartColorGreen (struct BLRParticle *particle_effect, float g)
 
void BLRParticle_SetStartColorBlue (struct BLRParticle *particle_effect, float b)
 
void BLRParticle_SetStartColorAlpha (struct BLRParticle *particle_effect, float a)
 
void BLRParticle_SetStartColorArray (struct BLRParticle *particle_effect, float in_array[4])
 
void BLRParticle_GetStartColorArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_GetStartColor (struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
 
float BLRParticle_GetStartColorRed (struct BLRParticle *particle_effect)
 
float BLRParticle_GetStartColorGreen (struct BLRParticle *particle_effect)
 
float BLRParticle_GetStartColorBlue (struct BLRParticle *particle_effect)
 
float BLRParticle_GetStartColorAlpha (struct BLRParticle *particle_effect)
 
void BLRParticle_SetStartColorVariance (struct BLRParticle *particle_effect, float r, float g, float b, float a)
 
void BLRParticle_GetStartColorVarianceArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_SetStartColorRedVariance (struct BLRParticle *particle_effect, float r)
 
void BLRParticle_SetStartColorGreenVariance (struct BLRParticle *particle_effect, float g)
 
void BLRParticle_SetStartColorBlueVariance (struct BLRParticle *particle_effect, float b)
 
void BLRParticle_SetStartColorAlphaVariance (struct BLRParticle *particle_effect, float a)
 
void BLRParticle_GetStartColorVariance (struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
 
float BLRParticle_GetStartColorRedVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetStartColorGreenVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetStartColorBlueVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetStartColorAlphaVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetMidColor (struct BLRParticle *particle_effect, float r, float g, float b, float a)
 
void BLRParticle_SetMidColorRed (struct BLRParticle *particle_effect, float r)
 
void BLRParticle_SetMidColorGreen (struct BLRParticle *particle_effect, float g)
 
void BLRParticle_SetMidColorBlue (struct BLRParticle *particle_effect, float b)
 
void BLRParticle_SetMidColorAlpha (struct BLRParticle *particle_effect, float a)
 
void BLRParticle_SetMidColorArray (struct BLRParticle *particle_effect, float in_array[4])
 
void BLRParticle_GetMidColorArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_GetMidColor (struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
 
float BLRParticle_GetMidColorRed (struct BLRParticle *particle_effect)
 
float BLRParticle_GetMidColorGreen (struct BLRParticle *particle_effect)
 
float BLRParticle_GetMidColorBlue (struct BLRParticle *particle_effect)
 
float BLRParticle_GetMidColorAlpha (struct BLRParticle *particle_effect)
 
void BLRParticle_SetMidColorVariance (struct BLRParticle *particle_effect, float r, float g, float b, float a)
 
void BLRParticle_GetMidColorVarianceArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_SetMidColorRedVariance (struct BLRParticle *particle_effect, float r)
 
void BLRParticle_SetMidColorGreenVariance (struct BLRParticle *particle_effect, float g)
 
void BLRParticle_SetMidColorBlueVariance (struct BLRParticle *particle_effect, float b)
 
void BLRParticle_SetMidColorAlphaVariance (struct BLRParticle *particle_effect, float a)
 
void BLRParticle_GetMidColorVariance (struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
 
float BLRParticle_GetMidColorRedVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetMidColorGreenVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetMidColorBlueVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetMidColorAlphaVariance (struct BLRParticle *particle_effect)
 
void BLRParticle_SetEndColor (struct BLRParticle *particle_effect, float r, float g, float b, float a)
 
void BLRParticle_SetEndColorRed (struct BLRParticle *particle_effect, float r)
 
void BLRParticle_SetEndColorGreen (struct BLRParticle *particle_effect, float g)
 
void BLRParticle_SetEndColorBlue (struct BLRParticle *particle_effect, float b)
 
void BLRParticle_SetEndColorAlpha (struct BLRParticle *particle_effect, float a)
 
void BLRParticle_SetEndColorArray (struct BLRParticle *particle_effect, float in_array[4])
 
void BLRParticle_GetEndColorArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_GetEndColor (struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
 
float BLRParticle_GetEndColorRed (struct BLRParticle *particle_effect)
 
float BLRParticle_GetEndColorGreen (struct BLRParticle *particle_effect)
 
float BLRParticle_GetEndColorBlue (struct BLRParticle *particle_effect)
 
float BLRParticle_GetEndColorAlpha (struct BLRParticle *particle_effect)
 
void BLRParticle_SetEndColorVariance (struct BLRParticle *particle_effect, float r, float g, float b, float a)
 
void BLRParticle_GetEndColorVarianceArray (struct BLRParticle *particle_effect, float out_array[4])
 
void BLRParticle_SetEndColorRedVariance (struct BLRParticle *particle_effect, float r)
 
void BLRParticle_SetEndColorGreenVariance (struct BLRParticle *particle_effect, float g)
 
void BLRParticle_SetEndColorBlueVariance (struct BLRParticle *particle_effect, float b)
 
void BLRParticle_SetEndColorAlphaVariance (struct BLRParticle *particle_effect, float a)
 
void BLRParticle_GetEndColorVariance (struct BLRParticle *particle_effect, float *r, float *g, float *b, float *a)
 
float BLRParticle_GetEndColorRedVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetEndColorGreenVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetEndColorBlueVariance (struct BLRParticle *particle_effect)
 
float BLRParticle_GetEndColorAlphaVariance (struct BLRParticle *particle_effect)
 
bool BLRParticle_IsYAxisInverted (void)
 
float BLRParticle_GetViewHeight (void)
 
void BLRParticle_SetEmitterDuration (struct BLRParticle *particle_effect, float duration_ms)
 
float BLRParticle_GetEmitterDuration (struct BLRParticle *particle_effect)
 
bool BLRParticle_HasEmitterDurationEnded (struct BLRParticle *particle_effect, uint32_t current_time)
 
uint32_t BLRParticle_GetNumberOfActiveParticles (struct BLRParticle *particle_effect)
 
void BLRParticle_SetSpinEnabled (struct BLRParticle *particle_effect, bool is_spin_enabled)
 
bool BLRParticle_IsSpinEnabled (struct BLRParticle *particle_effect)
 
void BLRParticle_SetRadialEnabled (struct BLRParticle *particle_effect, bool is_radial_enabled)
 
bool BLRParticle_IsRadialEnabled (struct BLRParticle *particle_effect)
 
void BLRParticle_SetEmitterEnabled (struct BLRParticle *particle_effect, bool is_emitter_enabled)
 
bool BLRParticle_IsEmitterEnabled (struct BLRParticle *particle_effect)
 
void BLRParticle_SetYAxisInverted (bool is_y_axis_inverted, float view_height)
 This will flip the Y-axis (non-Cartesian coordinates). More...
 
void BLRParticle_SetColorInterpMode (struct BLRParticle *particle_effect, enum BLRParticle_ColorInterp interpolation_mode)
 
enum BLRParticle_ColorInterp BLRParticle_GetColorInterpMode (struct BLRParticle *particle_effect)
 
void BLRParticle_SetColorModelMode (struct BLRParticle *particle_effect, enum BLRParticle_ColorModel color_model_mode)
 
enum BLRParticle_ColorModel BLRParticle_GetColorModelMode (struct BLRParticle *particle_effect)
 
void BLRParticle_SetTextureName0 (struct BLRParticle *particle_effect, const char *texture_name)
 Sets the name of the texture you want to associate with this particle. More...
 
void BLRParticle_SetTextureName1 (struct BLRParticle *particle_effect, const char *texture_name)
 
const char * BLRParticle_GetTextureName0 (struct BLRParticle *particle_effect)
 Gets the name of the texture. More...
 
const char * BLRParticle_GetTextureName1 (struct BLRParticle *particle_effect)
 
void BLRParticle_SetBlendModePreset (struct BLRParticle *particle_effect, int blend_mode_preset)
 Sets the blend mode preset. More...
 
int BLRParticle_GetBlendModePreset (struct BLRParticle *particle_effect)
 Gets the blend mode preset. More...
 
const float * BLRParticle_GetVertexArray (struct BLRParticle *particle_effect, size_t *out_num_elements)
 Gets a ready-to-render OpenGL friendly vertex array. More...
 
void BLRParticle_SetGlobalTranslation (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetGlobalTranslationX (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetGlobalTranslationY (struct BLRParticle *particle_effect, float y)
 
void BLRParticle_GetGlobalTranslation (struct BLRParticle *particle_effect, float *x, float *y)
 
void BLRParticle_GetGlobalTranslationArray (struct BLRParticle *particle_effect, float out_array[2])
 
float BLRParticle_GetGlobalTranslationX (struct BLRParticle *particle_effect)
 
float BLRParticle_GetGlobalTranslationY (struct BLRParticle *particle_effect)
 
void BLRParticle_SetGlobalRotation (struct BLRParticle *particle_effect, float radians)
 
float BLRParticle_GetGlobalRotation (struct BLRParticle *particle_effect)
 
void BLRParticle_SetGlobalScale (struct BLRParticle *particle_effect, float x, float y)
 
void BLRParticle_SetGlobalScaleX (struct BLRParticle *particle_effect, float x)
 
void BLRParticle_SetGlobalScaleY (struct BLRParticle *particle_effect, float y)
 
void BLRParticle_GetGlobalScale (struct BLRParticle *particle_effect, float *x, float *y)
 
void BLRParticle_GetGlobalScaleArray (struct BLRParticle *particle_effect, float out_array[2])
 
float BLRParticle_GetGlobalScaleX (struct BLRParticle *particle_effect)
 
float BLRParticle_GetGlobalScaleY (struct BLRParticle *particle_effect)
 
struct BLRParticle_Version BLRParticle_GetLinkedVersion (void)
 Gets the library version of the dynamically linked library you are using. More...
 
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. More...
 

Macro Definition Documentation

#define BLRPARTICLE_GET_COMPILED_VERSION (   X)
Value:
{ \
(X)->major = BLRPARTICLE_MAJOR_VERSION; \
(X)->minor = BLRPARTICLE_MINOR_VERSION; \
(X)->patch = BLRPARTICLE_PATCHLEVEL; \
}
#define BLRPARTICLE_MINOR_VERSION
Definition: BlurrrParticle.h:676
#define BLRPARTICLE_MAJOR_VERSION
Definition: BlurrrParticle.h:675
#define BLRPARTICLE_PATCHLEVEL
Definition: BlurrrParticle.h:677

This macro fills in a version structure with the version of the library you compiled against.

This is determined by what header the compiler uses. Note that if you dynamically linked the library, you might have a slightly newer or older version at runtime. That version can be determined with BLRParticle_GetLinkedVersion(), which, unlike BLRPARTICLE_GET_COMPILED_VERSION, is not a macro.

Parameters
XA pointer to a BLRParticle_Version struct to initialize.
See Also
BLRParticle_Version, BLRParticle_GetLinkedVersion
#define BLRPARTICLE_MAJOR_VERSION   1
#define BLRPARTICLE_MINOR_VERSION   0
#define BLRPARTICLE_PATCHLEVEL   0
#define BLRPARTICLE_STATIC

Typedef Documentation

typedef struct BLRParticle BLRParticle

Enumeration Type Documentation

Enumerator
BLRPARTICLE_COLOR_INTERP_START_END 
BLRPARTICLE_COLOR_INTERP_START_MID_END 
Enumerator
BLRPARTICLE_COLOR_MODEL_RGB 
BLRPARTICLE_COLOR_MODEL_HSV 

Function Documentation

struct BLRParticle* BLRParticle_Create ( uint32_t  max_number_of_particles)
void BLRParticle_Free ( struct BLRParticle particle_effect)
void BLRParticle_GetAcceleration ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetAccelerationArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
void BLRParticle_GetAccelerationVariance ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetAccelerationVarianceArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
float BLRParticle_GetAccelerationX ( struct BLRParticle particle_effect)
float BLRParticle_GetAccelerationXVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetAccelerationY ( struct BLRParticle particle_effect)
float BLRParticle_GetAccelerationYVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetAngularAcceleration ( struct BLRParticle particle_effect)
float BLRParticle_GetAngularAccelerationVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetAngularVelocity ( struct BLRParticle particle_effect)
float BLRParticle_GetAngularVelocityVariance ( struct BLRParticle particle_effect)
int BLRParticle_GetBlendModePreset ( struct BLRParticle particle_effect)

Gets the blend mode preset.

Gets an integer that maps to SDL_gpu's BlendModePreset enum. This API doesn't have any functional purpose. Its purpose is to allow metadata for saving and loading files so you can associate texture files with the particle. Since you control the renderer, it is up to you decide what mode to use. This field may get filled by the Load APIs.

Returns
Returns an int corresponding to SDL_gpu's BlendModePreset enum. May return -1 for undefined.
enum BLRParticle_ColorInterp BLRParticle_GetColorInterpMode ( struct BLRParticle particle_effect)
enum BLRParticle_ColorModel BLRParticle_GetColorModelMode ( struct BLRParticle particle_effect)
float BLRParticle_GetEmissionRate ( struct BLRParticle particle_effect)
float BLRParticle_GetEmitterDuration ( struct BLRParticle particle_effect)
void BLRParticle_GetEndColor ( struct BLRParticle particle_effect,
float *  r,
float *  g,
float *  b,
float *  a 
)
float BLRParticle_GetEndColorAlpha ( struct BLRParticle particle_effect)
float BLRParticle_GetEndColorAlphaVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetEndColorArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
float BLRParticle_GetEndColorBlue ( struct BLRParticle particle_effect)
float BLRParticle_GetEndColorBlueVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetEndColorGreen ( struct BLRParticle particle_effect)
float BLRParticle_GetEndColorGreenVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetEndColorRed ( struct BLRParticle particle_effect)
float BLRParticle_GetEndColorRedVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetEndColorVariance ( struct BLRParticle particle_effect,
float *  r,
float *  g,
float *  b,
float *  a 
)
void BLRParticle_GetEndColorVarianceArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
float BLRParticle_GetEndScale ( struct BLRParticle particle_effect)
float BLRParticle_GetEndScaleVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetGlobalRotation ( struct BLRParticle particle_effect)
void BLRParticle_GetGlobalScale ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetGlobalScaleArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
float BLRParticle_GetGlobalScaleX ( struct BLRParticle particle_effect)
float BLRParticle_GetGlobalScaleY ( struct BLRParticle particle_effect)
void BLRParticle_GetGlobalTranslation ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetGlobalTranslationArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
float BLRParticle_GetGlobalTranslationX ( struct BLRParticle particle_effect)
float BLRParticle_GetGlobalTranslationY ( struct BLRParticle particle_effect)
float BLRParticle_GetHeight ( struct BLRParticle particle_effect)
float BLRParticle_GetLifeDuration ( struct BLRParticle particle_effect)
float BLRParticle_GetLifeDurationVariance ( struct BLRParticle particle_effect)
struct BLRParticle_Version BLRParticle_GetLinkedVersion ( void  )

Gets the library version of the dynamically linked library you are using.

This gets the version that is linked against your program. If you are using a shared library (DLL) version, then it is possible that it will be different than the version you compiled against.

This is a real function; the macro BLRPARTICLE_GET_COMPILED_VERSION tells you what version you compiled against:

*
* printf("We compiled against tError version %d.%d.%d ...\n",
* compiled.major, compiled.minor, compiled.patch);
* printf("But we linked against tError version %d.%d.%d.\n",
* linked.major, linked.minor, linked.patch);
*
See Also
BLRParticle_Version, BLRPARTICLE_GET_COMPILED_VERSION
uint32_t BLRParticle_GetMaxParticles ( struct BLRParticle particle_effect)
void BLRParticle_GetMidColor ( struct BLRParticle particle_effect,
float *  r,
float *  g,
float *  b,
float *  a 
)
float BLRParticle_GetMidColorAlpha ( struct BLRParticle particle_effect)
float BLRParticle_GetMidColorAlphaVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetMidColorArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
float BLRParticle_GetMidColorBlue ( struct BLRParticle particle_effect)
float BLRParticle_GetMidColorBlueVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetMidColorGreen ( struct BLRParticle particle_effect)
float BLRParticle_GetMidColorGreenVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetMidColorRed ( struct BLRParticle particle_effect)
float BLRParticle_GetMidColorRedVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetMidColorVariance ( struct BLRParticle particle_effect,
float *  r,
float *  g,
float *  b,
float *  a 
)
void BLRParticle_GetMidColorVarianceArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
uint32_t BLRParticle_GetNumberOfActiveParticles ( struct BLRParticle particle_effect)
void BLRParticle_GetPositionArray ( struct BLRParticle particle_effect,
float  array[2] 
)
void BLRParticle_GetPositionVariance ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetPositionVarianceArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
float BLRParticle_GetPositionX ( struct BLRParticle particle_effect)
float BLRParticle_GetPositionXVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetPositionXY ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
float BLRParticle_GetPositionY ( struct BLRParticle particle_effect)
float BLRParticle_GetPositionYVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialAngle ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialAngleVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialDistance ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialDistanceAcceleration ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialDistanceAccelerationVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialDistanceVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialDistanceVelocity ( struct BLRParticle particle_effect)
float BLRParticle_GetRadialDistanceVelocityVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetSize ( struct BLRParticle particle_effect,
float *  width,
float *  height 
)
void BLRParticle_GetSizeArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
float BLRParticle_GetSpinAcceleration ( struct BLRParticle particle_effect)
float BLRParticle_GetSpinAccelerationVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetSpinAngle ( struct BLRParticle particle_effect)
float BLRParticle_GetSpinAngleVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetSpinVelocity ( struct BLRParticle particle_effect)
float BLRParticle_GetSpinVelocityVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetStartColor ( struct BLRParticle particle_effect,
float *  r,
float *  g,
float *  b,
float *  a 
)
float BLRParticle_GetStartColorAlpha ( struct BLRParticle particle_effect)
float BLRParticle_GetStartColorAlphaVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetStartColorArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
float BLRParticle_GetStartColorBlue ( struct BLRParticle particle_effect)
float BLRParticle_GetStartColorBlueVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetStartColorGreen ( struct BLRParticle particle_effect)
float BLRParticle_GetStartColorGreenVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetStartColorRed ( struct BLRParticle particle_effect)
float BLRParticle_GetStartColorRedVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetStartColorVariance ( struct BLRParticle particle_effect,
float *  r,
float *  g,
float *  b,
float *  a 
)
void BLRParticle_GetStartColorVarianceArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
float BLRParticle_GetStartScale ( struct BLRParticle particle_effect)
float BLRParticle_GetStartScaleVariance ( struct BLRParticle particle_effect)
void BLRParticle_GetTexCoord ( struct BLRParticle particle_effect,
float *  s0,
float *  t0,
float *  s1,
float *  t1 
)
void BLRParticle_GetTexCoordArray ( struct BLRParticle particle_effect,
float  out_array[4] 
)
float BLRParticle_GetTexCoordS0 ( struct BLRParticle particle_effect)
float BLRParticle_GetTexCoordS1 ( struct BLRParticle particle_effect)
float BLRParticle_GetTexCoordT0 ( struct BLRParticle particle_effect)
float BLRParticle_GetTexCoordT1 ( struct BLRParticle particle_effect)
const char* BLRParticle_GetTextureName0 ( struct BLRParticle particle_effect)

Gets the name of the texture.

Gets a string intended to help you identify which texture you want to use. This API doesn't have any functional purpose. Its purpose is to allow metadata for saving and loading files so you can associate texture files with the particle. Since you control the renderer, it is up to you decide what texture to use. This field may get filled by the Load APIs. It is NULL on Create().

Returns
Returns a string. May return NULL. This points to memory inside the BLRParticle* instance, so it will be freed when the particle is freed. The pointer may also change if the texture name is set. Make your own copy of the string if you need the data to persist.
Note
There are currently 2 texture names you may set for your convenience. You may use these as you see fit, e.g. fallback, multi-texturing.
See Also
BLRParticle_SetTextureName0 BLRParticle_SetTextureName1 BLRParticle_GetTextureName0 BLRParticle_GetTextureName1.
const char* BLRParticle_GetTextureName1 ( struct BLRParticle particle_effect)
void BLRParticle_GetVelocity ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetVelocityArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
void BLRParticle_GetVelocityVariance ( struct BLRParticle particle_effect,
float *  x,
float *  y 
)
void BLRParticle_GetVelocityVarianceArray ( struct BLRParticle particle_effect,
float  out_array[2] 
)
float BLRParticle_GetVelocityX ( struct BLRParticle particle_effect)
float BLRParticle_GetVelocityXVariance ( struct BLRParticle particle_effect)
float BLRParticle_GetVelocityY ( struct BLRParticle particle_effect)
float BLRParticle_GetVelocityYVariance ( struct BLRParticle particle_effect)
const float* BLRParticle_GetVertexArray ( struct BLRParticle particle_effect,
size_t *  out_num_elements 
)

Gets a ready-to-render OpenGL friendly vertex array.

This returns a pointer to a vertex array which can be fed to your renderer. Blurrr users should feed it to GPU_EXT_TriangleSpriteBatch() to draw. The format is XY_ST_RGBA (all floats).

Parameters
particle_effectThe particle instance
out_num_elementsReturns the size of the array.
Returns
A float vertex array with the packing of XY_ST_RGBA.
float BLRParticle_GetViewHeight ( void  )
float BLRParticle_GetWidth ( struct BLRParticle particle_effect)
bool BLRParticle_HasEmitterDurationEnded ( struct BLRParticle particle_effect,
uint32_t  current_time 
)
bool BLRParticle_IsEmitterEnabled ( struct BLRParticle particle_effect)
bool BLRParticle_IsRadialEnabled ( struct BLRParticle particle_effect)
bool BLRParticle_IsSpinEnabled ( struct BLRParticle particle_effect)
bool BLRParticle_IsYAxisInverted ( void  )
void BLRParticle_ResetEmittedParticles ( struct BLRParticle particle_effect)

Resets/clears all the emitted particles.

All emitted particles will be cleared and the generator will restart.

void BLRParticle_ResetProperties ( struct BLRParticle particle_effect)

Resets all the properties to the defaults.

Resets all the properties to the defaults, but does not clear the current emitted particles.

Note
Does not clear texture names. Does not change the MaxParticles.
void BLRParticle_SetAcceleration ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetAccelerationVariance ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetAccelerationX ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetAccelerationXVariance ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetAccelerationY ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetAccelerationYVariance ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetAllocators ( void *(*)(size_t sz)  malloc_fn,
void *(*)(size_t count, size_t size)  calloc_fn,
void(*)(void *ptr)  free_fn,
void *(*)(void *ptr, size_t size)  realloc_fn,
void *(*)(void *dst, const void *src, size_t len)  memmove_fn 
)

Override memory allocators with your own.

Allows you to specify your own custom memory allocators for advanced use.

Note
You should do this before calling any other functions, and definitely before you create any objects. And you should avoid swapping allocators midflight because the state is shared and not saved per-instance.
void BLRParticle_SetAngularAcceleration ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetAngularAccelerationVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetAngularVelocity ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetAngularVelocityVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetBlendModePreset ( struct BLRParticle particle_effect,
int  blend_mode_preset 
)

Sets the blend mode preset.

Sets an integer that maps to SDL_gpu's BlendModePreset enum. This API doesn't have any functional purpose. Its purpose is to allow metadata for saving and loading files so you can associate texture files with the particle. Since you control the renderer, it is up to you decide what mode to use. This field may get filled by the Load APIs.

void BLRParticle_SetColorInterpMode ( struct BLRParticle particle_effect,
enum BLRParticle_ColorInterp  interpolation_mode 
)
void BLRParticle_SetColorModelMode ( struct BLRParticle particle_effect,
enum BLRParticle_ColorModel  color_model_mode 
)
void BLRParticle_SetEmissionRate ( struct BLRParticle particle_effect,
float  emit_rate 
)
void BLRParticle_SetEmitterDuration ( struct BLRParticle particle_effect,
float  duration_ms 
)
void BLRParticle_SetEmitterEnabled ( struct BLRParticle particle_effect,
bool  is_emitter_enabled 
)
void BLRParticle_SetEndColor ( struct BLRParticle particle_effect,
float  r,
float  g,
float  b,
float  a 
)
void BLRParticle_SetEndColorAlpha ( struct BLRParticle particle_effect,
float  a 
)
void BLRParticle_SetEndColorAlphaVariance ( struct BLRParticle particle_effect,
float  a 
)
void BLRParticle_SetEndColorArray ( struct BLRParticle particle_effect,
float  in_array[4] 
)
void BLRParticle_SetEndColorBlue ( struct BLRParticle particle_effect,
float  b 
)
void BLRParticle_SetEndColorBlueVariance ( struct BLRParticle particle_effect,
float  b 
)
void BLRParticle_SetEndColorGreen ( struct BLRParticle particle_effect,
float  g 
)
void BLRParticle_SetEndColorGreenVariance ( struct BLRParticle particle_effect,
float  g 
)
void BLRParticle_SetEndColorRed ( struct BLRParticle particle_effect,
float  r 
)
void BLRParticle_SetEndColorRedVariance ( struct BLRParticle particle_effect,
float  r 
)
void BLRParticle_SetEndColorVariance ( struct BLRParticle particle_effect,
float  r,
float  g,
float  b,
float  a 
)
void BLRParticle_SetEndScale ( struct BLRParticle particle_effect,
float  scale 
)
void BLRParticle_SetEndScaleVariance ( struct BLRParticle particle_effect,
float  scale 
)
void BLRParticle_SetGlobalRotation ( struct BLRParticle particle_effect,
float  radians 
)
void BLRParticle_SetGlobalScale ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetGlobalScaleX ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetGlobalScaleY ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetGlobalTranslation ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetGlobalTranslationX ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetGlobalTranslationY ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetHeight ( struct BLRParticle particle_effect,
float  height 
)
void BLRParticle_SetLifeDuration ( struct BLRParticle particle_effect,
float  life_duration_ms 
)
void BLRParticle_SetLifeDurationVariance ( struct BLRParticle particle_effect,
float  life_duration_variance_ms 
)
void BLRParticle_SetMaxParticles ( struct BLRParticle particle_effect,
uint32_t  max_num 
)
Note
Implementation may round this number for better performance (e.g. round to multiple of 4 to fit SIMD 4-wide registers).
void BLRParticle_SetMidColor ( struct BLRParticle particle_effect,
float  r,
float  g,
float  b,
float  a 
)
void BLRParticle_SetMidColorAlpha ( struct BLRParticle particle_effect,
float  a 
)
void BLRParticle_SetMidColorAlphaVariance ( struct BLRParticle particle_effect,
float  a 
)
void BLRParticle_SetMidColorArray ( struct BLRParticle particle_effect,
float  in_array[4] 
)
void BLRParticle_SetMidColorBlue ( struct BLRParticle particle_effect,
float  b 
)
void BLRParticle_SetMidColorBlueVariance ( struct BLRParticle particle_effect,
float  b 
)
void BLRParticle_SetMidColorGreen ( struct BLRParticle particle_effect,
float  g 
)
void BLRParticle_SetMidColorGreenVariance ( struct BLRParticle particle_effect,
float  g 
)
void BLRParticle_SetMidColorRed ( struct BLRParticle particle_effect,
float  r 
)
void BLRParticle_SetMidColorRedVariance ( struct BLRParticle particle_effect,
float  r 
)
void BLRParticle_SetMidColorVariance ( struct BLRParticle particle_effect,
float  r,
float  g,
float  b,
float  a 
)
void BLRParticle_SetPosition ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetPositionVariance ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetPositionX ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetPositionXVariance ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetPositionY ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetPositionYVariance ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetRadialAngle ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialAngleVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialDistance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialDistanceAcceleration ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialDistanceAccelerationVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialDistanceVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialDistanceVelocity ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialDistanceVelocityVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetRadialEnabled ( struct BLRParticle particle_effect,
bool  is_radial_enabled 
)
void BLRParticle_SetSize ( struct BLRParticle particle_effect,
float  width,
float  height 
)

Units are in your render's pixels or points system.

void BLRParticle_SetSpinAcceleration ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetSpinAccelerationVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetSpinAngle ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetSpinAngleVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetSpinEnabled ( struct BLRParticle particle_effect,
bool  is_spin_enabled 
)
void BLRParticle_SetSpinVelocity ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetSpinVelocityVariance ( struct BLRParticle particle_effect,
float  angle_in_radians 
)
void BLRParticle_SetStartColor ( struct BLRParticle particle_effect,
float  r,
float  g,
float  b,
float  a 
)
void BLRParticle_SetStartColorAlpha ( struct BLRParticle particle_effect,
float  a 
)
void BLRParticle_SetStartColorAlphaVariance ( struct BLRParticle particle_effect,
float  a 
)
void BLRParticle_SetStartColorArray ( struct BLRParticle particle_effect,
float  in_array[4] 
)
void BLRParticle_SetStartColorBlue ( struct BLRParticle particle_effect,
float  b 
)
void BLRParticle_SetStartColorBlueVariance ( struct BLRParticle particle_effect,
float  b 
)
void BLRParticle_SetStartColorGreen ( struct BLRParticle particle_effect,
float  g 
)
void BLRParticle_SetStartColorGreenVariance ( struct BLRParticle particle_effect,
float  g 
)
void BLRParticle_SetStartColorRed ( struct BLRParticle particle_effect,
float  r 
)
void BLRParticle_SetStartColorRedVariance ( struct BLRParticle particle_effect,
float  r 
)
void BLRParticle_SetStartColorVariance ( struct BLRParticle particle_effect,
float  r,
float  g,
float  b,
float  a 
)
void BLRParticle_SetStartScale ( struct BLRParticle particle_effect,
float  scale 
)
void BLRParticle_SetStartScaleVariance ( struct BLRParticle particle_effect,
float  scale 
)
void BLRParticle_SetTexCoord ( struct BLRParticle particle_effect,
float  s0,
float  t0,
float  s1,
float  t1 
)
void BLRParticle_SetTexCoordS0 ( struct BLRParticle particle_effect,
float  s0 
)
void BLRParticle_SetTexCoordS1 ( struct BLRParticle particle_effect,
float  s1 
)
void BLRParticle_SetTexCoordT0 ( struct BLRParticle particle_effect,
float  t0 
)
void BLRParticle_SetTexCoordT1 ( struct BLRParticle particle_effect,
float  t1 
)
void BLRParticle_SetTextureName0 ( struct BLRParticle particle_effect,
const char *  texture_name 
)

Sets the name of the texture you want to associate with this particle.

Sets a string intended to help you identify which texture you want to use. This API doesn't have any functional purpose. Its purpose is to allow metadata for saving and loading files so you can associate texture files with the particle. Since you control the renderer, it is up to you decide what texture to use. This field may get filled by the Load APIs.

Note
This will make its own copy of the string so you are free to release your original string.
There are currently 2 texture names you may set for your convenience. You may use these as you see fit, e.g. fallback, multi-texturing.
See Also
BLRParticle_SetTextureName0 BLRParticle_SetTextureName1 BLRParticle_GetTextureName0 BLRParticle_GetTextureName1.
void BLRParticle_SetTextureName1 ( struct BLRParticle particle_effect,
const char *  texture_name 
)
void BLRParticle_SetVelocity ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetVelocityVariance ( struct BLRParticle particle_effect,
float  x,
float  y 
)
void BLRParticle_SetVelocityX ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetVelocityXVariance ( struct BLRParticle particle_effect,
float  x 
)
void BLRParticle_SetVelocityY ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetVelocityYVariance ( struct BLRParticle particle_effect,
float  y 
)
void BLRParticle_SetWidth ( struct BLRParticle particle_effect,
float  width 
)
void BLRParticle_SetYAxisInverted ( bool  is_y_axis_inverted,
float  view_height 
)

This will flip the Y-axis (non-Cartesian coordinates).

This inverts the Y-axis for non-Cartesian coordinates where y increases down from the top of the screen.

Warning
This is experimental. Using Cartesian coordinates (default) is strongly recommended.
void BLRParticle_StartEmitter ( struct BLRParticle particle_effect,
uint32_t  current_time 
)
void BLRParticle_StopEmitter ( struct BLRParticle particle_effect)
void BLRParticle_Update ( struct BLRParticle particle_effect,
uint32_t  current_time 
)

Updates the particle system.

Updates all the particles and emits new particles as appropriate. Should be called every new frame.

Parameters
particle_effectInstance of the particle.
current_timeThis is the current time in milliseconds. This doesn't actually have to be real-time, but can be provided by things like BlurrrTicker.
Note
The implementation optimizes the case where the current_time is the same as the last time which could happen if you pause a BlurrrTicker. This effectively pauses the particle engine and will not waste CPU resources recomputing.