summary refs log tree commit diff
path: root/src/EnvRenderer.h
diff options
context:
space:
mode:
authorWlodekM <[email protected]>2024-06-16 10:35:45 +0300
committerWlodekM <[email protected]>2024-06-16 10:35:45 +0300
commitabef6da56913f1c55528103e60a50451a39628b1 (patch)
treeb3c8092471ecbb73e568cd0d336efa0e7871ee8d /src/EnvRenderer.h
initial commit
Diffstat (limited to 'src/EnvRenderer.h')
-rw-r--r--src/EnvRenderer.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/EnvRenderer.h b/src/EnvRenderer.h
new file mode 100644
index 0000000..29eb5ad
--- /dev/null
+++ b/src/EnvRenderer.h
@@ -0,0 +1,47 @@
+#ifndef CC_ENVRENDERER_H
+#define CC_ENVRENDERER_H
+#include "Core.h"
+/* 
+Renders environment of the map (clouds, sky, fog, map sides/edges, skybox, rain/snow)
+Copyright 2014-2023 ClassiCube | Licensed under BSD-3
+*/
+struct IGameComponent;
+extern struct IGameComponent EnvRenderer_Component;
+
+#define ENV_MINIMAL 1
+#define ENV_LEGACY  2
+
+/* Renders coloured sky plane. */
+void EnvRenderer_RenderSky(void);
+/* Renders textured cloud plane. */
+void EnvRenderer_RenderClouds(void);
+/* Updates current fog colour and mode. */
+void EnvRenderer_UpdateFog(void);
+
+/* Renders borders around map and under horizon. */
+void EnvRenderer_RenderMapSides(void);
+/* Renders flat horizon surrounding map. */
+void EnvRenderer_RenderMapEdges(void);
+/* Renders a skybox around the player. */
+void EnvRenderer_RenderSkybox(void);
+/* Whether a skybox should be rendered. */
+cc_bool EnvRenderer_ShouldRenderSkybox(void);
+
+extern cc_int16* Weather_Heightmap;
+/* Called when a block is changed to update internal weather state. */
+void EnvRenderer_OnBlockChanged(int x, int y, int z, BlockID oldBlock, BlockID newBlock);
+/* Renders rainfall/snowfall weather. */
+void EnvRenderer_RenderWeather(float delta);
+
+/* Whether large quads are broken down into smaller quads. */
+/* This makes them have less rendering issues when using vertex fog. */
+extern cc_bool EnvRenderer_Legacy;
+/* Whether minimal environmental effects are rendered. */
+/* Minimal mode disables skybox, clouds and fog. */
+extern cc_bool EnvRenderer_Minimal;
+/* Sets whether Legacy and Minimal modes are used based on given flags. */
+void EnvRenderer_SetMode(int flags);
+/* Calculates mode flags for the given mode. */
+/* mode can be: normal, normalfast, legacy, legacyfast */
+CC_NOINLINE int EnvRenderer_CalcFlags(const cc_string* mode);
+#endif