GLSL Struct 1.4.0
glslstruct
Loading...
Searching...
No Matches
glslstruct::glsl_value< T, Num > Struct Template Reference

container for values for easier initialization of structs More...

#include <glsl_value.hpp>

Inheritance diagram for glslstruct::glsl_value< T, Num >:
[legend]
Collaboration diagram for glslstruct::glsl_value< T, Num >:
[legend]

Public Types

using value_type = T
 value type

Public Member Functions

 glsl_value (const std::string_view name) _GLSL_STRUCT_REQUIRES(utils
 default constructor with variable name
 glsl_value (const std::string_view name, const value_type &value) _GLSL_STRUCT_REQUIRES(utils
 constructor with value of value_type type
 glsl_value (const std::string_view name, const value_type *values, const size_t size) _GLSL_STRUCT_REQUIRES(utils
 constructor for array values with pointer to values and size
 glsl_value (const std::string_view name, const std::vector< value_type > &values) _GLSL_STRUCT_REQUIRES(utils
 constructor for array values with std::vector
 glsl_value (const std::string_view name, const std::array< value_type, array_size > &values) _GLSL_STRUCT_REQUIRES(utils
 constructor for array values with std::array
 glsl_value (const std::string_view name, const value_type(&values)[array_size]) _GLSL_STRUCT_REQUIRES(utils
 constructor for array values with c-style array
 glsl_value (const std::string_view name, const std::span< const value_type > values) _GLSL_STRUCT_REQUIRES(utils
 constructor for array values with std::span
template<utils::glsl_struct Type = value_type>
 glsl_value (const std::string_view name, const _GLSL_STRUCT_TYPENAME17 Type::layout_type &layout) _GLSL_STRUCT_REQUIRES((utils
 constructor for struct array values
template<utils::glsl_struct Type = value_type>
 glsl_value (const std::string_view name, const _GLSL_STRUCT_TYPENAME17 Type::layout_type &layout, const std::vector< std::vector< std::byte > > &values) _GLSL_STRUCT_REQUIRES((utils
 constructor for array values with std::vector
template<utils::glsl_struct Type = value_type>
 glsl_value (const std::string_view name, const _GLSL_STRUCT_TYPENAME17 Type::layout_type &layout, const std::array< std::vector< std::byte >, array_size > &values) _GLSL_STRUCT_REQUIRES((utils
 constructor for array values with std::array
template<utils::glsl_struct Type = value_type>
 glsl_value (const std::string_view name, const _GLSL_STRUCT_TYPENAME17 Type::layout_type &layout, const std::vector< std::byte > *values, const size_t size) _GLSL_STRUCT_REQUIRES((utils
 constructor for array values with pointer to values and size
template<utils::glsl_struct Type = value_type>
 glsl_value (const std::string_view name, const _GLSL_STRUCT_TYPENAME17 Type::layout_type &layout, const std::vector< std::byte >(&values)[Num]) _GLSL_STRUCT_REQUIRES((utils
 constructor for array values with c-style array values
template<utils::glsl_struct Type = value_type>
 glsl_value (const std::string_view name, const _GLSL_STRUCT_TYPENAME17 Type::layout_type &layout, const std::span< const std::vector< std::byte > > values) _GLSL_STRUCT_REQUIRES((utils
 constructor for array values with std::span

Public Attributes

const std::string varName
 variable name

Static Public Attributes

static _GLSL_STRUCT_CONSTEXPR17 size_t array_size = Num
 array size
static _GLSL_STRUCT_CONSTEXPR17 bool is_array = array_size > 0
 value indicating if value is array or single
static _GLSL_STRUCT_CONSTEXPR17 bool is_struct = utils::is_glsl_struct_v<value_type>
 value indicating if value_type is struct

Private Types

using base_struct
 base struct type

Detailed Description

template<utils::glsl_simple_or_struct T, size_t Num>
struct glslstruct::glsl_value< T, Num >

container for values for easier initialization of structs

Template Parameters
Tvalue type
numnumber of elements in array (default is 0. if it is 0 then it is not array but a single value)

Member Typedef Documentation

◆ base_struct

template<utils::glsl_simple_or_struct T, size_t Num>
using glslstruct::glsl_value< T, Num >::base_struct
private
Initial value:
std::conditional_t<mstd::is_eq_v<Num, 0>, utils::single_value<T>,
std::conditional_t<utils::is_glsl_simple_v<T>, utils::array_value<T, Num>, utils::struct_array_value<T, Num> > >
container for array values
Definition glsl_value.hpp:53
container for single values
Definition glsl_value.hpp:30
container for array of structs
Definition glsl_value.hpp:122

base struct type

◆ value_type

template<utils::glsl_simple_or_struct T, size_t Num>
using glslstruct::glsl_value< T, Num >::value_type = T

value type

Constructor & Destructor Documentation

◆ glsl_value() [1/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name)
inlineexplicit

default constructor with variable name

◆ glsl_value() [2/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const value_type & value )
inline

constructor with value of value_type type

◆ glsl_value() [3/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const value_type * values,
const size_t size )
inline

constructor for array values with pointer to values and size

◆ glsl_value() [4/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const std::vector< value_type > & values )
inline

constructor for array values with std::vector

◆ glsl_value() [5/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const std::array< value_type, array_size > & values )
inline

constructor for array values with std::array

◆ glsl_value() [6/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const value_type(&) values[array_size] )
inline

constructor for array values with c-style array

◆ glsl_value() [7/13]

template<utils::glsl_simple_or_struct T, size_t Num>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const std::span< const value_type > values )
inline

constructor for array values with std::span

◆ glsl_value() [8/13]

template<utils::glsl_simple_or_struct T, size_t Num>
template<utils::glsl_struct Type = value_type>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const _GLSL_STRUCT_TYPENAME17 Type::layout_type & layout )
inline

constructor for struct array values

◆ glsl_value() [9/13]

template<utils::glsl_simple_or_struct T, size_t Num>
template<utils::glsl_struct Type = value_type>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const _GLSL_STRUCT_TYPENAME17 Type::layout_type & layout,
const std::vector< std::vector< std::byte > > & values )
inline

constructor for array values with std::vector

◆ glsl_value() [10/13]

template<utils::glsl_simple_or_struct T, size_t Num>
template<utils::glsl_struct Type = value_type>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const _GLSL_STRUCT_TYPENAME17 Type::layout_type & layout,
const std::array< std::vector< std::byte >, array_size > & values )
inline

constructor for array values with std::array

◆ glsl_value() [11/13]

template<utils::glsl_simple_or_struct T, size_t Num>
template<utils::glsl_struct Type = value_type>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const _GLSL_STRUCT_TYPENAME17 Type::layout_type & layout,
const std::vector< std::byte > * values,
const size_t size )
inline

constructor for array values with pointer to values and size

◆ glsl_value() [12/13]

template<utils::glsl_simple_or_struct T, size_t Num>
template<utils::glsl_struct Type = value_type>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const _GLSL_STRUCT_TYPENAME17 Type::layout_type & layout,
const std::vector< std::byte >(&) values[Num] )
inline

constructor for array values with c-style array values

◆ glsl_value() [13/13]

template<utils::glsl_simple_or_struct T, size_t Num>
template<utils::glsl_struct Type = value_type>
glslstruct::glsl_value< T, Num >::glsl_value ( const std::string_view name,
const _GLSL_STRUCT_TYPENAME17 Type::layout_type & layout,
const std::span< const std::vector< std::byte > > values )
inline

constructor for array values with std::span

Member Data Documentation

◆ array_size

template<utils::glsl_simple_or_struct T, size_t Num>
_GLSL_STRUCT_CONSTEXPR17 size_t glslstruct::glsl_value< T, Num >::array_size = Num
static

array size

◆ is_array

template<utils::glsl_simple_or_struct T, size_t Num>
_GLSL_STRUCT_CONSTEXPR17 bool glslstruct::glsl_value< T, Num >::is_array = array_size > 0
static

value indicating if value is array or single

◆ is_struct

template<utils::glsl_simple_or_struct T, size_t Num>
_GLSL_STRUCT_CONSTEXPR17 bool glslstruct::glsl_value< T, Num >::is_struct = utils::is_glsl_struct_v<value_type>
static

value indicating if value_type is struct

◆ varName

template<utils::glsl_simple_or_struct T, size_t Num>
const std::string glslstruct::glsl_value< T, Num >::varName

variable name