2.5: more removal of G.main.
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 13 Aug 2010 14:23:44 +0000 (14:23 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Fri, 13 Aug 2010 14:23:44 +0000 (14:23 +0000)
18 files changed:
source/blender/blenkernel/BKE_pointcache.h
source/blender/blenkernel/BKE_sequencer.h
source/blender/blenkernel/intern/depsgraph.c
source/blender/blenkernel/intern/group.c
source/blender/blenkernel/intern/material.c
source/blender/blenkernel/intern/mesh.c
source/blender/blenkernel/intern/object.c
source/blender/blenkernel/intern/pointcache.c
source/blender/blenkernel/intern/scene.c
source/blender/blenkernel/intern/seqeffects.c
source/blender/blenkernel/intern/sequencer.c
source/blender/blenkernel/intern/text.c
source/blender/blenkernel/intern/texture.c
source/blender/blenkernel/intern/world.c
source/blender/editors/space_sequencer/sequencer_draw.c
source/blender/editors/space_sequencer/sequencer_edit.c
source/blender/makesrna/intern/rna_sequencer.c
source/blender/render/intern/source/pipeline.c

index 63f36a5f1036329940156bc28725b975989b50f2..6b390b2b0cf202b9f0ce3a933f1d5b833f8a519e 100644 (file)
@@ -275,7 +275,7 @@ int         BKE_ptcache_read_cache(PTCacheID *pid, float cfra, float frs_sec);
 int            BKE_ptcache_write_cache(PTCacheID *pid, int cfra);
 
 /****************** Continue physics ***************/
-void BKE_ptcache_set_continue_physics(struct Scene *scene, int enable);
+void BKE_ptcache_set_continue_physics(struct Main *bmain, struct Scene *scene, int enable);
 int BKE_ptcache_get_continue_physics(void);
 
 /******************* Allocate & free ***************/
index b544b3461cdfaad2db7906056013bac8b2b38610..a9fb45c6e14e8e5cbad683cf934697dc3cf77eae 100644 (file)
 #ifndef BKE_SEQUENCER_H
 #define BKE_SEQUENCER_H
 
+struct bContext;
 struct Editing;
+struct ImBuf;
+struct Main;
+struct Scene;
 struct Sequence;
 struct Strip;
 struct StripElem;
-struct ImBuf;
-struct Scene;
-struct bContext;
 
 #define MAXSEQ          32
 
@@ -123,6 +124,7 @@ struct SeqEffectHandle {
            (mixed cases are handled one layer up...) */
        
        struct ImBuf* (*execute)(
+               struct Main *bmain,
                struct Scene *scene, struct Sequence *seq, float cfra,
                float facf0, float facf1,
                int x, int y, int preview_render_size,
@@ -146,15 +148,15 @@ void seq_free_editing(struct Scene *scene);
 void seq_free_clipboard(void);
 struct Editing *seq_give_editing(struct Scene *scene, int alloc);
 char *give_seqname(struct Sequence *seq);
-struct ImBuf *give_ibuf_seq(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size);
-struct ImBuf *give_ibuf_seq_threaded(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size);
-struct ImBuf *give_ibuf_seq_direct(struct Scene *scene, int rectx, int recty, int cfra, int render_size, struct Sequence *seq);
-struct ImBuf *give_ibuf_seqbase(struct Scene *scene, int rectx, int recty, int cfra, int chan_shown, int render_size, struct ListBase *seqbasep);
+struct ImBuf *give_ibuf_seq(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size);
+struct ImBuf *give_ibuf_seq_threaded(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size);
+struct ImBuf *give_ibuf_seq_direct(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int render_size, struct Sequence *seq);
+struct ImBuf *give_ibuf_seqbase(struct Main *bmain, struct Scene *scene, int rectx, int recty, int cfra, int chan_shown, int render_size, struct ListBase *seqbasep);
 void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown, int render_size);
 void calc_sequence(struct Scene *scene, struct Sequence *seq);
 void calc_sequence_disp(struct Scene *scene, struct Sequence *seq);
 void new_tstripdata(struct Sequence *seq);
-void reload_sequence_new_file(struct Scene *scene, struct Sequence * seq, int lock_range);
+void reload_sequence_new_file(struct Main *bmain, struct Scene *scene, struct Sequence * seq, int lock_range);
 void sort_seq(struct Scene *scene);
 void build_seqar_cb(struct ListBase *seqbase, struct Sequence  ***seqar, int *totseq,
                                        int (*test_func)(struct Sequence * seq));
@@ -227,7 +229,7 @@ void seqbase_sound_reload(struct Scene *scene, ListBase *seqbase);
 void seqbase_unique_name_recursive(ListBase *seqbasep, struct Sequence *seq);
 void seqbase_dupli_recursive(struct Scene *scene, ListBase *nseqbase, ListBase *seqbase, int dupe_flag);
 
-void clear_scene_in_allseqs(struct Scene *sce);
+void clear_scene_in_allseqs(struct Main *bmain, struct Scene *sce);
 
 struct Sequence *get_seq_by_name(struct ListBase *seqbase, const char *name, int recursive);
 
index 1f8360324d51433c465efbbf1a563e91bae163b8..d498b73be7ee8aca808c5558ac87d26374c910d1 100644 (file)
@@ -2180,7 +2180,7 @@ void DAG_scene_update_flags(Main *bmain, Scene *scene, unsigned int lay)
                dag_object_time_update_flags(scene->camera);
        
        /* and store the info in groupobject */
-       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) {
                                go->recalc= go->ob->recalc;
index 6377a6f6ccd87c49bc374691d3d1b11311f07f3f..bdf203119c39ce5f00131c575930ae41e99bab8d 100644 (file)
@@ -69,21 +69,22 @@ void free_group_objects(Group *group)
 
 void unlink_group(Group *group)
 {
+       Main *bmain= G.main;
        Material *ma;
        Object *ob;
        Scene *sce;
        SceneRenderLayer *srl;
        ParticleSystem *psys;
        
-       for(ma= G.main->mat.first; ma; ma= ma->id.next) {
+       for(ma= bmain->mat.first; ma; ma= ma->id.next) {
                if(ma->group==group)
                        ma->group= NULL;
        }
-       for(ma= G.main->mat.first; ma; ma= ma->id.next) {
+       for(ma= bmain->mat.first; ma; ma= ma->id.next) {
                if(ma->group==group)
                        ma->group= NULL;
        }
-       for (sce= G.main->scene.first; sce; sce= sce->id.next) {
+       for (sce= bmain->scene.first; sce; sce= sce->id.next) {
                Base *base= sce->base.first;
                
                /* ensure objects are not in this group */
@@ -100,7 +101,7 @@ void unlink_group(Group *group)
                }
        }
        
-       for(ob= G.main->object.first; ob; ob= ob->id.next) {
+       for(ob= bmain->object.first; ob; ob= ob->id.next) {
                bActionStrip *strip;
                
                if(ob->dup_group==group) {
index 6b79a7b4d62420cdb406d395d0ee6e6fbc133242..724536048ce937cf8ba2cfe65d10d6344e4e1a1f 100644 (file)
@@ -236,6 +236,7 @@ Material *copy_material(Material *ma)
 
 void make_local_material(Material *ma)
 {
+       Main *bmain= G.main;
        Object *ob;
        Mesh *me;
        Curve *cu;
@@ -261,7 +262,7 @@ void make_local_material(Material *ma)
        }
        
        /* test objects */
-       ob= G.main->object.first;
+       ob= bmain->object.first;
        while(ob) {
                if(ob->mat) {
                        for(a=0; a<ob->totcol; a++) {
@@ -274,7 +275,7 @@ void make_local_material(Material *ma)
                ob= ob->id.next;
        }
        /* test meshes */
-       me= G.main->mesh.first;
+       me= bmain->mesh.first;
        while(me) {
                if(me->mat) {
                        for(a=0; a<me->totcol; a++) {
@@ -287,7 +288,7 @@ void make_local_material(Material *ma)
                me= me->id.next;
        }
        /* test curves */
-       cu= G.main->curve.first;
+       cu= bmain->curve.first;
        while(cu) {
                if(cu->mat) {
                        for(a=0; a<cu->totcol; a++) {
@@ -300,7 +301,7 @@ void make_local_material(Material *ma)
                cu= cu->id.next;
        }
        /* test mballs */
-       mb= G.main->mball.first;
+       mb= bmain->mball.first;
        while(mb) {
                if(mb->mat) {
                        for(a=0; a<mb->totcol; a++) {
@@ -329,7 +330,7 @@ void make_local_material(Material *ma)
                man->id.us= 0;
                
                /* do objects */
-               ob= G.main->object.first;
+               ob= bmain->object.first;
                while(ob) {
                        if(ob->mat) {
                                for(a=0; a<ob->totcol; a++) {
@@ -345,7 +346,7 @@ void make_local_material(Material *ma)
                        ob= ob->id.next;
                }
                /* do meshes */
-               me= G.main->mesh.first;
+               me= bmain->mesh.first;
                while(me) {
                        if(me->mat) {
                                for(a=0; a<me->totcol; a++) {
@@ -361,7 +362,7 @@ void make_local_material(Material *ma)
                        me= me->id.next;
                }
                /* do curves */
-               cu= G.main->curve.first;
+               cu= bmain->curve.first;
                while(cu) {
                        if(cu->mat) {
                                for(a=0; a<cu->totcol; a++) {
@@ -377,7 +378,7 @@ void make_local_material(Material *ma)
                        cu= cu->id.next;
                }
                /* do mballs */
-               mb= G.main->mball.first;
+               mb= bmain->mball.first;
                while(mb) {
                        if(mb->mat) {
                                for(a=0; a<mb->totcol; a++) {
index 7129ecb1d55f0a6af4934fe2b68b2806742d79f5..a017b7344d7352cc829d5c1f10725f477dc95a48 100644 (file)
@@ -265,6 +265,7 @@ void make_local_tface(Mesh *me)
 
 void make_local_mesh(Mesh *me)
 {
+       Main *bmain= G.main;
        Object *ob;
        Mesh *men;
        int local=0, lib=0;
@@ -285,7 +286,7 @@ void make_local_mesh(Mesh *me)
                return;
        }
        
-       ob= G.main->object.first;
+       ob= bmain->object.first;
        while(ob) {
                if( me==get_mesh(ob) ) {
                        if(ob->id.lib) lib= 1;
@@ -306,7 +307,7 @@ void make_local_mesh(Mesh *me)
                men= copy_mesh(me);
                men->id.us= 0;
                
-               ob= G.main->object.first;
+               ob= bmain->object.first;
                while(ob) {
                        if( me==get_mesh(ob) ) {                                
                                if(ob->id.lib==0) {
@@ -925,6 +926,7 @@ int nurbs_to_mdata_customdb(Object *ob, ListBase *dispbase, MVert **allvert, int
 /* this may fail replacing ob->data, be sure to check ob->type */
 void nurbs_to_mesh(Object *ob)
 {
+       Main *bmain= G.main;
        Object *ob1;
        DerivedMesh *dm= ob->derivedFinal;
        Mesh *me;
@@ -967,13 +969,13 @@ void nurbs_to_mesh(Object *ob)
        cu->totcol= 0;
 
        if(ob->data) {
-               free_libblock(&G.main->curve, ob->data);
+               free_libblock(&bmain->curve, ob->data);
        }
        ob->data= me;
        ob->type= OB_MESH;
 
        /* other users */
-       ob1= G.main->object.first;
+       ob1= bmain->object.first;
        while(ob1) {
                if(ob1->data==cu) {
                        ob1->type= OB_MESH;
index 115cfac762718e01c0e507ddabb69622ddcf8a25..b43cf72b94b7a0cf2cb197a13051bcadb7703fac 100644 (file)
@@ -322,6 +322,7 @@ static void unlink_object__unlinkModifierLinks(void *userData, Object *ob, Objec
 
 void unlink_object(Scene *scene, Object *ob)
 {
+       Main *bmain= G.main;
        Object *obt;
        Material *mat;
        World *wrld;
@@ -343,7 +344,7 @@ void unlink_object(Scene *scene, Object *ob)
        
        /* check all objects: parents en bevels and fields, also from libraries */
        // FIXME: need to check all animation blocks (drivers)
-       obt= G.main->object.first;
+       obt= bmain->object.first;
        while(obt) {
                if(obt->proxy==ob)
                        obt->proxy= NULL;
@@ -517,7 +518,7 @@ void unlink_object(Scene *scene, Object *ob)
        }
        
        /* materials */
-       mat= G.main->mat.first;
+       mat= bmain->mat.first;
        while(mat) {
        
                for(a=0; a<MAX_MTEX; a++) {
@@ -531,7 +532,7 @@ void unlink_object(Scene *scene, Object *ob)
        }
        
        /* textures */
-       tex= G.main->tex.first;
+       tex= bmain->tex.first;
        while(tex) {
                if(tex->env) {
                        if(tex->env->object == ob) tex->env->object= NULL;
@@ -540,7 +541,7 @@ void unlink_object(Scene *scene, Object *ob)
        }
 
        /* worlds */
-       wrld= G.main->world.first;
+       wrld= bmain->world.first;
        while(wrld) {
                if(wrld->id.lib==NULL) {
                        for(a=0; a<MAX_MTEX; a++) {
@@ -553,7 +554,7 @@ void unlink_object(Scene *scene, Object *ob)
        }
                
        /* scenes */
-       sce= G.main->scene.first;
+       sce= bmain->scene.first;
        while(sce) {
                if(sce->id.lib==NULL) {
                        if(sce->camera==ob) sce->camera= NULL;
@@ -585,7 +586,7 @@ void unlink_object(Scene *scene, Object *ob)
        
 #if 0 // XXX old animation system
        /* ipos */
-       ipo= G.main->ipo.first;
+       ipo= bmain->ipo.first;
        while(ipo) {
                if(ipo->id.lib==NULL) {
                        IpoCurve *icu;
@@ -599,7 +600,7 @@ void unlink_object(Scene *scene, Object *ob)
 #endif // XXX old animation system
        
        /* screens */
-       sc= G.main->screen.first;
+       sc= bmain->screen.first;
        while(sc) {
                ScrArea *sa= sc->areabase.first;
                while(sa) {
@@ -664,14 +665,14 @@ void unlink_object(Scene *scene, Object *ob)
        }
 
        /* groups */
-       group= G.main->group.first;
+       group= bmain->group.first;
        while(group) {
                rem_from_group(group, ob, NULL, NULL);
                group= group->id.next;
        }
        
        /* cameras */
-       camera= G.main->camera.first;
+       camera= bmain->camera.first;
        while(camera) {
                if (camera->dof_ob==ob) {
                        camera->dof_ob = NULL;
@@ -725,6 +726,7 @@ Camera *copy_camera(Camera *cam)
 
 void make_local_camera(Camera *cam)
 {
+       Main *bmain= G.main;
        Object *ob;
        Camera *camn;
        int local=0, lib=0;
@@ -742,7 +744,7 @@ void make_local_camera(Camera *cam)
                return;
        }
        
-       ob= G.main->object.first;
+       ob= bmain->object.first;
        while(ob) {
                if(ob->data==cam) {
                        if(ob->id.lib) lib= 1;
@@ -760,7 +762,7 @@ void make_local_camera(Camera *cam)
                camn= copy_camera(cam);
                camn->id.us= 0;
                
-               ob= G.main->object.first;
+               ob= bmain->object.first;
                while(ob) {
                        if(ob->data==cam) {
                                
@@ -873,6 +875,7 @@ Lamp *copy_lamp(Lamp *la)
 
 void make_local_lamp(Lamp *la)
 {
+       Main *bmain= G.main;
        Object *ob;
        Lamp *lan;
        int local=0, lib=0;
@@ -890,7 +893,7 @@ void make_local_lamp(Lamp *la)
                return;
        }
        
-       ob= G.main->object.first;
+       ob= bmain->object.first;
        while(ob) {
                if(ob->data==la) {
                        if(ob->id.lib) lib= 1;
@@ -908,7 +911,7 @@ void make_local_lamp(Lamp *la)
                lan= copy_lamp(la);
                lan->id.us= 0;
                
-               ob= G.main->object.first;
+               ob= bmain->object.first;
                while(ob) {
                        if(ob->data==la) {
                                
@@ -1366,6 +1369,7 @@ void expand_local_object(Object *ob)
 
 void make_local_object(Object *ob)
 {
+       Main *bmain= G.main;
        Object *obn;
        Scene *sce;
        Base *base;
@@ -1387,7 +1391,7 @@ void make_local_object(Object *ob)
 
        }
        else {
-               sce= G.main->scene.first;
+               sce= bmain->scene.first;
                while(sce) {
                        base= sce->base.first;
                        while(base) {
@@ -1410,7 +1414,7 @@ void make_local_object(Object *ob)
                        obn= copy_object(ob);
                        obn->id.us= 0;
                        
-                       sce= G.main->scene.first;
+                       sce= bmain->scene.first;
                        while(sce) {
                                if(sce->id.lib==0) {
                                        base= sce->base.first;
index 6cf49808ec71a15d6a4b2fb3812bcb462e1e6dbe..a35e40d7cf7afa22b8f4e6432573ea1ac291c4d5 100644 (file)
@@ -2240,7 +2240,7 @@ void BKE_ptcache_remove(void)
 
 static int CONTINUE_PHYSICS = 0;
 
-void BKE_ptcache_set_continue_physics(Scene *scene, int enable)
+void BKE_ptcache_set_continue_physics(Main *bmain, Scene *scene, int enable)
 {
        Object *ob;
 
@@ -2248,7 +2248,7 @@ void BKE_ptcache_set_continue_physics(Scene *scene, int enable)
                CONTINUE_PHYSICS = enable;
 
                if(CONTINUE_PHYSICS == 0) {
-                       for(ob=G.main->object.first; ob; ob=ob->id.next)
+                       for(ob=bmain->object.first; ob; ob=ob->id.next)
                                if(BKE_ptcache_object_reset(scene, ob, PTCACHE_RESET_OUTDATED))
                                        DAG_id_flush_update(&ob->id, OB_RECALC_DATA);
                }
index 95705ea8c05bb255da5d7d6b233ca828613eb46a..42506b6630381beaf2afa3a60183efc26713ec1f 100644 (file)
@@ -320,11 +320,12 @@ void free_scene(Scene *sce)
 
 Scene *add_scene(char *name)
 {
+       Main *bmain= G.main;
        Scene *sce;
        ParticleEditSettings *pset;
        int a;
 
-       sce= alloc_libblock(&G.main->scene, ID_SCE, name);
+       sce= alloc_libblock(&bmain->scene, ID_SCE, name);
        sce->lay= sce->layact= 1;
        
        sce->r.mode= R_GAMMA|R_OSA|R_SHADOW|R_SSS|R_ENVMAP|R_RAYTRACE;
@@ -586,7 +587,7 @@ void unlink_scene(Main *bmain, Scene *sce, Scene *newsce)
                        sce1->set= NULL;
        
        /* check all sequences */
-       clear_scene_in_allseqs(sce);
+       clear_scene_in_allseqs(bmain, sce);
 
        /* check render layer nodes in other scenes */
        clear_scene_in_nodes(bmain, sce);
index 1e1ace0f75811e3e1bb392c7baf51c67c9b14f09..461cb075bb0106164ffdcbc73df9f7ba283fba7c 100644 (file)
@@ -41,6 +41,7 @@
 #include "DNA_anim_types.h"
 
 #include "BKE_fcurve.h"
+#include "BKE_main.h"
 #include "BKE_plugin_types.h"
 #include "BKE_sequencer.h"
 #include "BKE_texture.h"
@@ -272,7 +273,7 @@ static ImBuf * IMB_cast_away_list(ImBuf * i)
 }
 
 static struct ImBuf * do_plugin_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -523,7 +524,7 @@ static void do_alphaover_effect_float(float facf0, float facf1, int x, int y,
 }
 
 static struct ImBuf * do_alphaover_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -695,7 +696,7 @@ static void do_alphaunder_effect_float(float facf0, float facf1, int x, int y,
 }
 
 static struct ImBuf* do_alphaunder_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -820,7 +821,7 @@ void do_cross_effect_float(float facf0, float facf1, int x, int y,
 /* carefull: also used by speed effect! */
 
 static struct ImBuf* do_cross_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -1087,7 +1088,7 @@ static void do_gammacross_effect_float(float facf0, float facf1,
 }
 
 static struct ImBuf * do_gammacross_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -1205,7 +1206,7 @@ static void do_add_effect_float(float facf0, float facf1, int x, int y,
        }
 }
 
-static struct ImBuf * do_add_effect(Scene *scene, Sequence *seq, float cfra,
+static struct ImBuf * do_add_effect(Main *bmain, Scene *scene, Sequence *seq, float cfra,
                                    float facf0, float facf1, int x, int y, 
                                    int preview_render_size,
                                    struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -1322,7 +1323,7 @@ static void do_sub_effect_float(float facf0, float facf1, int x, int y,
 }
 
 static struct ImBuf * do_sub_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y,
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -1536,7 +1537,7 @@ static void do_mul_effect_float(float facf0, float facf1, int x, int y,
 }
 
 static struct ImBuf * do_mul_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -1992,7 +1993,7 @@ static void do_wipe_effect_float(Sequence *seq, float facf0, float facf1,
 }
 
 static struct ImBuf * do_wipe_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -2143,7 +2144,7 @@ static void do_transform(Scene *scene, Sequence *seq, float facf0, int x, int y,
 
 
 static struct ImBuf * do_transform_effect(
-       Scene *scene, Sequence *seq,float cfra,
+       Main *bmain, Scene *scene, Sequence *seq,float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -2661,7 +2662,7 @@ static void do_glow_effect_float(Sequence *seq, float facf0, float facf1,
 }
 
 static struct ImBuf * do_glow_effect(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -2722,7 +2723,7 @@ static int early_out_color(struct Sequence *seq,
 }
 
 static struct ImBuf * do_solid_color(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -2818,7 +2819,7 @@ static int early_out_multicam(struct Sequence *seq, float facf0, float facf1)
 }
 
 static struct ImBuf * do_multicam(
-       Scene *scene, Sequence *seq, float cfra,
+       Main *bmain, Scene *scene, Sequence *seq, float cfra,
        float facf0, float facf1, int x, int y, 
        int preview_render_size,
        struct ImBuf *ibuf1, struct ImBuf *ibuf2, 
@@ -2842,7 +2843,7 @@ static struct ImBuf * do_multicam(
                return 0;
        }
 
-       i = give_ibuf_seqbase(scene, x, y, cfra, seq->multicam_source, 
+       i = give_ibuf_seqbase(bmain, scene, x, y, cfra, seq->multicam_source, 
                              preview_render_size, seqbasep);
        if (!i) {
                return 0;
@@ -3122,7 +3123,7 @@ static void get_default_fac_fade(struct Sequence *seq, float cfra,
        *facf1 /= seq->len;
 }
 
-static struct ImBuf * do_overdrop_effect(Scene *scene, Sequence *seq, float cfra,
+static struct ImBuf * do_overdrop_effect(Main *bmain, Scene *scene, Sequence *seq, float cfra,
                                         float facf0, float facf1, 
                                         int x, int y, 
                                         int preview_render_size,
index 866f907ef9e0a57a663eda452b3dba293e91d918..b20bb111cb46a54e883e89a9e70eb52168fea72c 100644 (file)
@@ -554,7 +554,7 @@ void calc_sequence(Scene *scene, Sequence *seq)
 }
 
 /* note: caller should run calc_sequence(scene, seq) after */
-void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
+void reload_sequence_new_file(Main *bmain, Scene *scene, Sequence * seq, int lock_range)
 {
        char str[FILE_MAXDIR+FILE_MAXFILE];
        int prev_startdisp, prev_enddisp;
@@ -621,7 +621,7 @@ void reload_sequence_new_file(Scene *scene, Sequence * seq, int lock_range)
                seq->strip->len = seq->len;
        } else if (seq->type == SEQ_SCENE) {
                /* 'seq->scenenr' should be replaced with something more reliable */
-               Scene * sce = G.main->scene.first;
+               Scene * sce = bmain->scene.first;
                int nr = 1;
                
                while(sce) {
@@ -710,12 +710,12 @@ static int clear_scene_in_allseqs_cb(Sequence *seq, void *arg_pt)
        return 1;
 }
 
-void clear_scene_in_allseqs(Scene *scene)
+void clear_scene_in_allseqs(Main *bmain, Scene *scene)
 {
        Scene *scene_iter;
 
        /* when a scene is deleted: test all seqs */
-       for(scene_iter= G.main->scene.first; scene_iter; scene_iter= scene_iter->id.next) {
+       for(scene_iter= bmain->scene.first; scene_iter; scene_iter= scene_iter->id.next) {
                if(scene_iter != scene && scene_iter->ed) {
                        seqbase_recursive_apply(&scene_iter->ed->seqbase, clear_scene_in_allseqs_cb, scene);
                }
@@ -1659,17 +1659,17 @@ static void copy_to_ibuf_still(Sequence * seq, float nr,
    ********************************************************************** */
 
 static ImBuf* seq_render_strip_stack(
-       Scene *scene,
+       Main *bmain, Scene *scene,
        ListBase *seqbasep, float cfra, int chanshown, int render_size,
        int seqrectx, int seqrecty);
 
-static ImBuf * seq_render_strip(Scene *scene, Sequence * seq, float cfra,
+static ImBuf * seq_render_strip(Main *bmain, Scene *scene, Sequence * seq, float cfra,
                                int render_size, 
                                int seqrectx, int seqrecty);
 
 
 static ImBuf* seq_render_effect_strip_impl(
-       Scene *scene, float cfra, Sequence *seq, int render_size,
+       Main *bmain, Scene *scene, float cfra, Sequence *seq, int render_size,
        int seqrectx, int seqrecty)
 {
        float fac, facf;
@@ -1707,7 +1707,7 @@ static ImBuf* seq_render_effect_strip_impl(
        early_out = sh.early_out(seq, fac, facf);
 
        if (early_out == -1) { /* no input needed */
-               out = sh.execute(scene, seq, cfra, fac, facf, 
+               out = sh.execute(bmain, scene, seq, cfra, fac, facf, 
                                 seqrectx, seqrecty, render_size,
                                 0, 0, 0);
                goto finish;
@@ -1722,7 +1722,7 @@ static ImBuf* seq_render_effect_strip_impl(
                break;
        case 1:
                if (seq->seq1) {
-                       ibuf[0] = seq_render_strip(scene, seq->seq1, cfra,
+                       ibuf[0] = seq_render_strip(bmain, scene, seq->seq1, cfra,
                                                   render_size, 
                                                   seqrectx, seqrecty);
                }
@@ -1737,7 +1737,7 @@ static ImBuf* seq_render_effect_strip_impl(
                goto finish;
        case 2:
                if (seq->seq2) {
-                       ibuf[1] = seq_render_strip(scene, seq->seq2, cfra,
+                       ibuf[1] = seq_render_strip(bmain, scene, seq->seq2, cfra,
                                                   render_size, 
                                                   seqrectx, seqrecty);
                }
@@ -1755,19 +1755,19 @@ static ImBuf* seq_render_effect_strip_impl(
        }
 
        if (seq->seq1) {
-               ibuf[0] = seq_render_strip(scene, seq->seq1, cfra,
+               ibuf[0] = seq_render_strip(bmain, scene, seq->seq1, cfra,
                                           render_size, 
                                           seqrectx, seqrecty);
        } 
 
        if (seq->seq2) {
-               ibuf[1] = seq_render_strip(scene, seq->seq2, cfra,
+               ibuf[1] = seq_render_strip(bmain, scene, seq->seq2, cfra,
                                           render_size, 
                                           seqrectx, seqrecty);
        }
 
        if (seq->seq3) {
-               ibuf[2] = seq_render_strip(scene, seq->seq3, cfra,
+               ibuf[2] = seq_render_strip(bmain, scene, seq->seq3, cfra,
                                           render_size, 
                                           seqrectx, seqrecty);
        }
@@ -1776,7 +1776,7 @@ static ImBuf* seq_render_effect_strip_impl(
                goto finish;
        }
 
-       out = sh.execute(scene, seq, cfra, fac, facf, seqrectx, seqrecty, 
+       out = sh.execute(bmain, scene, seq, cfra, fac, facf, seqrectx, seqrecty, 
                         render_size,
                         ibuf[0], ibuf[1], ibuf[2]);
 
@@ -1795,7 +1795,7 @@ finish:
 
 
 static ImBuf * seq_render_scene_strip_impl(
-       Scene * scene, Sequence * seq, float nr, int seqrectx, int seqrecty)
+       Main *bmain, Scene * scene, Sequence * seq, float nr, int seqrectx, int seqrecty)
 {
        ImBuf * ibuf = 0;
        float frame= seq->sfra + nr + seq->anim_startofs;
@@ -1851,7 +1851,7 @@ static ImBuf * seq_render_scene_strip_impl(
        
        if(sequencer_view3d_cb && BLI_thread_is_main() && doseq_gl && (seq->scene == scene || have_seq==0) && seq->scene->camera) {
                /* opengl offscreen render */
-               scene_update_for_newframe(G.main, seq->scene, seq->scene->lay);
+               scene_update_for_newframe(bmain, seq->scene, seq->scene->lay);
                ibuf= sequencer_view3d_cb(seq->scene, seqrectx, seqrecty, 
                                          scene->r.seq_prev_type);
        }
@@ -1864,7 +1864,7 @@ static ImBuf * seq_render_scene_strip_impl(
                else
                        re= RE_NewRender(sce->id.name);
                
-               RE_BlenderFrame(re, G.main, sce, NULL, sce->lay, frame);
+               RE_BlenderFrame(re, bmain, sce, NULL, sce->lay, frame);
                
                RE_AcquireResultImage(re, &rres);
                
@@ -1904,7 +1904,7 @@ static ImBuf * seq_render_scene_strip_impl(
        return ibuf;
 }
 
-static ImBuf * seq_render_strip(Scene *scene, Sequence * seq, float cfra,
+static ImBuf * seq_render_strip(Main *bmain, Scene *scene, Sequence * seq, float cfra,
                                int render_size, 
                                int seqrectx, int seqrecty)
 {
@@ -1929,7 +1929,7 @@ static ImBuf * seq_render_strip(Scene *scene, Sequence * seq, float cfra,
 
                if(!ibuf && seq->seqbase.first) {
                        meta_ibuf = seq_render_strip_stack(
-                               scene,
+                               bmain, scene,
                                &seq->seqbase, seq->start + nr, 0,
                                render_size, seqrectx, seqrecty);
                }
@@ -1961,7 +1961,7 @@ static ImBuf * seq_render_strip(Scene *scene, Sequence * seq, float cfra,
                        /* weeek! */
                        f_cfra = seq->start + s->frameMap[(int) nr];
 
-                       child_ibuf = seq_render_strip(scene, seq->seq1, f_cfra,
+                       child_ibuf = seq_render_strip(bmain, scene, seq->seq1, f_cfra,
                                                      render_size, 
                                                      seqrectx, seqrecty);
                }
@@ -1985,7 +1985,7 @@ static ImBuf * seq_render_strip(Scene *scene, Sequence * seq, float cfra,
 
                if(ibuf == 0) {         
                        ibuf = seq_render_effect_strip_impl(
-                               scene, cfra, seq, render_size, 
+                               bmain, scene, cfra, seq, render_size, 
                                seqrectx, seqrecty);
                }
        } else if(seq->type == SEQ_IMAGE) {
@@ -2061,7 +2061,7 @@ static ImBuf * seq_render_strip(Scene *scene, Sequence * seq, float cfra,
                }
                
                if (ibuf == 0) {
-                       ibuf = seq_render_scene_strip_impl(scene, seq, nr,
+                       ibuf = seq_render_scene_strip_impl(bmain, scene, seq, nr,
                                                           seqrectx, seqrecty);
 
                        copy_to_ibuf_still(seq, nr, ibuf);
@@ -2129,7 +2129,7 @@ static int seq_get_early_out_for_blend_mode(Sequence * seq)
 }
 
 static ImBuf* seq_render_strip_stack(
-       Scene *scene, ListBase *seqbasep, float cfra, int chanshown, 
+       Main *bmain, Scene *scene, ListBase *seqbasep, float cfra, int chanshown, 
        int render_size, int seqrectx, int seqrecty)
 {
        Sequence* seq_arr[MAXSEQ+1];
@@ -2161,7 +2161,7 @@ static ImBuf* seq_render_strip_stack(
        }
        
        if(count == 1) {
-               out = seq_render_strip(scene, seq_arr[0],
+               out = seq_render_strip(bmain, scene, seq_arr[0],
                                        cfra, render_size,
                                        seqrectx, seqrecty);
                seq_stripelem_cache_put(
@@ -2185,7 +2185,7 @@ static ImBuf* seq_render_strip_stack(
                        break;
                }
                if (seq->blend_mode == SEQ_BLEND_REPLACE) {
-                       out = seq_render_strip(scene, seq, cfra,
+                       out = seq_render_strip(bmain, scene, seq, cfra,
                                               render_size,
                                               seqrectx, seqrecty);
                        break;
@@ -2196,7 +2196,7 @@ static ImBuf* seq_render_strip_stack(
                switch (early_out) {
                case -1:
                case 2:
-                       out = seq_render_strip(scene, seq, cfra,
+                       out = seq_render_strip(bmain, scene, seq, cfra,
                                               render_size,
                                               seqrectx, seqrecty);
                        break;
@@ -2209,7 +2209,7 @@ static ImBuf* seq_render_strip_stack(
                        break;
                case 0:
                        if (i == 0) {
-                               out = seq_render_strip(scene, seq, cfra,
+                               out = seq_render_strip(bmain, scene, seq, cfra,
                                                       render_size,
                                                       seqrectx, seqrecty);
                        }
@@ -2234,7 +2234,7 @@ static ImBuf* seq_render_strip_stack(
                if (seq_get_early_out_for_blend_mode(seq) == 0) {
                        struct SeqEffectHandle sh = get_sequence_blend(seq);
                        ImBuf * ibuf1 = out;
-                       ImBuf * ibuf2 = seq_render_strip(scene, seq, cfra,
+                       ImBuf * ibuf2 = seq_render_strip(bmain, scene, seq, cfra,
                                                         render_size,
                                                         seqrectx, seqrecty);
 
@@ -2246,11 +2246,11 @@ static ImBuf* seq_render_strip_stack(
                        int y= seqrecty;
 
                        if (swap_input) {
-                               out = sh.execute(scene, seq, cfra, 
+                               out = sh.execute(bmain, scene, seq, cfra, 
                                                 facf, facf, x, y, render_size,
                                                 ibuf2, ibuf1, 0);
                        } else {
-                               out = sh.execute(scene, seq, cfra, 
+                               out = sh.execute(bmain, scene, seq, cfra, 
                                                 facf, facf, x, y, render_size,
                                                 ibuf1, ibuf2, 0);
                        }
@@ -2272,7 +2272,7 @@ static ImBuf* seq_render_strip_stack(
  * you have to free after usage!
  */
 
-ImBuf *give_ibuf_seq(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size)
+ImBuf *give_ibuf_seq(Main *bmain, Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size)
 {
        Editing *ed= seq_give_editing(scene, FALSE);
        int count;
@@ -2289,18 +2289,18 @@ ImBuf *give_ibuf_seq(Scene *scene, int rectx, int recty, int cfra, int chanshown
        }
 
        return seq_render_strip_stack(
-               scene, seqbasep, cfra, chanshown, render_size, rectx, recty);
+               bmain, scene, seqbasep, cfra, chanshown, render_size, rectx, recty);
 }
 
-ImBuf *give_ibuf_seqbase(struct Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size, ListBase *seqbasep)
+ImBuf *give_ibuf_seqbase(Main *bmain, Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size, ListBase *seqbasep)
 {
-       return seq_render_strip_stack(scene, seqbasep, cfra, chanshown, render_size, rectx, recty);
+       return seq_render_strip_stack(bmain, scene, seqbasep, cfra, chanshown, render_size, rectx, recty);
 }
 
 
-ImBuf *give_ibuf_seq_direct(Scene *scene, int rectx, int recty, int cfra, int render_size, Sequence *seq)
+ImBuf *give_ibuf_seq_direct(Main *bmain, Scene *scene, int rectx, int recty, int cfra, int render_size, Sequence *seq)
 {
-       return seq_render_strip(scene, seq, cfra, render_size, rectx, recty);
+       return seq_render_strip(bmain, scene, seq, cfra, render_size, rectx, recty);
 }
 
 #if 0
@@ -2566,13 +2566,13 @@ static void seq_wait_for_prefetch_ready()
 }
 #endif
 
-ImBuf *give_ibuf_seq_threaded(Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size)
+ImBuf *give_ibuf_seq_threaded(Main *bmain, Scene *scene, int rectx, int recty, int cfra, int chanshown, int render_size)
 {
        PrefetchQueueElem *e = NULL;
        int found_something = FALSE;
 
        if (seq_thread_shutdown) {
-               return give_ibuf_seq(scene, rectx, recty, cfra, chanshown, render_size);
+               return give_ibuf_seq(bmain, scene, rectx, recty, cfra, chanshown, render_size);
        }
 
        while (!e) {
index c8f5eb9b1872dc069b3cbbd4fdff9a746f1c8bcf..19bc853276a0c912a44d4530a34052cb815b2dfd 100644 (file)
@@ -174,10 +174,11 @@ void free_text(Text *text)
 
 Text *add_empty_text(char *name) 
 {
+       Main *bmain= G.main;
        Text *ta;
        TextLine *tmp;
        
-       ta= alloc_libblock(&G.main->text, ID_TXT, name);
+       ta= alloc_libblock(&bmain->text, ID_TXT, name);
        ta->id.us= 1;
        
        ta->name= NULL;
@@ -326,6 +327,7 @@ int reopen_text(Text *text)
 
 Text *add_text(char *file, const char *relpath) 
 {
+       Main *bmain= G.main;
        FILE *fp;
        int i, llen, len, res;
        unsigned char *buffer;
@@ -341,7 +343,7 @@ Text *add_text(char *file, const char *relpath)
        fp= fopen(str, "r");
        if(fp==NULL) return NULL;
        
-       ta= alloc_libblock(&G.main->text, ID_TXT, BLI_path_basename(str));
+       ta= alloc_libblock(&bmain->text, ID_TXT, BLI_path_basename(str));
        ta->id.us= 1;
 
        ta->lines.first= ta->lines.last= NULL;
index fe5abbd0868fc57ff24363075ec82e4448d65e52..9075c64d286504946f29958f40acecaaff159dfd 100644 (file)
@@ -602,9 +602,10 @@ void tex_set_type(Tex *tex, int type)
 
 Tex *add_texture(const char *name)
 {
+       Main *bmain= G.main;
        Tex *tex;
 
-       tex= alloc_libblock(&G.main->tex, ID_TE, name);
+       tex= alloc_libblock(&bmain->tex, ID_TE, name);
        
        default_tex(tex);
        
@@ -726,6 +727,7 @@ Tex *copy_texture(Tex *tex)
 
 void make_local_texture(Tex *tex)
 {
+       Main *bmain= G.main;
        Tex *texn;
        Material *ma;
        World *wrld;
@@ -755,7 +757,7 @@ void make_local_texture(Tex *tex)
                return;
        }
        
-       ma= G.main->mat.first;
+       ma= bmain->mat.first;
        while(ma) {
                for(a=0; a<MAX_MTEX; a++) {
                        if(ma->mtex[a] && ma->mtex[a]->tex==tex) {
@@ -765,7 +767,7 @@ void make_local_texture(Tex *tex)
                }
                ma= ma->id.next;
        }
-       la= G.main->lamp.first;
+       la= bmain->lamp.first;
        while(la) {
                for(a=0; a<MAX_MTEX; a++) {
                        if(la->mtex[a] && la->mtex[a]->tex==tex) {
@@ -775,7 +777,7 @@ void make_local_texture(Tex *tex)
                }
                la= la->id.next;
        }
-       wrld= G.main->world.first;
+       wrld= bmain->world.first;
        while(wrld) {
                for(a=0; a<MAX_MTEX; a++) {
                        if(wrld->mtex[a] && wrld->mtex[a]->tex==tex) {
@@ -785,7 +787,7 @@ void make_local_texture(Tex *tex)
                }
                wrld= wrld->id.next;
        }
-       br= G.main->brush.first;
+       br= bmain->brush.first;
        while(br) {
                if(br->mtex.tex==tex) {
                        if(br->id.lib) lib= 1;
@@ -803,7 +805,7 @@ void make_local_texture(Tex *tex)
                texn= copy_texture(tex);
                texn->id.us= 0;
                
-               ma= G.main->mat.first;
+               ma= bmain->mat.first;
                while(ma) {
                        for(a=0; a<MAX_MTEX; a++) {
                                if(ma->mtex[a] && ma->mtex[a]->tex==tex) {
@@ -816,7 +818,7 @@ void make_local_texture(Tex *tex)
                        }
                        ma= ma->id.next;
                }
-               la= G.main->lamp.first;
+               la= bmain->lamp.first;
                while(la) {
                        for(a=0; a<MAX_MTEX; a++) {
                                if(la->mtex[a] && la->mtex[a]->tex==tex) {
@@ -829,7 +831,7 @@ void make_local_texture(Tex *tex)
                        }
                        la= la->id.next;
                }
-               wrld= G.main->world.first;
+               wrld= bmain->world.first;
                while(wrld) {
                        for(a=0; a<MAX_MTEX; a++) {
                                if(wrld->mtex[a] && wrld->mtex[a]->tex==tex) {
@@ -842,7 +844,7 @@ void make_local_texture(Tex *tex)
                        }
                        wrld= wrld->id.next;
                }
-               br= G.main->brush.first;
+               br= bmain->brush.first;
                while(br) {
                        if(br->mtex.tex==tex) {
                                if(br->id.lib==0) {
@@ -860,6 +862,7 @@ void make_local_texture(Tex *tex)
 
 void autotexname(Tex *tex)
 {
+       Main *bmain= G.main;
        char texstr[20][15]= {"None"  , "Clouds" , "Wood", "Marble", "Magic"  , "Blend",
                "Stucci", "Noise"  , "Image", "Plugin", "EnvMap" , "Musgrave",
                "Voronoi", "DistNoise", "Point Density", "Voxel Data", "", "", "", ""};
@@ -868,7 +871,7 @@ void autotexname(Tex *tex)
        
        if(tex) {
                if(tex->use_nodes) {
-                       new_id(&G.main->tex, (ID *)tex, "Noddy");
+                       new_id(&bmain->tex, (ID *)tex, "Noddy");
                }
                else
                if(tex->type==TEX_IMAGE) {
@@ -878,12 +881,12 @@ void autotexname(Tex *tex)
                                BLI_splitdirstring(di, fi);
                                strcpy(di, "I.");
                                strcat(di, fi);
-                               new_id(&G.main->tex, (ID *)tex, di);
+                               new_id(&bmain->tex, (ID *)tex, di);
                        }
-                       else new_id(&G.main->tex, (ID *)tex, texstr[tex->type]);
+                       else new_id(&bmain->tex, (ID *)tex, texstr[tex->type]);
                }
-               else if(tex->type==TEX_PLUGIN && tex->plugin) new_id(&G.main->tex, (ID *)tex, tex->plugin->pname);
-               else new_id(&G.main->tex, (ID *)tex, texstr[tex->type]);
+               else if(tex->type==TEX_PLUGIN && tex->plugin) new_id(&bmain->tex, (ID *)tex, tex->plugin->pname);
+               else new_id(&bmain->tex, (ID *)tex, texstr[tex->type]);
        }
 }
 
index 1d1b5ec16f7fc330f88d660c447d904b7d243748..233a1433ecbede96792194ee15199a108381b624 100644 (file)
@@ -69,9 +69,10 @@ void free_world(World *wrld)
 
 World *add_world(char *name)
 {
+       Main *bmain= G.main;
        World *wrld;
 
-       wrld= alloc_libblock(&G.main->world, ID_WO, name);
+       wrld= alloc_libblock(&bmain->world, ID_WO, name);
        
        wrld->horr= 0.05f;
        wrld->horg= 0.05f;
@@ -129,6 +130,7 @@ World *copy_world(World *wrld)
 
 void make_local_world(World *wrld)
 {
+       Main *bmain= G.main;
        Scene *sce;
        World *wrldn;
        int local=0, lib=0;
@@ -146,7 +148,7 @@ void make_local_world(World *wrld)
                return;
        }
        
-       sce= G.main->scene.first;
+       sce= bmain->scene.first;
        while(sce) {
                if(sce->world==wrld) {
                        if(sce->id.lib) lib= 1;
@@ -164,7 +166,7 @@ void make_local_world(World *wrld)
                wrldn= copy_world(wrld);
                wrldn->id.us= 0;
                
-               sce= G.main->scene.first;
+               sce= bmain->scene.first;
                while(sce) {
                        if(sce->world==wrld) {
                                if(sce->id.lib==0) {
index 1abc2fc3398c8fe5d705fe09f192fd8519a2c5c5..afd8895edd9dc4f79de8b8631435e13cbb958353 100644 (file)
@@ -695,12 +695,12 @@ void set_special_seq_update(int val)
 void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs)
 {
        extern void gl_round_box(int mode, float minx, float miny, float maxx, float maxy, float rad);
+       struct Main *bmain= CTX_data_main(C);
        struct ImBuf *ibuf = 0;
        struct ImBuf *scope = 0;
        struct View2D *v2d = &ar->v2d;
        int rectx, recty;
        float viewrectx, viewrecty;
-       static int recursive= 0;
        float render_size = 0.0;
        float proxy_size = 100.0;
        GLuint texid;
@@ -740,33 +740,12 @@ void draw_image_seq(const bContext* C, Scene *scene, ARegion *ar, SpaceSeq *sseq
        UI_view2d_totRect_set(v2d, viewrectx + 0.5f, viewrecty + 0.5f);
        UI_view2d_curRect_validate(v2d);
 
-       /* BIG PROBLEM: the give_ibuf_seq() can call a rendering, which in turn calls redraws...
-          this shouldn't belong in a window drawing....
-          So: solve this once event based. 
-          Now we check for recursion, space type and active area again (ton) */
-
-       if(recursive)
-               return;
-       else {
-               recursive= 1;
-               if (special_seq_update) {
-                       ibuf= give_ibuf_seq_direct(scene, rectx, recty, cfra + frame_ofs, proxy_size, special_seq_update);
-               } 
-               else if (!U.prefetchframes) { // XXX || (G.f & G_PLAYANIM) == 0) {
-                       ibuf= (ImBuf *)give_ibuf_seq(scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
-               } 
-               else {
-                       ibuf= (ImBuf *)give_ibuf_seq_threaded(scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
-               }
-               recursive= 0;
-               
-               /* XXX HURMF! the give_ibuf_seq can call image display in this window */
-//             if(sa->spacetype!=SPACE_SEQ)
-//                     return;
-//             if(sa!=curarea) {
-//                     areawinset(sa->win);
-//             }
-       }
+       if (special_seq_update)
+               ibuf= give_ibuf_seq_direct(bmain, scene, rectx, recty, cfra + frame_ofs, proxy_size, special_seq_update);
+       else if (!U.prefetchframes) // XXX || (G.f & G_PLAYANIM) == 0) {
+               ibuf= (ImBuf *)give_ibuf_seq(bmain, scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
+       else
+               ibuf= (ImBuf *)give_ibuf_seq_threaded(bmain, scene, rectx, recty, cfra + frame_ofs, sseq->chanshown, proxy_size);
        
        if(ibuf==NULL) 
                return;
index 590856803cceef996f7faef51d9bc31dfed9e04f..d1654dc5d375457f15eb71e8588f936868ce4cad 100644 (file)
@@ -48,6 +48,7 @@
 
 #include "BKE_context.h"
 #include "BKE_global.h"
+#include "BKE_main.h"
 #include "BKE_sequencer.h"
 #include "BKE_report.h"
 #include "BKE_sound.h"
@@ -734,7 +735,7 @@ static void recurs_del_seq_flag(Scene *scene, ListBase *lb, short flag, short de
 }
 
 
-static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
+static Sequence *cut_seq_hard(Main *bmain, Scene *scene, Sequence * seq, int cutframe)
 {
        TransSeq ts;
        Sequence *seqn = 0;
@@ -781,7 +782,7 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
                }
        }
        
-       reload_sequence_new_file(scene, seq, FALSE);
+       reload_sequence_new_file(bmain, scene, seq, FALSE);
        calc_sequence(scene, seq);
        new_tstripdata(seq); 
 
@@ -821,14 +822,14 @@ static Sequence *cut_seq_hard(Scene *scene, Sequence * seq, int cutframe)
                        seqn->startstill = 0;
                }
                
-               reload_sequence_new_file(scene, seqn, FALSE);
+               reload_sequence_new_file(bmain, scene, seqn, FALSE);
                calc_sequence(scene, seqn);
                new_tstripdata(seqn);
        }
        return seqn;
 }
 
-static Sequence *cut_seq_soft(Scene *scene, Sequence * seq, int cutframe)
+static Sequence *cut_seq_soft(Main *bmain, Scene *scene, Sequence * seq, int cutframe)
 {
        TransSeq ts;
        Sequence *seqn = 0;
@@ -918,8 +919,8 @@ static Sequence *cut_seq_soft(Scene *scene, Sequence * seq, int cutframe)
 
 /* like duplicate, but only duplicate and cut overlapping strips,
  * strips to the left of the cutframe are ignored and strips to the right are moved into the new list */
-static int cut_seq_list(Scene *scene, ListBase *old, ListBase *new, int cutframe,
-                       Sequence * (*cut_seq)(Scene *, Sequence *, int))
+static int cut_seq_list(Main *bmain, Scene *scene, ListBase *old, ListBase *new, int cutframe,
+                       Sequence * (*cut_seq)(Main *, Scene *, Sequence *, int))
 {
        int did_something = FALSE;
        Sequence *seq, *seq_next;
@@ -933,7 +934,7 @@ static int cut_seq_list(Scene *scene, ListBase *old, ListBase *new, int cutframe
                if(seq->flag & SELECT) {
                        if(cutframe > seq->startdisp && 
                           cutframe < seq->enddisp) {
-                               Sequence * seqn = cut_seq(scene, seq, cutframe);
+                               Sequence * seqn = cut_seq(bmain, scene, seq, cutframe);
                                if (seqn) {
                                        BLI_addtail(new, seqn);
                                }
@@ -1003,7 +1004,7 @@ void touch_seq_files(Scene *scene)
        waitcursor(0);
 }
 
-void set_filter_seq(Scene *scene)
+void set_filter_seq(Main *bmain, Scene *scene)
 {
        Sequence *seq;
        Editing *ed= seq_give_editing(scene, FALSE);
@@ -1017,7 +1018,7 @@ void set_filter_seq(Scene *scene)
                if(seq->flag & SELECT) {
                        if(seq->type==SEQ_MOVIE) {
                                seq->flag |= SEQ_FILTERY;
-                               reload_sequence_new_file(scene, seq, FALSE);
+                               reload_sequence_new_file(bmain, scene, seq, FALSE);
                                calc_sequence(scene, seq);
                        }
 
@@ -1505,6 +1506,7 @@ static EnumPropertyItem prop_cut_types[] = {
 
 static int sequencer_cut_exec(bContext *C, wmOperator *op)
 {
+       Main *bmain= CTX_data_main(C);
        Scene *scene= CTX_data_scene(C);
        Editing *ed= seq_give_editing(scene, FALSE);
        int cut_side, cut_hard, cut_frame;
@@ -1519,10 +1521,10 @@ static int sequencer_cut_exec(bContext *C, wmOperator *op)
        newlist.first= newlist.last= NULL;
 
        if (cut_hard==SEQ_CUT_HARD) {
-               changed = cut_seq_list(scene,
+               changed = cut_seq_list(bmain, scene,
                        ed->seqbasep, &newlist, cut_frame, cut_seq_hard);
        } else {
-               changed = cut_seq_list(scene,
+               changed = cut_seq_list(bmain, scene,
                        ed->seqbasep, &newlist, cut_frame, cut_seq_soft);
        }
        
index b39a9fecebfd5ae94fecfbec393494d8ad6ef1a8..48ff98ace78707142a020cdca36c20c466412e48 100644 (file)
@@ -36,6 +36,7 @@
 #include "DNA_sequence_types.h"
 
 #include "BKE_animsys.h"
+#include "BKE_global.h"
 #include "BKE_sequencer.h"
 
 #include "MEM_guardedalloc.h"
@@ -149,7 +150,7 @@ static void rna_Sequence_anim_startofs_final_set(PointerRNA *ptr, int value)
 
        seq->anim_startofs = MIN2(value, seq->len + seq->anim_startofs);
 
-       reload_sequence_new_file(scene, seq, FALSE);
+       reload_sequence_new_file(G.main, scene, seq, FALSE);
        rna_Sequence_frame_change_update(scene, seq);
 }
 
@@ -160,7 +161,7 @@ static void rna_Sequence_anim_endofs_final_set(PointerRNA *ptr, int value)
 
        seq->anim_endofs = MIN2(value, seq->len + seq->anim_endofs);
 
-       reload_sequence_new_file(scene, seq, FALSE);
+       reload_sequence_new_file(G.main, scene, seq, FALSE);
        rna_Sequence_frame_change_update(scene, seq);
 }
 
@@ -551,7 +552,7 @@ static void rna_Sequence_mute_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 static void rna_Sequence_filepath_update(Main *bmain, Scene *scene, PointerRNA *ptr)
 {
        Sequence *seq= (Sequence*)(ptr->data);
-       reload_sequence_new_file(scene, seq, TRUE);
+       reload_sequence_new_file(G.main, scene, seq, TRUE);
        calc_sequence(scene, seq);
        rna_Sequence_update(bmain, scene, ptr);
 }
index 183b46af8639dc5f635d193bc50e32f7425c6fa5..b1d379f4d1b75711b6585c82baf55e426bd7a393 100644 (file)
@@ -2463,7 +2463,7 @@ static void do_render_seq(Render * re)
 
        recurs_depth++;
 
-       ibuf= give_ibuf_seq(re->scene, rr->rectx, rr->recty, cfra, 0, 100.0);
+       ibuf= give_ibuf_seq(re->main, re->scene, rr->rectx, rr->recty, cfra, 0, 100.0);
 
        recurs_depth--;