diff options
| author | vimene <vincent.menegaux@gmail.com> | 2026-01-17 00:06:31 +0100 |
|---|---|---|
| committer | vimene <vincent.menegaux@gmail.com> | 2026-01-17 00:06:31 +0100 |
| commit | 0d10b77f77459333c5549711334f417623ab1f3e (patch) | |
| tree | 6584ab5d09fa72c93a70ac916bfdf401c7617157 /src/shaders/shaders.hpp | |
| parent | 175c71637b6bea6dcdd0faf3d614339983809bb1 (diff) | |
| download | engine-0d10b77f77459333c5549711334f417623ab1f3e.tar.gz | |
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
Diffstat (limited to 'src/shaders/shaders.hpp')
| -rw-r--r-- | src/shaders/shaders.hpp | 24 |
1 files changed, 24 insertions, 0 deletions
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 <concepts> +#include "math/vector.hpp" +#include "o3d/vertex.hpp" +#include "fb/fb.hpp" + +namespace engine::shaders { + +template<typename T> +concept ShadersConcept = + requires { + typename T::fb_type; + requires engine::fb::FrameBufferConcept<typename T::fb_type>; + } && + 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<engine::o3d::Vertex>; + { shaders.fragment(x, y, v3_1, v3_2, v2) } -> std::same_as<engine::math::Vector4>; + }; + +} + +#endif // SHADERS_SHADERS_HPP |
