general glsl writer
More...
#include <writer.hpp>
|
| | glsl_writer () |
| | default constructor
|
| template<class Type> |
| void | visit (Type &&varType) |
| | type visitor
|
| void | append_struct (std::string_view name, const struct_type &structType) |
| | appends struct with given name
|
| void | append_struct (const struct_type &structType) |
| | appends struct with generated name
|
| void | append_uniform_buffer (std::string_view layoutData, std::string_view name, const mstd::ordered_map< std::string, var_data > &variables, std::string_view varName="") |
| | appends uniform buffer
|
| void | append_shader_storage_buffer (std::string_view layoutData, std::string_view name, const mstd::ordered_map< std::string, var_data > &variables, std::string_view varName="", std::string_view qualifiers="") |
| | appends shader storage buffer
|
| const std::string & | to_string () const noexcept |
| | returns result string
|
|
| void | _append_struct_body (std::string_view structBody) |
| | appends struct body to result
|
| std::string | _get_struct_body (std::string_view type, std::string_view name, bool canHaveVariableSizeArray, const mstd::ordered_map< std::string, var_data > &variables) |
| | returns struct body string
|
| void | _append_buffer_body (std::string_view layoutData, std::string_view name, std::string_view bufferType, bool canHaveVariableSizeArray, const mstd::ordered_map< std::string, var_data > &variables, std::string_view varName="") |
| | appends buffer body to result
|
| void | _append_shader_storage_buffer_body (std::string_view layoutData, std::string_view name, const mstd::ordered_map< std::string, var_data > &variables, std::string_view varName="", std::string_view qualifiers="") |
| | appends shader storage buffer body (SSBO)
|
| bool | _contains_name (std::string_view name) |
| | returns true if struct, UBO or SSBO with given name already was appended
|
|
| static std::string | _get_layout (std::string_view layoutData) |
| | returns layout string
|
◆ glsl_writer()
| glsl_writer::glsl_writer |
( |
| ) |
|
|
default |
◆ _append_buffer_body()
| void glsl_writer::_append_buffer_body |
( |
std::string_view | layoutData, |
|
|
std::string_view | name, |
|
|
std::string_view | bufferType, |
|
|
bool | canHaveVariableSizeArray, |
|
|
const mstd::ordered_map< std::string, var_data > & | variables, |
|
|
std::string_view | varName = "" ) |
|
private |
appends buffer body to result
◆ _append_shader_storage_buffer_body()
| void glsl_writer::_append_shader_storage_buffer_body |
( |
std::string_view | layoutData, |
|
|
std::string_view | name, |
|
|
const mstd::ordered_map< std::string, var_data > & | variables, |
|
|
std::string_view | varName = "", |
|
|
std::string_view | qualifiers = "" ) |
|
private |
appends shader storage buffer body (SSBO)
◆ _append_struct_body()
| void glsl_writer::_append_struct_body |
( |
std::string_view | structBody | ) |
|
|
private |
appends struct body to result
◆ _contains_name()
| bool glsl_writer::_contains_name |
( |
std::string_view | name | ) |
|
|
nodiscardprivate |
returns true if struct, UBO or SSBO with given name already was appended
◆ _get_layout()
| std::string glsl_writer::_get_layout |
( |
std::string_view | layoutData | ) |
|
|
staticnodiscardprivate |
◆ _get_struct_body()
| std::string glsl_writer::_get_struct_body |
( |
std::string_view | type, |
|
|
std::string_view | name, |
|
|
bool | canHaveVariableSizeArray, |
|
|
const mstd::ordered_map< std::string, var_data > & | variables ) |
|
nodiscardprivate |
returns struct body string
◆ append_shader_storage_buffer()
| void glsl_writer::append_shader_storage_buffer |
( |
std::string_view | layoutData, |
|
|
std::string_view | name, |
|
|
const mstd::ordered_map< std::string, var_data > & | variables, |
|
|
std::string_view | varName = "", |
|
|
std::string_view | qualifiers = "" ) |
appends shader storage buffer
◆ append_struct() [1/2]
| void glsl_writer::append_struct |
( |
const struct_type & | structType | ) |
|
appends struct with generated name
◆ append_struct() [2/2]
| void glsl_writer::append_struct |
( |
std::string_view | name, |
|
|
const struct_type & | structType ) |
appends struct with given name
◆ append_uniform_buffer()
| void glsl_writer::append_uniform_buffer |
( |
std::string_view | layoutData, |
|
|
std::string_view | name, |
|
|
const mstd::ordered_map< std::string, var_data > & | variables, |
|
|
std::string_view | varName = "" ) |
◆ to_string()
| const std::string & glsl_writer::to_string |
( |
| ) |
const |
|
nodiscardnoexcept |
◆ visit()
template<class Type>
| void glslstruct::utils::glsl_writer::visit |
( |
Type && | varType | ) |
|
|
inline |
◆ _result
| std::string glslstruct::utils::glsl_writer::_result |
|
private |
◆ _structIdx
| size_t glslstruct::utils::glsl_writer::_structIdx = 0 |
|
private |
struct name generator idx
◆ _uniqueNames
| std::unordered_set<std::string> glslstruct::utils::glsl_writer::_uniqueNames |
|
private |
unique names of all strucs, UBOs and SSBOs
◆ _uniqueStructs
| mstd::ordered_map<struct_type, std::string> glslstruct::utils::glsl_writer::_uniqueStructs |
|
private |
struct name generator idx