From d41d29ac5e5c0f0ec28a08ec9f4622b82d73cb4f Mon Sep 17 00:00:00 2001 From: Petr Babic <pbabic@redhat.com> Date: Sat, 30 Mar 2024 22:42:22 +0100 Subject: [PATCH] add basic TextShader test Signed-off-by: Petr Babic <pbabic@redhat.com> --- src/presenter.cpp | 48 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/presenter.cpp b/src/presenter.cpp index ac30734..bd534f6 100644 --- a/src/presenter.cpp +++ b/src/presenter.cpp @@ -1,3 +1,6 @@ +#include "gfx/text_shader.hpp" +#include "utils/context_utils.hpp" + #include <com/math_files.hpp> #include <gfx/index.hpp> #include <maker/index.hpp> @@ -20,6 +23,51 @@ static com::Folder *generate_grid() { return grid; } +static const std::string default_vertex_shader = R"( +#version 330 core + +layout(location = 0) in vec3 vertex_position; +uniform mat4 model; +uniform mat4 view; +uniform mat4 projection; + +void main() +{ + gl_Position = projection * view * model * vec4(vertex_position, 1.); +} +)"; + +static const std::string default_fragment_shader = R"( +#version 330 core + +out vec4 fragColor; + +void main() +{ + fragColor = vec4(0.2, 0.8, 1., 1.); +} +)"; + +static com::Folder *default_text_material_box() { + auto material = gfx::material_system()->insert_material( + "default-text-material", + gfx::shader_system()->insert_shader<gfx::TextShader>( + { "shaders" }, "default-text-shader", + default_vertex_shader, default_fragment_shader + ), + {"materials"} + ); + + auto box = gfx::object_system()->insert_object( + { "default-text-material-box" }, material, + gfx::buffer_generators()->insert_procedural_box_solid({1, 1, 1}, "default-text-material-box", { "maker" })); + auto frame = root()->push_back<com::Folder>("default-text-material-box")->push_back<com::Frame>(); + frame->set_origin({4, 4, 4}); + gfx::object_system()->push_frame_back(box, frame); + + return box; +} + static com::Folder *generate_box(vec3 position, vec3 half_sizes_along_axes) { auto shader = gfx::shader_system()->insert_shader("box_shader", gfx::Shader::Pipeline::FORWARD, gfx::Shader::LIT, { "shaders" }); -- GitLab