diff options
| author | Matt Kosarek <matt.kosarek@canonical.com> | 2025-12-29 10:02:38 -0500 |
|---|---|---|
| committer | Matt Kosarek <matt.kosarek@canonical.com> | 2025-12-29 10:02:38 -0500 |
| commit | fbc5d7dd1a9192c29daccdf12a7a067037ff2c2a (patch) | |
| tree | 399ade27d2e76a40956aa45a789db98841e5ae62 /themes/src/summer | |
| parent | 301d0aa4d61b21d4daf703672aa4b1d438651296 (diff) | |
Improve the sun shader with the help of AI
Diffstat (limited to 'themes/src/summer')
| -rw-r--r-- | themes/src/summer/summer_theme.cpp | 8 | ||||
| -rw-r--r-- | themes/src/summer/summer_theme.h | 2 |
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); |
