summaryrefslogtreecommitdiff
path: root/themes/Snowflake.h
diff options
context:
space:
mode:
Diffstat (limited to 'themes/Snowflake.h')
-rw-r--r--themes/Snowflake.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/themes/Snowflake.h b/themes/Snowflake.h
new file mode 100644
index 0000000..09b05db
--- /dev/null
+++ b/themes/Snowflake.h
@@ -0,0 +1,36 @@
+#include "types.h"
+#include "mathlib.h"
+
+struct Renderer2d;
+struct SnowflakeUpdateData;
+struct SnowflakeRenderData;
+
+struct SnowflakeLoadParameters {
+ int32 maxSnowflakes = 10000;
+ float32 rateOfSnowfall = 0.1f;
+ Vector3 flakeV0 = { 0, 1, 0 };
+ float32 flakeSize = 5.f;
+ float32 flakeSizeDeviation = 1.f;
+ Vector4 snowColor = { 0.8, 0.8, 0.8, 1.0 };
+};
+
+struct SnowflakeParticleRenderer {
+ int32 activeIndex = 0;
+ Vector3 windSpeed = { 0, 0, 0 };
+ SnowflakeUpdateData* updateData;
+ SnowflakeRenderData* renderData;
+
+ void load(SnowflakeLoadParameters params, Renderer2d* renderer);o
+ void update(float32 dtSeconds);
+ void render(Renderer2d* renderer);
+ void unload();
+};
+
+struct SnowflakeUpdateData {
+ Vector3 velocity;
+ Vector3 position;
+};
+
+struct SnowflakeRenderData {
+
+};