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:
authorBrecht Van Lommel <brecht@blender.org>2020-12-23 18:39:36 +0300
committerBrecht Van Lommel <brecht@blender.org>2020-12-24 14:00:58 +0300
commit0b4fae7a51fb869c27d9407b8b5eadeb418d0bfc (patch)
treedfcaaa1048f91bbe766a8314325ea97c8493b534 /source/blender/render/intern/engine.c
parent58c697a9ecebdebfec2c50de49946908bd444070 (diff)
Cleanup: refactoring of bake code in preparation of vertex color baking
Split of internal/external image bake target code off into smaller functions and refactor associated data structures for clarity. Designed so that a vertex color bake target is easy to fit in. Also avoid passing in a huge number of arguments into the main baking function, pass a struct instead.
Diffstat (limited to 'source/blender/render/intern/engine.c')
-rw-r--r--source/blender/render/intern/engine.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/source/blender/render/intern/engine.c b/source/blender/render/intern/engine.c
index 5685911c42e..13faddfcd2f 100644
--- a/source/blender/render/intern/engine.c
+++ b/source/blender/render/intern/engine.c
@@ -663,8 +663,7 @@ bool RE_bake_engine(Render *re,
Object *object,
const int object_id,
const BakePixel pixel_array[],
- const BakeImages *bake_images,
- const int depth,
+ const BakeTargets *targets,
const eScenePassType pass_type,
const int pass_filter,
float result[])
@@ -707,14 +706,14 @@ bool RE_bake_engine(Render *re,
type->update(engine, re->main, engine->depsgraph);
}
- for (int i = 0; i < bake_images->size; i++) {
- const BakeImage *image = bake_images->data + i;
+ for (int i = 0; i < targets->num_images; i++) {
+ const BakeImage *image = targets->images + i;
engine->bake.pixels = pixel_array + image->offset;
- engine->bake.result = result + image->offset * depth;
+ engine->bake.result = result + image->offset * targets->num_channels;
engine->bake.width = image->width;
engine->bake.height = image->height;
- engine->bake.depth = depth;
+ engine->bake.depth = targets->num_channels;
engine->bake.object_id = object_id;
type->bake(