Add Chromium-only Blender WebEngine parity work
This commit is contained in:
63
blender-5.2.0/source/blender/blenkernel/BKE_cryptomatte.h
Normal file
63
blender-5.2.0/source/blender/blenkernel/BKE_cryptomatte.h
Normal file
@@ -0,0 +1,63 @@
|
||||
/* SPDX-FileCopyrightText: 2020 Blender Authors
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later */
|
||||
|
||||
/** \file
|
||||
* \ingroup bke
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "BLI_sys_types.h"
|
||||
#include "DNA_layer_types.h"
|
||||
|
||||
namespace blender {
|
||||
|
||||
/* Forward declarations. */
|
||||
struct CryptomatteSession;
|
||||
struct Main;
|
||||
struct Material;
|
||||
struct Object;
|
||||
struct RenderResult;
|
||||
struct Scene;
|
||||
|
||||
struct CryptomatteSession *BKE_cryptomatte_init();
|
||||
struct CryptomatteSession *BKE_cryptomatte_init_from_render_result(
|
||||
const struct RenderResult *render_result);
|
||||
/* Initializes a cryptomatte session from the view layers of the given scene. If build_meta_data is
|
||||
* true, the object and material IDs in the view layer will be hashed and added to the Cryptomatte
|
||||
* layers, allowing hash-name lookups. */
|
||||
struct CryptomatteSession *BKE_cryptomatte_init_from_scene(const struct Scene *scene,
|
||||
bool build_meta_data);
|
||||
struct CryptomatteSession *BKE_cryptomatte_init_from_view_layer(
|
||||
const struct ViewLayer *view_layer);
|
||||
void BKE_cryptomatte_free(struct CryptomatteSession *session);
|
||||
void BKE_cryptomatte_add_layer(struct CryptomatteSession *session, const char *layer_name);
|
||||
|
||||
uint32_t BKE_cryptomatte_hash(const char *name, int name_len);
|
||||
uint32_t BKE_cryptomatte_object_hash(struct CryptomatteSession *session,
|
||||
const char *layer_name,
|
||||
const struct Object *object);
|
||||
uint32_t BKE_cryptomatte_material_hash(struct CryptomatteSession *session,
|
||||
const char *layer_name,
|
||||
const struct Material *material);
|
||||
uint32_t BKE_cryptomatte_asset_hash(struct CryptomatteSession *session,
|
||||
const char *layer_name,
|
||||
const struct Object *object);
|
||||
float BKE_cryptomatte_hash_to_float(uint32_t cryptomatte_hash);
|
||||
/**
|
||||
* Find an ID in the given main that matches the given encoded float.
|
||||
*/
|
||||
bool BKE_cryptomatte_find_name(const struct CryptomatteSession *session,
|
||||
float encoded_hash,
|
||||
char *r_name,
|
||||
int name_maxncpy);
|
||||
|
||||
char *BKE_cryptomatte_entries_to_matte_id(struct NodeCryptomatte *node_storage);
|
||||
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);
|
||||
|
||||
} // namespace blender
|
||||
Reference in New Issue
Block a user