From bf18c18430c4cacb8c0fddbef0c2bf1962177dec Mon Sep 17 00:00:00 2001 From: Hunter Kvalevog Date: Tue, 3 Feb 2026 22:05:09 -0600 Subject: shaders: Refactor --- shaders/aero.cc | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 shaders/aero.cc (limited to 'shaders/aero.cc') diff --git a/shaders/aero.cc b/shaders/aero.cc new file mode 100644 index 0000000..8b7e27b --- /dev/null +++ b/shaders/aero.cc @@ -0,0 +1,31 @@ +#include "shaders.hh" + +static int u_checker = 16; +static float u_checker_c1[4] = { 0.9f, 0.9f, 0.9f, 1.0f }; +static float u_checker_c2[4] = { 1.0f, 1.0f, 1.0f, 1.0f }; +static float u_ww = 500; +static float u_wh = 400; + +static void ui() +{ + ImGui::InputInt("Checker", &u_checker); + ImGui::SliderFloat("window w", &u_ww, 10, 1000); + ImGui::SliderFloat("window h", &u_wh, 10, 1000); +} + +static void uniforms(Shader* shader) +{ + GL(glUniform1i(shader->get_required_uniform("u_checker"), u_checker)); + GL(glUniform4fv(shader->get_required_uniform("u_checker_c1"), 1, u_checker_c1)); + GL(glUniform4fv(shader->get_required_uniform("u_checker_c2"), 1, u_checker_c2)); + GL(glUniform1f(shader->get_required_uniform("u_ww"), u_ww)); + GL(glUniform1f(shader->get_required_uniform("u_wh"), u_wh)); +} + +static Shader aero = { + .path = "aero.glsl", + .model = MODEL_QUAD, + .ui_fn = ui, + .uf_fn = uniforms, +}; +ENABLE_SHADER(aero); -- cgit v1.2.3