88 memcpy(&f, &float_bits,
sizeof(
uint32_t));
96 MEM_CXX_CLASS_ALLOC_FUNCS(
"cryptomatte:CryptomatteLayer")
103 std::optional<std::
string> operator[](
float encoded_hash) const;
118 static void extract_layer_names(
void *_data,
119 const char *propname,
121 int propvalue_maxncpy);
123 static void extract_layer_manifest(
void *_data,
124 const char *propname,
126 int propvalue_maxncpy);
void BKE_cryptomatte_free(struct CryptomatteSession *session)
uint32_t BLI_hash_mm3(const unsigned char *data, size_t len, uint32_t seed)
StringRef BKE_cryptomatte_extract_layer_name(StringRef render_pass_name)
std::unique_ptr< CryptomatteSession, CryptomatteSessionDeleter > CryptomatteSessionPtr
CryptomatteLayer * BKE_cryptomatte_layer_get(CryptomatteSession &session, StringRef layer_name)
std::string BKE_cryptomatte_meta_data_key(StringRef layer_name, StringRefNull key_name)
const blender::Vector< std::string > & BKE_cryptomatte_layer_names_get(const CryptomatteSession &session)
static CryptomatteHash from_hex_encoded(blender::StringRef hex_encoded)
CryptomatteHash(const char *name, int name_len)
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::string manifest() const
uint32_t add_ID(const ID &id)
void operator()(CryptomatteSession *session)
blender::Map< std::string, std::string > hash_to_layer_name
CryptomatteSession * session