diff options
Diffstat (limited to 'themes/Snowflake.h')
-rw-r--r-- | themes/Snowflake.h | 46 |
1 files changed, 30 insertions, 16 deletions
diff --git a/themes/Snowflake.h b/themes/Snowflake.h index 09b05db..08f1c0c 100644 --- a/themes/Snowflake.h +++ b/themes/Snowflake.h @@ -1,36 +1,50 @@ #include "types.h" #include "mathlib.h" +#include "List.h" struct Renderer2d; -struct SnowflakeUpdateData; -struct SnowflakeRenderData; +struct Renderer2dVertex; struct SnowflakeLoadParameters { - int32 maxSnowflakes = 10000; + int32 maxSnowflakes = 1000; + int32 initialSnowflakeCount = 100; float32 rateOfSnowfall = 0.1f; - Vector3 flakeV0 = { 0, 1, 0 }; + Vector2 flakeV0 = { 0, 1 }; float32 flakeSize = 5.f; float32 flakeSizeDeviation = 1.f; Vector4 snowColor = { 0.8, 0.8, 0.8, 1.0 }; + float32 spawnIntervalSeconds = 0.3; +}; + +struct SnowflakeUpdateData { + Vector2 v0; + Vector2 velocity; + Vector2 position; + float32 rotation; + bool onGround = false; + + int32 vtxIdx = 0; + int32 numVertices = 0; }; struct SnowflakeParticleRenderer { - int32 activeIndex = 0; + float32 xMax = 0; + float32 yMax = 0; + float32 spawnIntervalSeconds = 0.3; + int32 startIndex = 0; + int32 endIndex = 0; + int32 numSnowflakes = 0; Vector3 windSpeed = { 0, 0, 0 }; SnowflakeUpdateData* updateData; - SnowflakeRenderData* renderData; + float32 timeUntilNextSpawnSeconds = 0;; + + uint32 vao; + uint32 vbo; + Mat4x4 model; + List<Renderer2dVertex> vertices; - void load(SnowflakeLoadParameters params, Renderer2d* renderer);o + void load(SnowflakeLoadParameters params, Renderer2d* renderer); void update(float32 dtSeconds); void render(Renderer2d* renderer); void unload(); }; - -struct SnowflakeUpdateData { - Vector3 velocity; - Vector3 position; -}; - -struct SnowflakeRenderData { - -}; |