diff options
author | Brecht Van Lommel <brecht@blender.org> | 2020-12-23 18:39:36 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-12-24 14:00:58 +0300 |
commit | 0b4fae7a51fb869c27d9407b8b5eadeb418d0bfc (patch) | |
tree | dfcaaa1048f91bbe766a8314325ea97c8493b534 /source/blender/render/intern/engine.c | |
parent | 58c697a9ecebdebfec2c50de49946908bd444070 (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.c | 11 |
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( |