Go to the documentation of this file. 1 #ifndef OGLPLUS_TEXGEN_UNIFORM_NODE_HPP
9 #define OGLPLUS_TEXGEN_UNIFORM_NODE_HPP
11 #include "../uniform.hpp"
15 namespace eagine::oglp::texgen {
17 class uniform_output :
public base_output {
19 friend class uniform_node;
21 slot_data_type _value_type;
25 uniform_output(node_intf& parent, slot_data_type type);
37 std::ostream& definitions(std::ostream& out, compile_context& ctxt)
override;
40 class uniform_node :
public single_output_node<uniform_output> {
42 uniform_node(slot_data_type);
45 uniform_node& set_value_type(slot_data_type type) {
46 _output._value_type = type;
51 uniform_node& set_value_type() {
52 set_value_type(get_data_type_v<T>);
57 return _output.get_location();
60 void prepare()
override;
65 #if !OGLPLUS_LINK_LIBRARY || defined(OGLPLUS_IMPLEMENTING_LIBRARY)
66 #include <oglplus/texgen/uniform_node.inl>
69 #endif // OGLPLUS_TEXGEN_UNIFORM_NODE_HPP
value_type
Value tree value element data type enumeration.
Definition: interface.hpp:27
basic_string_span< const char > string_view
Alias for const string views.
Definition: string_span.hpp:116
prog_var_location< EAGINE_ID_V(Uniform)> uniform_location
Alias for shader program uniform location wrapper.
Definition: prog_var_loc.hpp:115
static auto type_name(const T &) noexcept -> std::string
Returns the demangled name for type T.
Definition: type_name.hpp:24