#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