Class ParsedIR

Nested Relationships

Nested Types

Class Documentation

class ParsedIR

Public Types

enum BlockMetaFlagBits

Values:

enumerator BLOCK_META_LOOP_HEADER_BIT
enumerator BLOCK_META_CONTINUE_BIT
enumerator BLOCK_META_LOOP_MERGE_BIT
enumerator BLOCK_META_SELECTION_MERGE_BIT
enumerator BLOCK_META_MULTISELECT_MERGE_BIT
using BlockMetaFlags = uint8_t

Public Functions

ParsedIR()
ParsedIR(const ParsedIR &other)
ParsedIR &operator=(const ParsedIR &other)
ParsedIR (ParsedIR &&other) SPIRV_CROSS_NOEXCEPT
ParsedIR & operator= (ParsedIR &&other) SPIRV_CROSS_NOEXCEPT
void set_id_bounds(uint32_t bounds)
void set_name(ID id, const std::string &name)
const std::string &get_name(ID id) const
void set_decoration(ID id, spv::Decoration decoration, uint32_t argument = 0)
void set_decoration_string(ID id, spv::Decoration decoration, const std::string &argument)
bool has_decoration(ID id, spv::Decoration decoration) const
uint32_t get_decoration(ID id, spv::Decoration decoration) const
const std::string &get_decoration_string(ID id, spv::Decoration decoration) const
const Bitset &get_decoration_bitset(ID id) const
void unset_decoration(ID id, spv::Decoration decoration)
void set_member_name(TypeID id, uint32_t index, const std::string &name)
const std::string &get_member_name(TypeID id, uint32_t index) const
void set_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration, uint32_t argument = 0)
void set_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration, const std::string &argument)
uint32_t get_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration) const
const std::string &get_member_decoration_string(TypeID id, uint32_t index, spv::Decoration decoration) const
bool has_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration) const
const Bitset &get_member_decoration_bitset(TypeID id, uint32_t index) const
void unset_member_decoration(TypeID id, uint32_t index, spv::Decoration decoration)
void mark_used_as_array_length(ID id)
uint32_t increase_bound_by(uint32_t count)
Bitset get_buffer_block_flags(const SPIRVariable &var) const
Bitset get_buffer_block_type_flags(const SPIRType &type) const
void add_typed_id(Types type, ID id)
void remove_typed_id(Types type, ID id)
LoopLock create_loop_hard_lock() const
LoopLock create_loop_soft_lock() const
template<typename T, typename Op>
inline void for_each_typed_id(const Op &op)
template<typename T, typename Op>
inline void for_each_typed_id(const Op &op) const
template<typename T>
inline void reset_all_of_type()
void reset_all_of_type(Types type)
Meta *find_meta(ID id)
const Meta *find_meta(ID id) const
inline const std::string &get_empty_string() const
void make_constant_null(uint32_t id, uint32_t type, bool add_to_typed_id_set)
void fixup_reserved_names()
uint32_t get_spirv_version() const

Public Members

std::vector<uint32_t> spirv
SmallVector<Variant> ids
std::unordered_map<ID, Meta> meta
SmallVector<ID> ids_for_type[TypeCount]
SmallVector<ID> ids_for_constant_undef_or_type
SmallVector<ID> ids_for_constant_or_variable
std::unordered_map<ID, uint32_t> load_type_width
SmallVector<spv::Capability> declared_capabilities
SmallVector<std::string> declared_extensions
SmallVector<BlockMetaFlags> block_meta
std::unordered_map<BlockID, BlockID> continue_block_to_loop_header
std::unordered_map<FunctionID, SPIREntryPoint> entry_points
FunctionID default_entry_point = 0
Source source
spv::AddressingModel addressing_model = spv::AddressingModelMax
spv::MemoryModel memory_model = spv::MemoryModelMax

Public Static Functions

static void sanitize_underscores(std::string &str)
static void sanitize_identifier(std::string &str, bool member, bool allow_reserved_prefixes)
static bool is_globally_reserved_identifier(std::string &str, bool allow_reserved_prefixes)
class LoopLock

Public Functions

explicit LoopLock(uint32_t *counter)
LoopLock(const LoopLock&) = delete
void operator=(const LoopLock&) = delete
LoopLock (LoopLock &&other) SPIRV_CROSS_NOEXCEPT
LoopLock & operator= (LoopLock &&other) SPIRV_CROSS_NOEXCEPT
~LoopLock()
struct Source

Public Functions

Source() = default

Public Members

uint32_t version = 0
bool es = false
bool known = false
bool hlsl = false