summaryrefslogtreecommitdiff
path: root/shaders/aero.cc
diff options
context:
space:
mode:
authorHunter Kvalevog <hunter@kvog.sh>2026-02-03 22:05:09 -0600
committerHunter Kvalevog <hunter@kvog.sh>2026-02-03 22:05:09 -0600
commitbf18c18430c4cacb8c0fddbef0c2bf1962177dec (patch)
treea95f5576680ce7d43c0ddc94ccc4f40c1d42fc75 /shaders/aero.cc
parent440612338695a73509c8bf3b72ef0e0786446cb7 (diff)
shaders: Refactor
Diffstat (limited to 'shaders/aero.cc')
-rw-r--r--shaders/aero.cc31
1 files changed, 31 insertions, 0 deletions
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);