GLSL Struct 1.4.0
glslstruct
Loading...
Searching...
No Matches
GLSLStruct

Main group. More...

Collaboration diagram for GLSLStruct:

Topics

 Glsl type containers
 type containers are for people that want to know of which type is value stored in struct
 Glsl type visitors
 glsl type visitors
 Layout Traits
 Traits for different layouts.
 Opengl Writer
 Converts glsl struct and layout to glsl code compatible with opengl.
 Utilities
 group with utilities (not for end user to use)
 Vulkan Writer
 Converts glsl struct and layout to glsl code compatible with vulkan.

Classes

class  glslstruct::mat_data
 glsl mat data container More...
struct  glslstruct::scalar_traits< bool >
 scalar_traits for bool values More...
struct  glslstruct::scalar_traits< int >
 scalar_traits for int values More...
struct  glslstruct::scalar_traits< unsigned int >
 scalar_traits for unsigned int values More...
struct  glslstruct::scalar_traits< float >
 scalar_traits for float values More...
struct  glslstruct::scalar_traits< double >
 scalar_traits for double values More...
class  glslstruct::scalar_data
 glsl scalar data container More...
class  glslstruct::vec_data
 glsl vec data container More...
struct  glslstruct::mat_traits< glm::mat< C, R, T, Q > >
 mat_traits for glm::mat values More...
struct  glslstruct::mat_traits< mstd::mat< C, R, T > >
 mat_traits for mstd::mat values More...
struct  glslstruct::vec_traits< glm::vec< L, T, Q > >
 vec_traits for glm::vec values More...
struct  glslstruct::vec_traits< mstd::vec< N, T > >
 vec_traits for mstd::vec values More...
class  glslstruct::var_data
 container for all variable data More...
class  glslstruct::base_layout< Traits >
 base layout container More...
struct  std::hash< glslstruct::base_layout< Traits > >
 std::hash overload for base_layout More...
struct  glslstruct::max_alignment_layout_context
 layout context which contains max alignment of all variables More...
struct  glslstruct::struct_added_layout_context
 layout context which contains alignment of last added struct More...
class  glslstruct::base_parser< Layout >
 base template class of structs parser More...
class  glslstruct::base_struct< Layout >
 base class for glsl struct representation More...
struct  std::hash< glslstruct::base_struct< Layout > >
 std::hash overload for base_struct More...
struct  glslstruct::mat_traits< T >
 Contains all static functions needed for layout and struct classes to interpret given mat type as glsl mat value. More...
struct  glslstruct::scalar_traits< T >
 Contains all static functions needed for layout and struct classes to interpret given scalar type as glsl scalar value. More...
struct  glslstruct::vec_traits< T >
 Contains all static functions needed for layout and struct classes to interpret given vec type as glsl vec value. More...
struct  glslstruct::glsl_value< T, Num >
 container for values for easier initialization of structs More...
struct  glslstruct::glsl_variable< T, Num >
 container for variables for easier initialization of layouts More...

Macros

#define GLSL_STRUCT_VERSION_MAJOR   1
 glslstruct version major number
#define GLSL_STRUCT_VERSION_MINOR   4
 glslstruct version minor number
#define GLSL_STRUCT_VERSION_PATCH   0
 glslstruct version patch number
#define GLSL_STRUCT_VERSION_STRING   _GLSL_STRUCT_VERSION_TO_STRING(GLSL_STRUCT_VERSION_MAJOR, GLSL_STRUCT_VERSION_MINOR, GLSL_STRUCT_VERSION_PATCH)
 glslstruct version string
#define GLSL_STRUCT_VERSION_INT   _GLSL_STRUCT_VERSION_TO_INT(GLSL_STRUCT_VERSION_MAJOR, GLSL_STRUCT_VERSION_MINOR, GLSL_STRUCT_VERSION_PATCH)
 glslstruct version int
#define GLSL_STRUCT_VERSION   GLSL_STRUCT_VERSION_STRING
 glslstruct version string
#define GLSL_STRUCT_LAST_UPDATE_DAY   13
 glslstruct last update day
#define GLSL_STRUCT_LAST_UPDATE_MONTH   04
 glslstruct last update month
#define GLSL_STRUCT_LAST_UPDATE_YEAR   2026
 glslstruct last update year
#define GLSL_STRUCT_LAST_UPDATE_DATE
 glslstruct last update date string

Typedefs

using glslstruct::std140_parser = base_parser<std140_layout>
 parser for std140 layout
using glslstruct::std430_parser = base_parser<std430_layout>
 parser for std430 layout
using glslstruct::scalar_parser = base_parser<scalar_layout>
 parser for scalar layout
using glslstruct::std140_layout = base_layout<std140_layout_traits>
 std140 layout representation
using glslstruct::std430_layout = base_layout<std430_layout_traits>
 std430 layout representation
using glslstruct::scalar_layout = base_layout<scalar_layout_traits>
 scalar layout representation
using glslstruct::std140_struct = base_struct<std140_layout>
 std140 struct representation
using glslstruct::std430_struct = base_struct<std430_layout>
 std430 struct representation
using glslstruct::scalar_struct = base_struct<scalar_layout>
 scalar struct representation
using glslstruct::base_type_handle = std::shared_ptr<base_type>
 base_type container handle
template<class Derived>
using glslstruct::type_handle = std::shared_ptr<type<Derived> >
 type container handle
using glslstruct::scalar_type_handle = std::shared_ptr<scalar_type>
 scalar_type container handle
using glslstruct::vec_type_handle = std::shared_ptr<vec_type>
 vec_type container handle
using glslstruct::mat_type_handle = std::shared_ptr<mat_type>
 mat_type container handle
using glslstruct::array_type_handle = std::shared_ptr<array_type>
 array_type container handle
using glslstruct::struct_type_handle = std::shared_ptr<struct_type>
 struct_type container handle

Functions

size_t glslstruct::ceil_to_nearest_multiple (size_t valueToRoundUp, size_t multipleValue) noexcept
 returns value rounded up to nearest multiple of given value
std::string glslstruct::get_array_elem_name (std::string_view arrayName, size_t elemIdx)
 returns array elem name
std::string glslstruct::get_struct_elem_name (std::string_view structName, std::string_view elemName)
 returns struct elem name
 glslstruct::ENUM_CLASS_BASE (ValueType, uint8_t,(Bool),(Int),(Uint),(Float),(Double)) template< class T > static _GLSL_STRUCT_CONSTEXPR17 ValueType get_value_type() noexcept _GLSL_STRUCT_REQUIRES((mstd
 Value Type Enum.
size_t glslstruct::get_value_type_size (ValueType type)
 Returns glsl type size of scalar.

Detailed Description

Main group.

Macro Definition Documentation

◆ GLSL_STRUCT_LAST_UPDATE_DATE

#define GLSL_STRUCT_LAST_UPDATE_DATE
Value:
#define GLSL_STRUCT_LAST_UPDATE_DAY
glslstruct last update day
Definition config.hpp:94
#define GLSL_STRUCT_LAST_UPDATE_YEAR
glslstruct last update year
Definition config.hpp:104
#define GLSL_STRUCT_LAST_UPDATE_MONTH
glslstruct last update month
Definition config.hpp:99
#define _GLSL_STRUCT_LAST_UPDATE_DATE_HELPER(day, month, year)
converts last update date to string
Definition config.hpp:110

glslstruct last update date string

◆ GLSL_STRUCT_LAST_UPDATE_DAY

#define GLSL_STRUCT_LAST_UPDATE_DAY   13

glslstruct last update day

◆ GLSL_STRUCT_LAST_UPDATE_MONTH

#define GLSL_STRUCT_LAST_UPDATE_MONTH   04

glslstruct last update month

◆ GLSL_STRUCT_LAST_UPDATE_YEAR

#define GLSL_STRUCT_LAST_UPDATE_YEAR   2026

glslstruct last update year

◆ GLSL_STRUCT_VERSION

#define GLSL_STRUCT_VERSION   GLSL_STRUCT_VERSION_STRING

glslstruct version string

◆ GLSL_STRUCT_VERSION_INT

glslstruct version int

◆ GLSL_STRUCT_VERSION_MAJOR

#define GLSL_STRUCT_VERSION_MAJOR   1

glslstruct version major number

◆ GLSL_STRUCT_VERSION_MINOR

#define GLSL_STRUCT_VERSION_MINOR   4

glslstruct version minor number

◆ GLSL_STRUCT_VERSION_PATCH

#define GLSL_STRUCT_VERSION_PATCH   0

glslstruct version patch number

◆ GLSL_STRUCT_VERSION_STRING

glslstruct version string

Typedef Documentation

◆ array_type_handle

using glslstruct::array_type_handle = std::shared_ptr<array_type>

array_type container handle

◆ base_type_handle

using glslstruct::base_type_handle = std::shared_ptr<base_type>

base_type container handle

◆ mat_type_handle

using glslstruct::mat_type_handle = std::shared_ptr<mat_type>

mat_type container handle

◆ scalar_layout

scalar layout representation

◆ scalar_parser

parser for scalar layout

◆ scalar_struct

scalar struct representation

◆ scalar_type_handle

using glslstruct::scalar_type_handle = std::shared_ptr<scalar_type>

scalar_type container handle

◆ std140_layout

std140 layout representation

◆ std140_parser

parser for std140 layout

◆ std140_struct

std140 struct representation

◆ std430_layout

std430 layout representation

◆ std430_parser

parser for std430 layout

◆ std430_struct

std430 struct representation

◆ struct_type_handle

using glslstruct::struct_type_handle = std::shared_ptr<struct_type>

struct_type container handle

◆ type_handle

template<class Derived>
using glslstruct::type_handle = std::shared_ptr<type<Derived> >

type container handle

Template Parameters
Derivedderived type

◆ vec_type_handle

using glslstruct::vec_type_handle = std::shared_ptr<vec_type>

vec_type container handle

Function Documentation

◆ ceil_to_nearest_multiple()

size_t glslstruct::ceil_to_nearest_multiple ( size_t valueToRoundUp,
size_t multipleValue )
nodiscardnoexcept

returns value rounded up to nearest multiple of given value

◆ ENUM_CLASS_BASE()

glslstruct::ENUM_CLASS_BASE ( ValueType ,
uint8_t ,
(Bool) ,
(Int) ,
(Uint) ,
(Float) ,
(Double)  )
nodiscardnoexcept

Value Type Enum.

Converts type to ValueType Enum value

Template Parameters
Ttype of scalar to convert to ValueType enum (only works for { bool, int, unsigned int, float, double })

◆ get_array_elem_name()

std::string glslstruct::get_array_elem_name ( std::string_view arrayName,
size_t elemIdx )
nodiscard

returns array elem name

◆ get_struct_elem_name()

std::string glslstruct::get_struct_elem_name ( std::string_view structName,
std::string_view elemName )
nodiscard

returns struct elem name

◆ get_value_type_size()

size_t glslstruct::get_value_type_size ( ValueType type)
nodiscard

Returns glsl type size of scalar.

Parameters
typescalar value type