From 62988549a1810814d590c7852741e4aa5b72eec9 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Wed, 19 Dec 2012 08:13:41 +0000 Subject: Multirs baker: support for threaded baking --- source/blender/editors/object/object_bake.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'source/blender/editors/object/object_bake.c') diff --git a/source/blender/editors/object/object_bake.c b/source/blender/editors/object/object_bake.c index 8b40379f88d..6feb8096aff 100644 --- a/source/blender/editors/object/object_bake.c +++ b/source/blender/editors/object/object_bake.c @@ -100,6 +100,7 @@ typedef struct { float bias; int raytrace_structure; int octree_resolution; + int threads; } MultiresBakeJob; static int multiresbake_check(bContext *C, wmOperator *op) @@ -319,6 +320,7 @@ static int multiresbake_image_exec_locked(bContext *C, wmOperator *op) bkr.number_of_rays = scene->r.bake_rays_number; bkr.raytrace_structure = scene->r.raytrace_structure; bkr.octree_resolution = scene->r.ocres; + bkr.threads = scene->r.mode & R_FIXED_THREADS ? scene->r.threads : 0; /* create low-resolution DM (to bake to) and hi-resolution DM (to bake from) */ bkr.hires_dm = multiresbake_create_hiresdm(scene, ob, &bkr.tot_lvl, &bkr.simple); @@ -356,6 +358,7 @@ static void init_multiresbake_job(bContext *C, MultiresBakeJob *bkj) bkj->number_of_rays = scene->r.bake_rays_number; bkj->raytrace_structure = scene->r.raytrace_structure; bkj->octree_resolution = scene->r.ocres; + bkj->threads = scene->r.mode & R_FIXED_THREADS ? scene->r.threads : 0; CTX_DATA_BEGIN (C, Base *, base, selected_editable_bases) { @@ -422,6 +425,7 @@ static void multiresbake_startjob(void *bkv, short *stop, short *do_update, floa bkr.number_of_rays = bkj->number_of_rays; bkr.raytrace_structure = bkj->raytrace_structure; bkr.octree_resolution = bkj->octree_resolution; + bkr.threads = bkj->threads; RE_multires_bake_images(&bkr); -- cgit v1.2.3