18 std::is_base_of_v<gfx::Shader, T> &&
20 std::remove_cv_t<decltype(T::Name)>,
33 virtual const std::string_view
typeName() const noexcept = 0;
44 return static_cast<T*
>(
this);
A shader is used as the base class for all programs across any supported backend API....
virtual const std::string_view typeName() const noexcept=0
Get the type name of this shader.
T * to() noexcept
Downcast to a type.
virtual ~Shader()=default
constexpr bool is_shader_v