DIE Engine
Loading...
Searching...
No Matches
env.h
Go to the documentation of this file.
1
11
12#ifndef ENV_H
13#define ENV_H
14
15#include <stdint.h>
16
17/*****************************************************************************/
22typedef struct {
23 float hour;
24 float angle;
25 uint32_t ambientColor;
26 uint32_t rayColor;
29} Sun;
30
31typedef enum {
33} FOG_FLAGS;
34
38typedef struct {
41 uint32_t color;
42 uint16_t flags;
43} Fog;
44
45/*****************************************************************************/
46// Field-wise comparisons (structs carry padding, memcmp is not reliable)
47inline bool operator==(const Sun & a, const Sun & b)
48{
49 return a.hour == b.hour &&
50 a.angle == b.angle &&
52 a.rayColor == b.rayColor &&
55}
56
57inline bool operator==(const Fog & a, const Fog & b)
58{
59 return a.distanceNear == b.distanceNear &&
60 a.distanceFar == b.distanceFar &&
61 a.color == b.color &&
62 a.flags == b.flags;
63}
64
65/*****************************************************************************/
66class Env
67{
68public:
69 Env();
70
72 void init();
73
75 void terminate();
76
78 void pass();
79
82};
83
84#endif // ENV_H
void init()
Set the default sun & fog properties.
Definition env.cpp:27
Sun sun
Definition env.h:80
Fog fog
Definition env.h:81
Env()
Definition env.cpp:20
void terminate()
Release the environment resources.
Definition env.cpp:42
void pass()
Push the environment properties to the renderer.
Definition env.cpp:48
bool operator==(const Sun &a, const Sun &b)
Definition env.h:47
FOG_FLAGS
Definition env.h:31
@ FOG_FLAG_ENABLE
Definition env.h:32
Distance fog properties.
Definition env.h:38
uint16_t flags
combination of FOG_FLAGS
Definition env.h:42
uint32_t color
packed RGB fog color
Definition env.h:41
float distanceNear
fog start distance, in world units
Definition env.h:39
float distanceFar
fog full-density distance, in world units
Definition env.h:40
Sun lighting properties.
Definition env.h:22
float angle
sun tilt, in hours (0 .. 24)
Definition env.h:24
uint32_t ambientColor
packed RGB ambient color
Definition env.h:25
uint32_t rayColor
packed RGB direct ray color
Definition env.h:26
float hour
sun azimuth, in hours (0 .. 24)
Definition env.h:23
float ambientStrength
ambient intensity (0.0 .. 1.0)
Definition env.h:27
float rayStrength
ray intensity (0.0 .. 1.0)
Definition env.h:28