From 0d10b77f77459333c5549711334f417623ab1f3e Mon Sep 17 00:00:00 2001 From: vimene Date: Sat, 17 Jan 2026 00:06:31 +0100 Subject: improved software shaders - unified terminal and graphical software renderer shaders - added vertex shaders for software renderers - removed VertexData - moved shaders from frame buffers to their own class - added FrameBufferConcept and ShadersConcept --- src/shaders/shaders.hpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/shaders/shaders.hpp (limited to 'src/shaders/shaders.hpp') diff --git a/src/shaders/shaders.hpp b/src/shaders/shaders.hpp new file mode 100644 index 0000000..d5e1c3a --- /dev/null +++ b/src/shaders/shaders.hpp @@ -0,0 +1,24 @@ +#ifndef SHADERS_SHADERS_HPP +#define SHADERS_SHADERS_HPP + +#include +#include "math/vector.hpp" +#include "o3d/vertex.hpp" +#include "fb/fb.hpp" + +namespace engine::shaders { + +template +concept ShadersConcept = + requires { + typename T::fb_type; + requires engine::fb::FrameBufferConcept; + } && + requires (T shaders, int x, int y, engine::math::Vector3 v3_1, engine::math::Vector3 v3_2, engine::math::Vector2 v2) { + { shaders.vertex(v3_1, v3_2, v2) } -> std::same_as; + { shaders.fragment(x, y, v3_1, v3_2, v2) } -> std::same_as; + }; + +} + +#endif // SHADERS_SHADERS_HPP -- cgit v1.2.3