From d8fac9045b27e8e9e436450800ec585abd21826e Mon Sep 17 00:00:00 2001 From: Hartmut Seichter Date: Tue, 12 Feb 2019 22:44:51 +0100 Subject: [PATCH] skeleton for setting uniforms with variants --- src/visual/src/shader.cpp | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/visual/src/shader.cpp b/src/visual/src/shader.cpp index 2453f23..6bb6d01 100644 --- a/src/visual/src/shader.cpp +++ b/src/visual/src/shader.cpp @@ -1,5 +1,6 @@ #include "pw/visual/shader.hpp" #include "pw/core/debug.hpp" +#include "pw/core/serialize.hpp" #include "glad/glad.h" @@ -203,11 +204,21 @@ void shader::use() void shader::set_uniforms(shader::uniform_set s) { for (auto& u : s) { - std::visit( - [u](auto&& arg){ - std::cout << u.first << " " << typeid(arg).name() << std::endl; - }, - u.second); +// std::visit( +// [u](auto&& arg){ +// std::cout << u.first << " " << typeid(arg).name() << std::endl; +// }, +// u.second); + + + std::visit([u](auto&& arg) { + using T = std::decay_t; + if constexpr (std::is_same_v) + std::cout << "vec4f with type " << typeid(arg).name() << " " << serialize::matrix(arg) << '\n'; + else + std::cout << "can't" << std::endl; + }, u.second); + } }