Commit: 5ff1d845ead05ac6ef952782ebd3ed98277ef6c5
Author: Bastien Montagne
Date:   Wed Jun 13 14:26:26 2018 +0200
Branches: master
https://developer.blender.org/rB5ff1d845ead05ac6ef952782ebd3ed98277ef6c5

Cleanup: moar ugly G.main removal...

Note that due to RNA get/setters issue, that one may actually add some
G.main usages to the total... But at least it's not hidden anymore in a
very low-level, dark corner of BKE pointcache code!

===================================================================

M       source/blender/blenkernel/BKE_pointcache.h
M       source/blender/blenkernel/intern/object.c
M       source/blender/blenkernel/intern/pointcache.c
M       source/blender/editors/include/ED_particle.h
M       source/blender/editors/object/object_edit.c
M       source/blender/editors/physics/particle_edit.c
M       source/blender/editors/physics/particle_edit_undo.c
M       source/blender/editors/physics/particle_object.c
M       source/blender/editors/physics/physics_intern.h
M       source/blender/editors/physics/physics_pointcache.c
M       source/blender/editors/space_time/space_time.c
M       source/blender/editors/space_view3d/drawobject.c
M       source/blender/editors/space_view3d/view3d_edit.c
M       source/blender/editors/transform/transform_conversions.c
M       source/blender/editors/transform/transform_generics.c
M       source/blender/editors/transform/transform_manipulator.c
M       source/blender/makesrna/intern/rna_object.c
M       source/blender/makesrna/intern/rna_object_force.c
M       source/blender/makesrna/intern/rna_sculpt_paint.c
M       source/blenderplayer/bad_level_call_stubs/stubs.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_pointcache.h 
b/source/blender/blenkernel/BKE_pointcache.h
index cb2438ec1f2..88e5a25958d 100644
--- a/source/blender/blenkernel/BKE_pointcache.h
+++ b/source/blender/blenkernel/BKE_pointcache.h
@@ -274,7 +274,8 @@ void BKE_ptcache_id_from_smoke(PTCacheID *pid, struct 
Object *ob, struct SmokeMo
 void BKE_ptcache_id_from_dynamicpaint(PTCacheID *pid, struct Object *ob, 
struct DynamicPaintSurface *surface);
 void BKE_ptcache_id_from_rigidbody(PTCacheID *pid, struct Object *ob, struct 
RigidBodyWorld *rbw);
 
-void BKE_ptcache_ids_from_object(struct ListBase *lb, struct Object *ob, 
struct Scene *scene, int duplis);
+void BKE_ptcache_ids_from_object(
+        struct Main *bmain, struct ListBase *lb, struct Object *ob, struct 
Scene *scene, int duplis);
 
 /***************** Global funcs ****************************/
 void BKE_ptcache_remove(void);
diff --git a/source/blender/blenkernel/intern/object.c 
b/source/blender/blenkernel/intern/object.c
index 1944b01827b..01e1192eb0c 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -3586,11 +3586,11 @@ bool BKE_object_modifier_use_time(Object *ob, 
ModifierData *md)
 }
 
 /* set "ignore cache" flag for all caches on this object */
-static void object_cacheIgnoreClear(Object *ob, int state)
+static void object_cacheIgnoreClear(Main *bmain, Object *ob, int state)
 {
        ListBase pidlist;
        PTCacheID *pid;
-       BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0);
+       BKE_ptcache_ids_from_object(bmain, &pidlist, ob, NULL, 0);
 
        for (pid = pidlist.first; pid; pid = pid->next) {
                if (pid->cache) {
@@ -3667,9 +3667,9 @@ bool BKE_object_modifier_update_subframe(
        if (update_mesh) {
                /* ignore cache clear during subframe updates
                 *  to not mess up cache validity */
-               object_cacheIgnoreClear(ob, 1);
+               object_cacheIgnoreClear(bmain, ob, 1);
                BKE_object_handle_update(bmain, eval_ctx, scene, ob);
-               object_cacheIgnoreClear(ob, 0);
+               object_cacheIgnoreClear(bmain, ob, 0);
        }
        else
                BKE_object_where_is_calc_time(scene, ob, frame);
diff --git a/source/blender/blenkernel/intern/pointcache.c 
b/source/blender/blenkernel/intern/pointcache.c
index 8d550e09b25..f96868e99ea 100644
--- a/source/blender/blenkernel/intern/pointcache.c
+++ b/source/blender/blenkernel/intern/pointcache.c
@@ -1648,7 +1648,7 @@ void BKE_ptcache_id_from_rigidbody(PTCacheID *pid, Object 
*ob, RigidBodyWorld *r
        pid->file_type = PTCACHE_FILE_PTCACHE;
 }
 
-void BKE_ptcache_ids_from_object(ListBase *lb, Object *ob, Scene *scene, int 
duplis)
+void BKE_ptcache_ids_from_object(Main *bmain, ListBase *lb, Object *ob, Scene 
*scene, int duplis)
 {
        PTCacheID *pid;
        ParticleSystem *psys;
@@ -1719,12 +1719,12 @@ void BKE_ptcache_ids_from_object(ListBase *lb, Object 
*ob, Scene *scene, int dup
        if (scene && (duplis-- > 0) && (ob->transflag & OB_DUPLI)) {
                ListBase *lb_dupli_ob;
                /* don't update the dupli groups, we only want their pid's */
-               if ((lb_dupli_ob = object_duplilist_ex(G.main, 
G.main->eval_ctx, scene, ob, false))) {
+               if ((lb_dupli_ob = object_duplilist_ex(bmain, bmain->eval_ctx, 
scene, ob, false))) {
                        DupliObject *dob;
                        for (dob= lb_dupli_ob->first; dob; dob= dob->next) {
                                if (dob->ob != ob) { /* avoids recursive loops 
with dupliframes: bug 22988 */
                                        ListBase lb_dupli_pid;
-                                       
BKE_ptcache_ids_from_object(&lb_dupli_pid, dob->ob, scene, duplis);
+                                       BKE_ptcache_ids_from_object(bmain, 
&lb_dupli_pid, dob->ob, scene, duplis);
                                        BLI_movelisttolist(lb, &lb_dupli_pid);
                                        if (lb_dupli_pid.first)
                                                printf("Adding Dupli\n");
@@ -3572,7 +3572,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
                                /* get all pids from the object and search for 
smoke low res */
                                ListBase pidlist2;
                                PTCacheID *pid2;
-                               BKE_ptcache_ids_from_object(&pidlist2, pid->ob, 
scene, MAX_DUPLI_RECUR);
+                               BKE_ptcache_ids_from_object(bmain, &pidlist2, 
pid->ob, scene, MAX_DUPLI_RECUR);
                                for (pid2=pidlist2.first; pid2; 
pid2=pid2->next) {
                                        if (pid2->type == 
PTCACHE_TYPE_SMOKE_DOMAIN) {
                                                if (pid2->cache && 
!(pid2->cache->flag & PTCACHE_BAKED)) {
@@ -3607,7 +3607,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
        else {
                for (SETLOOPER(scene, sce_iter, base)) {
                        /* cache/bake everything in the scene */
-                       BKE_ptcache_ids_from_object(&pidlist, base->object, 
scene, MAX_DUPLI_RECUR);
+                       BKE_ptcache_ids_from_object(bmain, &pidlist, 
base->object, scene, MAX_DUPLI_RECUR);
 
                        for (pid=pidlist.first; pid; pid=pid->next) {
                                cache = pid->cache;
@@ -3661,7 +3661,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
        stime = ptime = PIL_check_seconds_timer();
 
        for (int fr = CFRA; fr <= endframe; fr += baker->quick_step, CFRA = fr) 
{
-               BKE_scene_update_for_newframe(G.main->eval_ctx, bmain, scene, 
scene->lay);
+               BKE_scene_update_for_newframe(bmain->eval_ctx, bmain, scene, 
scene->lay);
 
                if (baker->update_progress) {
                        float progress = ((float)(CFRA - 
startframe)/(float)(endframe - startframe));
@@ -3717,7 +3717,7 @@ void BKE_ptcache_bake(PTCacheBaker *baker)
        }
        else {
                for (SETLOOPER(scene, sce_iter, base)) {
-                       BKE_ptcache_ids_from_object(&pidlist, base->object, 
scene, MAX_DUPLI_RECUR);
+                       BKE_ptcache_ids_from_object(bmain, &pidlist, 
base->object, scene, MAX_DUPLI_RECUR);
 
                        for (pid=pidlist.first; pid; pid=pid->next) {
                                /* skip hair particles */
diff --git a/source/blender/editors/include/ED_particle.h 
b/source/blender/editors/include/ED_particle.h
index 4f6aa1cc702..395eddf3edd 100644
--- a/source/blender/editors/include/ED_particle.h
+++ b/source/blender/editors/include/ED_particle.h
@@ -45,15 +45,15 @@ void PE_free_ptcache_edit(struct PTCacheEdit *edit);
 int PE_start_edit(struct PTCacheEdit *edit);
 
 /* access */
-struct PTCacheEdit *PE_get_current(struct Scene *scene, struct Object *ob);
-struct PTCacheEdit *PE_create_current(struct Scene *scene, struct Object *ob);
-void PE_current_changed(struct Scene *scene, struct Object *ob);
-int PE_minmax(struct Scene *scene, float min[3], float max[3]);
+struct PTCacheEdit *PE_get_current(struct Main *bmain, struct Scene *scene, 
struct Object *ob);
+struct PTCacheEdit *PE_create_current(struct Main *bmain, struct Scene *scene, 
struct Object *ob);
+void PE_current_changed(struct Main *bmain, struct Scene *scene, struct Object 
*ob);
+int PE_minmax(struct Main *bmain, struct Scene *scene, float min[3], float 
max[3]);
 struct ParticleEditSettings *PE_settings(struct Scene *scene);
 
 /* update calls */
 void PE_hide_keys_time(struct Scene *scene, struct PTCacheEdit *edit, float 
cfra);
-void PE_update_object(struct Scene *scene, struct Object *ob, int useflag);
+void PE_update_object(struct Main *bmain, struct Scene *scene, struct Object 
*ob, int useflag);
 
 /* selection tools */
 int PE_mouse_particles(struct bContext *C, const int mval[2], bool extend, 
bool deselect, bool toggle);
diff --git a/source/blender/editors/object/object_edit.c 
b/source/blender/editors/object/object_edit.c
index 192ef8e550d..dc936ec8eff 100644
--- a/source/blender/editors/object/object_edit.c
+++ b/source/blender/editors/object/object_edit.c
@@ -471,7 +471,7 @@ bool ED_object_editmode_exit_ex(Main *bmain, Scene *scene, 
Object *obedit, int f
                scene->obedit = NULL; // XXX for context
 
                /* flag object caches as outdated */
-               BKE_ptcache_ids_from_object(&pidlist, obedit, scene, 0);
+               BKE_ptcache_ids_from_object(bmain, &pidlist, obedit, scene, 0);
                for (pid = pidlist.first; pid; pid = pid->next) {
                        if (pid->type != PTCACHE_TYPE_PARTICLES) /* particles 
don't need reset on geometry change */
                                pid->cache->flag |= PTCACHE_OUTDATED;
diff --git a/source/blender/editors/physics/particle_edit.c 
b/source/blender/editors/physics/particle_edit.c
index 2a15fb21fb8..41310f86807 100644
--- a/source/blender/editors/physics/particle_edit.c
+++ b/source/blender/editors/physics/particle_edit.c
@@ -55,6 +55,7 @@
 #include "BKE_DerivedMesh.h"
 #include "BKE_global.h"
 #include "BKE_object.h"
+#include "BKE_main.h"
 #include "BKE_mesh.h"
 #include "BKE_modifier.h"
 #include "BKE_particle.h"
@@ -87,17 +88,19 @@
 
 int PE_poll(bContext *C)
 {
+       Main *bmain = CTX_data_main(C);
        Scene *scene= CTX_data_scene(C);
        Object *ob= CTX_data_active_object(C);
 
        if (!scene || !ob || !(ob->mode & OB_MODE_PARTICLE_EDIT))
                return 0;
 
-       return (PE_get_current(scene, ob) != NULL);
+       return (PE_get_current(bmain, scene, ob) != NULL);
 }
 
 int PE_hair_poll(bContext *C)
 {
+       Main *bmain = CTX_data_main(C);
        Scene *scene= CTX_data_scene(C);
        Object *ob= CTX_data_active_object(C);
        PTCacheEdit *edit;
@@ -105,7 +108,7 @@ int PE_hair_poll(bContext *C)
        if (!scene || !ob || !(ob->mode & OB_MODE_PARTICLE_EDIT))
                return 0;
 
-       edit= PE_get_current(scene, ob);
+       edit= PE_get_current(bmain, scene, ob);
 
        return (edit && edit->psys);
 }
@@ -188,7 +191,7 @@ static float pe_brush_size_get(const Scene *UNUSED(scene), 
ParticleBrushData *br
  *
  * note: this function runs on poll, therefor it can runs many times a second
  * keep it fast! */
-static PTCacheEdit *pe_get_current(Scene *scene, Object *ob, int create)
+static PTCacheEdit *pe_get_current(Main *bmain, Scene *scene, Object *ob, int 
create)
 {
        ParticleEditSettings *pset= PE_settings(scene);
        PTCacheEdit *edit = NULL;
@@ -201,7 +204,7 @@ static PTCacheEdit *pe_get_current(Scene *scene, Object 
*ob, int create)
        pset->scene = scene;
        pset->object = ob;
 
-       BKE_ptcache_ids_from_object(&pidlist, ob, NULL, 0);
+       BKE_ptcache_ids_from_object(bmain, &pidlist, ob, NULL, 0);
 
        /* in the case of only one editable thing, set pset->edittype 
accordingly */
        if (BLI_listbase_is_single(&pidlist)) {
@@ -227,18 +230,18 @@ static PTCacheEdit *pe_get_current(Scene *scene, Object 
*ob, int create)
                                if (psys->part && psys->part->type == 
PART_HAIR) {
                                        if (psys->flag & PSYS_HAIR_DYNAMICS && 
psys->pointcache->flag & PTCACHE_BAKED) {
                                                if (create && 
!psys->pointcache->edit)
-                                                       
PE_create_particle_edit(scene, ob, pid->cache, NULL);
+                                                       
PE_create_particle_edit(bmain, scene, ob, pid->cache, NULL);
                                                edit = pid->cache->edit;
                                        }
                                        else {
                                                if (create && !psys->edit && 
psys->flag & PSYS_HAIR_DONE)
-                                                       
PE_create_particle_edit(scene, ob, NULL, psys);

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to