[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13915] trunk/blender/source/blender/ blenkernel/intern/scene.c:
Brecht Van Lommel
brechtvanlommel at pandora.be
Fri Feb 29 14:29:18 CET 2008
Revision: 13915
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13915
Author: blendix
Date: 2008-02-29 14:29:15 +0100 (Fri, 29 Feb 2008)
Log Message:
-----------
Fix for bug rendering scene layers from the compositor and scene sets,
two functions were both using the same LIB_DOIT flag, gave conflicts.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/scene.c
Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c 2008-02-29 12:23:26 UTC (rev 13914)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c 2008-02-29 13:29:15 UTC (rev 13915)
@@ -503,27 +503,23 @@
int scene_check_setscene(Scene *sce)
{
Scene *scene;
+ int a, totscene;
if(sce->set==NULL) return 1;
- /* LIB_DOIT is the free flag to tag library data */
+ totscene= 0;
for(scene= G.main->scene.first; scene; scene= scene->id.next)
- scene->id.flag &= ~LIB_DOIT;
+ totscene++;
- scene= sce;
- while(scene->set) {
- scene->id.flag |= LIB_DOIT;
- /* when set has flag set, we got a cycle */
- if(scene->set->id.flag & LIB_DOIT)
- break;
- scene= scene->set;
+ for(a=0, scene=sce; scene->set; scene=scene->set, a++) {
+ /* more iterations than scenes means we have a cycle */
+ if(a > totscene) {
+ /* the tested scene gets zero'ed, that's typically current scene */
+ sce->set= NULL;
+ return 0;
+ }
}
-
- if(scene->set) {
- /* the tested scene gets zero'ed, that's typically current scene */
- sce->set= NULL;
- return 0;
- }
+
return 1;
}
More information about the Bf-blender-cvs
mailing list