[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [30936] trunk/blender/source: 2.5: code changes to reduce the usage of G.main and pass it along

Brecht Van Lommel brecht at blender.org
Sun Aug 1 14:47:50 CEST 2010


Revision: 30936
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=30936
Author:   blendix
Date:     2010-08-01 14:47:49 +0200 (Sun, 01 Aug 2010)

Log Message:
-----------
2.5: code changes to reduce the usage of G.main and pass it along
or get it from the context instead.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_depsgraph.h
    trunk/blender/source/blender/blenkernel/BKE_material.h
    trunk/blender/source/blender/blenkernel/BKE_pointcache.h
    trunk/blender/source/blender/blenkernel/BKE_scene.h
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenkernel/intern/blender.c
    trunk/blender/source/blender/blenkernel/intern/depsgraph.c
    trunk/blender/source/blender/blenkernel/intern/material.c
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenkernel/intern/pointcache.c
    trunk/blender/source/blender/blenkernel/intern/scene.c
    trunk/blender/source/blender/blenkernel/intern/sequencer.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/animation/drivers.c
    trunk/blender/source/blender/editors/animation/keyframing.c
    trunk/blender/source/blender/editors/animation/keyingsets.c
    trunk/blender/source/blender/editors/armature/editarmature.c
    trunk/blender/source/blender/editors/curve/editcurve.c
    trunk/blender/source/blender/editors/include/ED_object.h
    trunk/blender/source/blender/editors/interface/interface_templates.c
    trunk/blender/source/blender/editors/interface/resources.c
    trunk/blender/source/blender/editors/mesh/editmesh.c
    trunk/blender/source/blender/editors/mesh/meshtools.c
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/editors/object/object_constraint.c
    trunk/blender/source/blender/editors/object/object_edit.c
    trunk/blender/source/blender/editors/object/object_group.c
    trunk/blender/source/blender/editors/object/object_hook.c
    trunk/blender/source/blender/editors/object/object_modifier.c
    trunk/blender/source/blender/editors/object/object_relations.c
    trunk/blender/source/blender/editors/object/object_transform.c
    trunk/blender/source/blender/editors/physics/particle_boids.c
    trunk/blender/source/blender/editors/physics/particle_object.c
    trunk/blender/source/blender/editors/render/render_internal.c
    trunk/blender/source/blender/editors/render/render_opengl.c
    trunk/blender/source/blender/editors/render/render_preview.c
    trunk/blender/source/blender/editors/screen/screen_edit.c
    trunk/blender/source/blender/editors/screen/screen_ops.c
    trunk/blender/source/blender/editors/space_graph/graph_buttons.c
    trunk/blender/source/blender/editors/space_logic/logic_window.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/editors/space_outliner/outliner.c
    trunk/blender/source/blender/editors/space_text/text_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_buttons.c
    trunk/blender/source/blender/editors/space_view3d/view3d_header.c
    trunk/blender/source/blender/editors/space_view3d/view3d_snap.c
    trunk/blender/source/blender/editors/space_view3d/view3d_view.c
    trunk/blender/source/blender/editors/transform/transform_conversions.c
    trunk/blender/source/blender/editors/util/ed_util.c
    trunk/blender/source/blender/makesrna/intern/rna_boid.c
    trunk/blender/source/blender/makesrna/intern/rna_constraint.c
    trunk/blender/source/blender/makesrna/intern/rna_curve.c
    trunk/blender/source/blender/makesrna/intern/rna_fcurve.c
    trunk/blender/source/blender/makesrna/intern/rna_modifier.c
    trunk/blender/source/blender/makesrna/intern/rna_object.c
    trunk/blender/source/blender/makesrna/intern/rna_object_force.c
    trunk/blender/source/blender/makesrna/intern/rna_particle.c
    trunk/blender/source/blender/makesrna/intern/rna_pose.c
    trunk/blender/source/blender/makesrna/intern/rna_scene.c
    trunk/blender/source/blender/makesrna/intern/rna_scene_api.c
    trunk/blender/source/blender/makesrna/intern/rna_smoke.c
    trunk/blender/source/blender/render/extern/include/RE_pipeline.h
    trunk/blender/source/blender/render/intern/include/render_types.h
    trunk/blender/source/blender/render/intern/include/texture.h
    trunk/blender/source/blender/render/intern/source/convertblender.c
    trunk/blender/source/blender/render/intern/source/envmap.c
    trunk/blender/source/blender/render/intern/source/pipeline.c
    trunk/blender/source/blender/render/intern/source/pointdensity.c
    trunk/blender/source/blender/render/intern/source/sss.c
    trunk/blender/source/blender/render/intern/source/texture.c
    trunk/blender/source/blender/render/intern/source/voxeldata.c
    trunk/blender/source/blender/windowmanager/intern/wm_event_system.c
    trunk/blender/source/blender/windowmanager/intern/wm_files.c
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c
    trunk/blender/source/creator/creator.c

Modified: trunk/blender/source/blender/blenkernel/BKE_depsgraph.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_depsgraph.h	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/BKE_depsgraph.h	2010-08-01 12:47:49 UTC (rev 30936)
@@ -70,7 +70,7 @@
 void	queue_delete(struct DagNodeQueue *queue);
 
 // queries
-struct DagForest	*build_dag(struct Scene *sce, short mask);
+struct DagForest	*build_dag(struct Main *bmain, struct Scene *sce, short mask);
 void				free_forest(struct DagForest *Dag);
 
 // note :
@@ -97,14 +97,14 @@
 /* Note that the DAG never executes changes in Objects, only sets flags in Objects */
 
 		/* (re)-create dependency graph for scene */
-void	DAG_scene_sort(struct Scene *sce);
+void	DAG_scene_sort(struct Main *bmain, struct Scene *sce);
 
 		/* flag all objects that need recalc because they're animated */
-void	DAG_scene_update_flags(struct Scene *sce, unsigned int lay);
+void	DAG_scene_update_flags(struct Main *bmain, struct Scene *sce, unsigned int lay);
 		/* flushes all recalc flags in objects down the dependency tree */
-void	DAG_scene_flush_update(struct Scene *sce, unsigned int lay, int time);
+void	DAG_scene_flush_update(struct Main *bmain, struct Scene *sce, unsigned int lay, int time);
 		/* tag objects for update on file load */
-void	DAG_on_load_update(void);
+void	DAG_on_load_update(struct Main *bmain);
 
 		/* flag all IDs that need recalc because they're animated, influencing
 		   this ID only. only for objects currently */
@@ -113,7 +113,7 @@
 		   but note the DAG only supports objects and object data currently */
 void	DAG_id_flush_update(struct ID *id, short flag);
 		/* when setting manual RECALC flags, call this afterwards */
-void	DAG_ids_flush_update(int time);
+void	DAG_ids_flush_update(struct Main *bmain, int time);
 
 		/* (re)-create dependency graph for armature pose */
 void	DAG_pose_sort(struct Object *ob);

Modified: trunk/blender/source/blender/blenkernel/BKE_material.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_material.h	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/BKE_material.h	2010-08-01 12:47:49 UTC (rev 30936)
@@ -35,6 +35,7 @@
 extern "C" {
 #endif
 
+struct Main;
 struct Material;
 struct ID;
 struct Object;
@@ -69,9 +70,9 @@
 /* rendering */
 
 void init_render_material(struct Material *, int, float *);
-void init_render_materials(int, float *);
+void init_render_materials(struct Main *, int, float *);
 void end_render_material(struct Material *);
-void end_render_materials(void);
+void end_render_materials(struct Main *);
 
 int material_in_material(struct Material *parmat, struct Material *mat);
 

Modified: trunk/blender/source/blender/blenkernel/BKE_pointcache.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_pointcache.h	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/BKE_pointcache.h	2010-08-01 12:47:49 UTC (rev 30936)
@@ -70,15 +70,16 @@
 #define PTCACHE_READ_OLD				3
 
 /* Structs */
+struct ClothModifierData;
+struct ListBase;
+struct Main;
 struct Object;
+struct ParticleKey;
+struct ParticleSystem;
+struct PointCache;
 struct Scene;
+struct SmokeModifierData;
 struct SoftBody;
-struct ParticleSystem;
-struct ParticleKey;
-struct ClothModifierData;
-struct SmokeModifierData;
-struct PointCache;
-struct ListBase;
 
 /* temp structure for read/write */
 typedef struct PTCacheData {
@@ -143,6 +144,7 @@
 } PTCacheID;
 
 typedef struct PTCacheBaker {
+	struct Main *main;
 	struct Scene *scene;
 	int bake;
 	int render;
@@ -286,7 +288,7 @@
 /********************** Baking *********************/
 
 /* Bakes cache with cache_step sized jumps in time, not accurate but very fast. */
-void BKE_ptcache_quick_cache_all(struct Scene *scene);
+void BKE_ptcache_quick_cache_all(struct Main *bmain, struct Scene *scene);
 
 /* Bake cache or simulate to current frame with settings defined in the baker. */
 void BKE_ptcache_make_cache(struct PTCacheBaker* baker);

Modified: trunk/blender/source/blender/blenkernel/BKE_scene.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_scene.h	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/BKE_scene.h	2010-08-01 12:47:49 UTC (rev 30936)
@@ -82,8 +82,8 @@
 
 float BKE_curframe(struct Scene *scene);
 
-void scene_update_tagged(struct Scene *sce);
-void scene_update_for_newframe(struct Scene *sce, unsigned int lay);
+void scene_update_tagged(struct Main *bmain, struct Scene *sce);
+void scene_update_for_newframe(struct Main *bmain, struct Scene *sce, unsigned int lay);
 
 void scene_add_render_layer(struct Scene *sce);
 

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c	2010-08-01 12:47:49 UTC (rev 30936)
@@ -289,7 +289,7 @@
 	}
 	
 	/* "brew me a list that's sorted a bit faster now depsy" */
-	DAG_scene_sort(scene);
+	DAG_scene_sort(G.main, scene);
 }
 
 /* update scene for current frame */
@@ -299,7 +299,7 @@
 	Base *base, *last=NULL;
 	
 	/* only stuff that moves or needs display still */
-	DAG_scene_update_flags(scene, scene->lay);
+	DAG_scene_update_flags(G.main, scene, scene->lay);
 	
 	/* find the last object with the tag 
 	 *	- all those afterwards are assumed to not be relevant for our calculations
@@ -327,7 +327,7 @@
 	 * 	  that doesn't force complete update, but for now, this is the
 	 *	  most accurate way!
 	 */
-	scene_update_for_newframe(scene, scene->lay); // XXX this is the best way we can get anything moving
+	scene_update_for_newframe(G.main, scene, scene->lay); // XXX this is the best way we can get anything moving
 #endif
 }
 

Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c	2010-08-01 12:47:49 UTC (rev 30936)
@@ -478,7 +478,7 @@
 	G.fileflags= fileflags;
 
 	if(success)
-		DAG_on_load_update();
+		DAG_on_load_update(G.main);
 
 	return success;
 }

Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2010-08-01 12:16:32 UTC (rev 30935)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c	2010-08-01 12:47:49 UTC (rev 30936)
@@ -658,7 +658,7 @@
 		dag_add_relation(dag,scenenode,node,DAG_RL_SCENE, "Scene Relation");
 }
 
-struct DagForest *build_dag(struct Scene *sce, short mask) 
+struct DagForest *build_dag(Main *bmain, Scene *sce, short mask) 
 {
 	Base *base;
 	Object *ob;
@@ -695,7 +695,7 @@
 	}
 	
 	/* add groups used in current scene objects */
-	for(group= G.main->group.first; group; group= group->id.next) {
+	for(group= bmain->group.first; group; group= group->id.next) {
 		if(group->id.flag & LIB_DOIT) {
 			for(go= group->gobject.first; go; go= go->next) {
 				build_dag_object(dag, scenenode, sce, go->ob, mask);
@@ -1605,7 +1605,7 @@
 }
 
 /* groups with objects in this scene need to be put in the right order as well */
-static void scene_sort_groups(Scene *sce)
+static void scene_sort_groups(Main *bmain, Scene *sce)
 {
 	Base *base;
 	Group *group;
@@ -1613,14 +1613,14 @@
 	Object *ob;
 	
 	/* test; are group objects all in this scene? */
-	for(ob= G.main->object.first; ob; ob= ob->id.next) {
+	for(ob= bmain->object.first; ob; ob= ob->id.next) {
 		ob->id.flag &= ~LIB_DOIT;
 		ob->id.newid= NULL;	/* newid abuse for GroupObject */
 	}
 	for(base = sce->base.first; base; base= base->next)
 		base->object->id.flag |= LIB_DOIT;
 	
-	for(group= G.main->group.first; group; group= group->id.next) {
+	for(group= bmain->group.first; group; group= group->id.next) {
 		for(go= group->gobject.first; go; go= go->next) {
 			if((go->ob->id.flag & LIB_DOIT)==0)
 				break;
@@ -1649,7 +1649,7 @@
 }
 
 /* sort the base list on dependency order */
-void DAG_scene_sort(struct Scene *sce)
+void DAG_scene_sort(Main *bmain, Scene *sce)
 {
 	DagNode *node;
 	DagNodeQueue *nqueue;
@@ -1661,7 +1661,7 @@
 	
 	tempbase.first= tempbase.last= NULL;
 	
-	build_dag(sce, DAG_RL_ALL_BUT_DATA);
+	build_dag(bmain, sce, DAG_RL_ALL_BUT_DATA);
 	
 	dag_check_cycle(sce->theDag);
 
@@ -1731,7 +1731,7 @@
 	queue_delete(nqueue);
 	
 	/* all groups with objects in this scene gets resorted too */
-	scene_sort_groups(sce);
+	scene_sort_groups(bmain, sce);
 	
 	if(G.f & G_DEBUG) {
 		printf("\nordered\n");
@@ -1926,7 +1926,7 @@
 }
 
 /* flushes all recalc flags in objects down the dependency tree */
-void DAG_scene_flush_update(Scene *sce, unsigned int lay, int time)
+void DAG_scene_flush_update(Main *bmain, Scene *sce, unsigned int lay, int time)
 {
 	DagNode *firstnode;
 	DagAdjList *itA;
@@ -1935,7 +1935,7 @@
 	
 	if(sce->theDag==NULL) {
 		printf("DAG zero... not allowed to happen!\n");
-		DAG_scene_sort(sce);
+		DAG_scene_sort(bmain, sce);
 	}
 	
 	firstnode= sce->theDag->DagNode.first;  // always scene node
@@ -2135,7 +2135,7 @@
 	}		
 }
 /* flag all objects that need recalc, for changes in time for example */
-void DAG_scene_update_flags(Scene *scene, unsigned int lay)
+void DAG_scene_update_flags(Main *bmain, Scene *scene, unsigned int lay)
 {
 	Base *base;
 	Object *ob;
@@ -2157,7 +2157,7 @@
 	}	
 	
 	/* we do groups each once */
-	for(group= G.main->group.first; group; group= group->id.next) {
+	for(group= bmain->group.first; group; group= group->id.next) {
 		if(group->id.flag & LIB_DOIT) {
 			for(go= group->gobject.first; go; go= go->next) {
 				dag_object_time_update_flags(go->ob);
@@ -2166,7 +2166,7 @@
 	}
 	
 	for(sce= scene; sce; sce= sce->set)
-		DAG_scene_flush_update(sce, lay, 1);
+		DAG_scene_flush_update(bmain, sce, lay, 1);
 	
 	/* test: set time flag, to disable baked systems to update */
 	for(SETLOOPER(scene, base)) {
@@ -2223,21 +2223,19 @@
 	}
 }
 
-void DAG_ids_flush_update(int time)
+void DAG_ids_flush_update(Main *bmain, int time)
 {
-	Main *bmain= G.main;
 	Scene *sce;
 	unsigned int lay;
 

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list