79 #ifdef WITH_CXX_GUARDEDALLOC
80 MEM_CXX_CLASS_ALLOC_FUNCS(
"cryptomatte:CryptomatteLayer")
88 std::optional<std::string>
operator[](
float encoded_hash)
const;
void BKE_cryptomatte_free(struct CryptomatteSession *session)
StringRef BKE_cryptomatte_extract_layer_name(const StringRef render_pass_name)
std::string BKE_cryptomatte_meta_data_key(const StringRef layer_name, const StringRefNull key_name)
std::unique_ptr< CryptomatteSession, CryptomatteSessionDeleter > CryptomatteSessionPtr
const blender::Vector< std::string > & BKE_cryptomatte_layer_names_get(const CryptomatteSession &session)
static CryptomatteHash from_hex_encoded(blender::StringRef hex_encoded)
CryptomatteHash(uint32_t hash)
std::string hex_encoded() const
float float_encoded() const
void add_hash(blender::StringRef name, CryptomatteHash cryptomatte_hash)
blender::Map< std::string, CryptomatteHash > hashes
static std::unique_ptr< CryptomatteLayer > read_from_manifest(blender::StringRefNull manifest)
std::optional< std::string > operator[](float encoded_hash) const
std::string manifest() const
uint32_t add_ID(const struct ID &id)
void operator()(CryptomatteSession *session)
static void extract_layer_names(void *_data, const char *propname, char *propvalue, int len)
static blender::StringRef extract_layer_hash(blender::StringRefNull key)
static void extract_layer_manifest(void *_data, const char *propname, char *propvalue, int len)
blender::Map< std::string, std::string > hash_to_layer_name
struct CryptomatteSession * session