Program Listing for File GUI.ixx#
↰ Return to documentation for file (Src/GraphicsEngineOpenGL/gui/GUI.ixx)
module;
#include <memory>
export module kataglyphis.opengl.gui;
import kataglyphis.opengl.window;
import kataglyphis.opengl.scene;
import kataglyphis.opengl.texture;
export class GUI
{
public:
GUI();
static void init(const std::shared_ptr<Window> &main_window);
void render(bool loading_in_progress, float progress, bool &shader_hot_reload_triggered);
void update_user_input(const std::shared_ptr<Scene> &scene);
~GUI();
private:
std::unique_ptr<Texture> logo_tex;
float direcional_light_radiance;
float directional_light_color[3]{};
float directional_light_direction[3]{};
int cloud_speed;
float cloud_scale;
float cloud_density;
float cloud_pillowness;
float cloud_cirrus_effect;
float cloud_mesh_scale[3]{};
float cloud_mesh_offset[3]{};
bool cloud_powder_effect;
float cloud_movement_direction[3]{};
int cloud_num_march_steps;
int cloud_num_march_steps_to_light;
int shadow_map_res_index;
bool shadow_resolution_changed;
int num_shadow_cascades;
int pcf_radius;
float cascaded_shadow_intensity;
const char *available_shadow_map_resolutions[4]{};
};