Blender V4.3
BKE_cryptomatte.h
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2020 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "BLI_sys_types.h"
12#include "DNA_layer_types.h"
13
14#ifdef __cplusplus
15extern "C" {
16#endif
17
18/* Forward declarations. */
20struct Material;
21struct Object;
22struct RenderResult;
23struct Scene;
24
27 const struct RenderResult *render_result);
28/* Initializes a cryptomatte session from the view layers of the given scene. If build_meta_data is
29 * true, the object and material IDs in the view layer will be hashed and added to the Cryptomatte
30 * layers, allowing hash-name lookups. */
32 bool build_meta_data);
34 const struct ViewLayer *view_layer);
35void BKE_cryptomatte_free(struct CryptomatteSession *session);
36void BKE_cryptomatte_add_layer(struct CryptomatteSession *session, const char *layer_name);
37
38uint32_t BKE_cryptomatte_hash(const char *name, int name_len);
40 const char *layer_name,
41 const struct Object *object);
43 const char *layer_name,
44 const struct Material *material);
46 const char *layer_name,
47 const struct Object *object);
48float BKE_cryptomatte_hash_to_float(uint32_t cryptomatte_hash);
53 float encoded_hash,
54 char *r_name,
55 int name_maxncpy);
56
59 const char *matte_id);
60
62 struct RenderResult *render_result);
63
64#ifdef __cplusplus
65}
66#endif
void BKE_cryptomatte_add_layer(struct CryptomatteSession *session, const char *layer_name)
uint32_t BKE_cryptomatte_asset_hash(struct CryptomatteSession *session, const char *layer_name, const struct Object *object)
void BKE_cryptomatte_matte_id_to_entries(struct NodeCryptomatte *node_storage, const char *matte_id)
void BKE_cryptomatte_store_metadata(const struct CryptomatteSession *session, struct RenderResult *render_result)
float BKE_cryptomatte_hash_to_float(uint32_t cryptomatte_hash)
char * BKE_cryptomatte_entries_to_matte_id(struct NodeCryptomatte *node_storage)
struct CryptomatteSession * BKE_cryptomatte_init(void)
uint32_t BKE_cryptomatte_object_hash(struct CryptomatteSession *session, const char *layer_name, const struct Object *object)
struct CryptomatteSession * BKE_cryptomatte_init_from_view_layer(const struct ViewLayer *view_layer)
uint32_t BKE_cryptomatte_material_hash(struct CryptomatteSession *session, const char *layer_name, const struct Material *material)
uint32_t BKE_cryptomatte_hash(const char *name, int name_len)
bool BKE_cryptomatte_find_name(const struct CryptomatteSession *session, float encoded_hash, char *r_name, int name_maxncpy)
struct CryptomatteSession * BKE_cryptomatte_init_from_render_result(const struct RenderResult *render_result)
struct CryptomatteSession * BKE_cryptomatte_init_from_scene(const struct Scene *scene, bool build_meta_data)
void BKE_cryptomatte_free(struct CryptomatteSession *session)
unsigned int uint32_t
Definition stdint.h:80