[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [34912] trunk/blender/source/blender: Bugfix #26096

Ton Roosendaal ton at blender.org
Wed Feb 16 19:04:04 CET 2011


Revision: 34912
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=34912
Author:   ton
Date:     2011-02-16 18:04:03 +0000 (Wed, 16 Feb 2011)
Log Message:
-----------
Bugfix #26096

Switching layers reveiled hidden objects in wrong positions, changes
are currently not being handled for hidden objects. 
Only way to fix it is by completely update newly visible objects...

(Also fixed a typo and a compile warning)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_header.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/makesrna/intern/rna_material.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_header.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_header.c	2011-02-16 17:31:04 UTC (rev 34911)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_header.c	2011-02-16 18:04:03 UTC (rev 34912)
@@ -139,10 +139,11 @@
 
 static int view3d_layers_exec(bContext *C, wmOperator *op)
 {
-	Main *bmain= CTX_data_main(C);
 	Scene *scene= CTX_data_scene(C);
 	ScrArea *sa= CTX_wm_area(C);
 	View3D *v3d= sa->spacedata.first;
+	Base *base;
+	int oldlay= v3d->lay;
 	int nr= RNA_int_get(op->ptr, "nr");
 	int toggle= RNA_boolean_get(op->ptr, "toggle");
 	
@@ -200,8 +201,14 @@
 	
 	if(v3d->scenelock) handle_view3d_lock(C);
 	
-	/* new layers might need unflushed events events */
-	DAG_scene_update_flags(bmain, scene, v3d->lay, FALSE);	/* tags all that moves and flushes */
+	/* XXX new layers might need updates, there is no provision yet to detect if that's needed */
+	oldlay= ~oldlay & v3d->lay;
+	for (base= scene->base.first; base; base= base->next) {
+		if(base->lay & oldlay)
+			base->object->recalc= OB_RECALC_OB|OB_RECALC_DATA;
+		if(base->lay & oldlay)
+			printf("recalc %s\n", base->object->id.name+2);
+	}
 
 	ED_area_tag_redraw(sa);
 	

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2011-02-16 17:31:04 UTC (rev 34911)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2011-02-16 18:04:03 UTC (rev 34912)
@@ -1941,6 +1941,7 @@
 	}
 }
 
+#if 0
 static void createTransBMeshVerts(TransInfo *t, BME_Mesh *bm, BME_TransData_Head *td) {
 	BME_Vert *v;
 	BME_TransData *vtd;
@@ -1965,6 +1966,7 @@
 	 * (i.e. we can't depend on td->len to determine the number of actual elements) */
 	t->total = i;
 }
+#endif
 
 static void createTransEditVerts(bContext *C, TransInfo *t)
 {

Modified: trunk/blender/source/blender/makesrna/intern/rna_material.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_material.c	2011-02-16 17:31:04 UTC (rev 34911)
+++ trunk/blender/source/blender/makesrna/intern/rna_material.c	2011-02-16 18:04:03 UTC (rev 34912)
@@ -1875,7 +1875,7 @@
 	
 	func= RNA_def_function(srna, "clear", "rna_mtex_texture_slots_clear");
 	RNA_def_function_flag(func, FUNC_USE_SELF_ID|FUNC_NO_SELF|FUNC_USE_CONTEXT|FUNC_USE_REPORTS);
-	parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "Index", "Slot index to clar.", 0, INT_MAX);
+	parm= RNA_def_int(func, "index", 0, 0, INT_MAX, "Index", "Slot index to clear.", 0, INT_MAX);
 	RNA_def_property_flag(parm, PROP_REQUIRED);
 }
 




More information about the Bf-blender-cvs mailing list