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:
authorCampbell Barton <ideasman42@gmail.com>2008-05-14 20:40:25 +0400
committerCampbell Barton <ideasman42@gmail.com>2008-05-14 20:40:25 +0400
commit540c0e07952304aa67ec98be4dc01b17afa78cb1 (patch)
tree982cb379dfabc37de803e0c9910d763d3b29acc3
parentb65d4f95fc6ff35d93dc1f8bbc07f10b7e15ea2c (diff)
uvcalc_lightmap would raise an error on meshes with no faces.
auto-threads wasnt working for baking.
-rw-r--r--release/scripts/uvcalc_lightmap.py4
-rw-r--r--source/blender/render/extern/include/RE_pipeline.h3
-rw-r--r--source/blender/render/intern/source/convertblender.c3
-rw-r--r--source/blender/render/intern/source/pipeline.c9
4 files changed, 17 insertions, 2 deletions
diff --git a/release/scripts/uvcalc_lightmap.py b/release/scripts/uvcalc_lightmap.py
index 3b7c3ac7cf9..bd5a72995cb 100644
--- a/release/scripts/uvcalc_lightmap.py
+++ b/release/scripts/uvcalc_lightmap.py
@@ -517,7 +517,7 @@ def main():
if not Draw.PupBlock('Lightmap Pack', [\
'Context...',
- ('Active Object', PREF_ACT_ONLY, 'If disabled, use all objects for packing the lightmap.'),\
+ ('Active Object', PREF_ACT_ONLY, 'If disabled, include other selected objects for packing the lightmap.'),\
('Selected Faces', PREF_SEL_ONLY, 'Use only selected faces from all selected meshes.'),\
'Image & UVs...',
('Share Tex Space', PREF_PACK_IN_ONE, 'Objects Share texture space, map all objects into 1 uvmap'),\
@@ -538,7 +538,7 @@ def main():
return
meshes = [ ob.getData(mesh=1) ]
else:
- meshes = dict([ (me.name, me) for ob in scn.objects.context for me in (ob.getData(mesh=1),) if not me.lib])
+ meshes = dict([ (me.name, me) for ob in scn.objects.context for me in (ob.getData(mesh=1),) if not me.lib if len(me.faces)])
meshes = meshes.values()
if not meshes:
Draw.PupMenu('Error%t|No mesh objects selected.')
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h
index d8f6836005b..66dc1dd5fef 100644
--- a/source/blender/render/extern/include/RE_pipeline.h
+++ b/source/blender/render/extern/include/RE_pipeline.h
@@ -177,6 +177,9 @@ void RE_DataBase_ApplyWindow(struct Render *re);
/* override the scene setting for amount threads, commandline */
void RE_set_max_threads(int threads);
+/* set the render threads based on the commandline and autothreads setting */
+void RE_init_threadcount(Render *re);
+
/* the main processor, assumes all was set OK! */
void RE_TileProcessor(struct Render *re, int firsttile, int threaded);
diff --git a/source/blender/render/intern/source/convertblender.c b/source/blender/render/intern/source/convertblender.c
index 33cad2789c6..dbade68ba1d 100644
--- a/source/blender/render/intern/source/convertblender.c
+++ b/source/blender/render/intern/source/convertblender.c
@@ -5417,6 +5417,9 @@ void RE_Database_Baking(Render *re, Scene *scene, int type, Object *actob)
/* renderdata setup and exceptions */
re->r= scene->r;
+
+ RE_init_threadcount(re);
+
re->flag |= R_GLOB_NOPUNOFLIP;
re->excludeob= actob;
if(type == RE_BAKE_LIGHT)
diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c
index 93282e641d3..857269cb44d 100644
--- a/source/blender/render/intern/source/pipeline.c
+++ b/source/blender/render/intern/source/pipeline.c
@@ -2675,3 +2675,12 @@ void RE_set_max_threads(int threads)
printf("Error, threads has to be in range 1-%d\n", BLENDER_MAX_THREADS);
}
}
+
+void RE_init_threadcount(Render *re)
+{
+ if ((re->r.mode & R_FIXED_THREADS)==0 || commandline_threads == 0) { /* Automatic threads */
+ re->r.threads = BLI_system_thread_count();
+ } else if(commandline_threads >= 1 && commandline_threads<=BLENDER_MAX_THREADS) {
+ re->r.threads= commandline_threads;
+ }
+}