diff options
author | WlodekM <[email protected]> | 2024-06-16 10:35:45 +0300 |
---|---|---|
committer | WlodekM <[email protected]> | 2024-06-16 10:35:45 +0300 |
commit | abef6da56913f1c55528103e60a50451a39628b1 (patch) | |
tree | b3c8092471ecbb73e568cd0d336efa0e7871ee8d /src/EnvRenderer.h |
initial commit
Diffstat (limited to 'src/EnvRenderer.h')
-rw-r--r-- | src/EnvRenderer.h | 47 |
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 |