summaryrefslogtreecommitdiff
path: root/themes/src/summer
diff options
context:
space:
mode:
authorMatt Kosarek <matt.kosarek@canonical.com>2025-12-29 10:02:38 -0500
committerMatt Kosarek <matt.kosarek@canonical.com>2025-12-29 10:02:38 -0500
commitfbc5d7dd1a9192c29daccdf12a7a067037ff2c2a (patch)
tree399ade27d2e76a40956aa45a789db98841e5ae62 /themes/src/summer
parent301d0aa4d61b21d4daf703672aa4b1d438651296 (diff)
Improve the sun shader with the help of AI
Diffstat (limited to 'themes/src/summer')
-rw-r--r--themes/src/summer/summer_theme.cpp8
-rw-r--r--themes/src/summer/summer_theme.h2
2 files changed, 8 insertions, 2 deletions
diff --git a/themes/src/summer/summer_theme.cpp b/themes/src/summer/summer_theme.cpp
index 6935ad1..6d2cfec 100644
--- a/themes/src/summer/summer_theme.cpp
+++ b/themes/src/summer/summer_theme.cpp
@@ -59,19 +59,23 @@ void Sun::load(Renderer2d* renderer) {
indices.add(second);
indices.add(third);
}
-
+
mesh.load(&vertices.data[0], vertices.numElements, &indices.data[0], indices.numElements, renderer);
mesh.model = Mat4x4().translateByVec2(Vector2(renderer->context->width / 2.f, renderer->context->height / 2.f));
+
+ timeUniform = getShaderUniform(renderer->shader, "time");
+
vertices.deallocate();
indices.deallocate();
}
void Sun::update(f32 dtSeconds) {
-
+ elapsedTime += dtSeconds;
}
void Sun::render(Renderer2d* renderer) {
setShaderMat4(renderer->uniforms.model, mesh.model);
+ glUniform1f(timeUniform, elapsedTime);
glBindVertexArray(mesh.vao);
glDrawElements(GL_TRIANGLES, mesh.numIndices, GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
diff --git a/themes/src/summer/summer_theme.h b/themes/src/summer/summer_theme.h
index cd25ff5..eb404fd 100644
--- a/themes/src/summer/summer_theme.h
+++ b/themes/src/summer/summer_theme.h
@@ -8,6 +8,8 @@ struct Sun {
f32 radius = 20.f;
i32 sectors = 180;
Mesh2D mesh;
+ f32 elapsedTime = 0.f;
+ i32 timeUniform = -1;
void load(Renderer2d* renderer);
void update(f32 dtSeconds);