2
3
4
5
6
7
8
11#ifndef _GLSL_STRUCT_STRUCT_ELEM_DATA_HPP_
12 #define _GLSL_STRUCT_STRUCT_ELEM_DATA_HPP_
14 #include <glslstruct/config.hpp>
17_GLSL_STRUCT_ERROR(
"This is only available for c++17 and greater!");
20 #include <glslstruct/types.hpp>
24
25
26
29 friend struct std::hash<var_data>;
33 base_type_handle _type;
48 var_data(size_t offset,
const base_type_handle& type,
bool isTopLevel, size_t padding)
noexcept;
51 var_data(size_t offset, size_t size,
bool isTopLevel, size_t padding)
noexcept;
54 var_data(
const var_data& other)
noexcept;
56 var_data(var_data&& other)
noexcept;
61 var_data& operator=(
const var_data& other)
noexcept;
63 var_data& operator=(var_data&& other)
noexcept;
66 void set_padding(size_t padding)
noexcept;
68 void set_is_top_level(
bool topLevel)
noexcept;
72 [[nodiscard]]
const base_type_handle& get_type()
const noexcept;
75 [[nodiscard]] size_t get_offset()
const noexcept;
77 [[nodiscard]] size_t get_total_size()
const noexcept;
79 [[nodiscard]] size_t get_size()
const noexcept;
81 [[nodiscard]] size_t get_padding()
const noexcept;
83 [[nodiscard]]
bool is_top_level()
const noexcept;
86 [[nodiscard]]
bool operator==(
const var_data& other)
const noexcept;
88 [[nodiscard]]
bool operator!=(
const var_data& other)
const noexcept;
93
94
95
98 [[nodiscard]] size_t operator()(
const glslstruct::var_data& value)
const noexcept;
#define _GLSL_STRUCT_EXPORT
This is for exporting symbols in shared library setup.
Definition config.hpp:251
#define _GLSL_STRUCT_HAS_CXX17
check if compiler has c++ version greater or equal to c++17
Definition config.hpp:130
#define _GLSL_STRUCT_HAS_TYPES
check if user not disabled type containers using GLSL_STRUCT_DISABLE_TYPES
Definition config.hpp:162