Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeroen Bakker <jbakker>2021-01-05 16:59:45 +0300
committerJeroen Bakker <jeroen@blender.org>2021-01-05 17:03:05 +0300
commit1f41bdc6f37fd091bb5649436f68335b10ade51f (patch)
tree699848cf8bff58bdf0e6d6b3cba54aa0d6a5e717 /source/blender/draw/intern
parent7cd6f667e33e60f3d53e465023bb75f90f499b07 (diff)
Eevee Cryptomatte: Store hashes in render result meta data
Stores cryptomatte hashes as meta data to the render result. Compositors could use this for lookup on names in stead of hashes. Differential Revision: https://developer.blender.org/D9553
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r--source/blender/draw/intern/DRW_render.h1
-rw-r--r--source/blender/draw/intern/draw_manager.c5
2 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h
index f133f3bc6d7..4a43107c612 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -131,6 +131,7 @@ typedef struct DrawEngineType {
struct RenderEngine *engine,
struct RenderLayer *layer,
const struct rcti *rect);
+ void (*store_metadata)(void *vedata, struct RenderResult *render_result);
} DrawEngineType;
/* Textures */
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index db701c384bd..1115d819659 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1911,6 +1911,11 @@ void DRW_render_to_image(RenderEngine *engine, struct Depsgraph *depsgraph)
RE_engine_end_result(engine, render_result, false, false, false);
+ if (engine_type->draw_engine->store_metadata) {
+ RenderResult *final_render_result = RE_engine_get_result(engine);
+ engine_type->draw_engine->store_metadata(data, final_render_result);
+ }
+
/* Force cache to reset. */
drw_viewport_cache_resize();