Revision: 29688 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29688 Author: campbellbarton Date: 2010-06-25 14:35:23 +0200 (Fri, 25 Jun 2010)
Log Message: ----------- Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r29653:29687 Modified Paths: -------------- branches/render25/CMakeLists.txt branches/render25/config/linux2-config.py branches/render25/config/linuxcross-config.py branches/render25/config/win32-vc-config.py branches/render25/config/win64-vc-config.py branches/render25/source/blender/blenkernel/BKE_sequencer.h branches/render25/source/blender/blenkernel/intern/cdderivedmesh.c branches/render25/source/blender/blenkernel/intern/object.c branches/render25/source/blender/blenkernel/intern/scene.c branches/render25/source/blender/blenkernel/intern/sequencer.c branches/render25/source/blender/collada/DocumentImporter.cpp branches/render25/source/blender/editors/gpencil/gpencil_paint.c branches/render25/source/blender/editors/render/render_opengl.c branches/render25/source/blender/editors/screen/screen_edit.c branches/render25/source/blender/editors/sculpt_paint/paint_image.c branches/render25/source/blender/editors/sculpt_paint/paint_stroke.c branches/render25/source/blender/editors/space_buttons/buttons_ops.c branches/render25/source/blender/editors/space_image/image_ops.c branches/render25/source/blender/editors/space_logic/logic_window.c branches/render25/source/blender/editors/space_sequencer/sequencer_add.c branches/render25/source/blender/editors/space_sequencer/sequencer_edit.c branches/render25/source/blender/editors/space_sequencer/sequencer_intern.h branches/render25/source/blender/editors/space_sequencer/sequencer_select.c branches/render25/source/blender/editors/space_view3d/drawmesh.c branches/render25/source/blender/makesdna/DNA_sequence_types.h branches/render25/source/blender/makesrna/intern/rna_wm.c branches/render25/source/blender/python/intern/bpy_props.c branches/render25/source/blender/render/intern/source/rayshade.c branches/render25/source/blender/windowmanager/intern/wm_event_system.c branches/render25/source/blender/windowmanager/wm_event_types.h branches/render25/source/creator/creator.c Added Paths: ----------- branches/render25/source/blender/blenlib/BLI_cpu.h branches/render25/source/blender/blenlib/intern/cpu.c Modified: branches/render25/CMakeLists.txt =================================================================== --- branches/render25/CMakeLists.txt 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/CMakeLists.txt 2010-06-25 12:35:23 UTC (rev 29688) @@ -110,7 +110,7 @@ OPTION(WITH_LZMA "Enable best LZMA compression, (used for pointcache)" ON) # Misc -OPTION(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" OFF) +OPTION(WITH_RAYOPTIMIZATION "Enable use of SIMD (SSE) optimizations for the raytracer" ON) OPTION(WITH_CXX_GUARDEDALLOC "Enable GuardedAlloc for C++ memory allocation tracking" OFF) OPTION(WITH_INSTALL "Install accompanying scripts and language files needed to run blender" ON) Modified: branches/render25/config/linux2-config.py =================================================================== --- branches/render25/config/linux2-config.py 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/config/linux2-config.py 2010-06-25 12:35:23 UTC (rev 29688) @@ -168,7 +168,7 @@ WITH_BF_OPENMP = True #Ray trace optimization -WITH_BF_RAYOPTIMIZATION = False +WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse','-pthread'] ## Modified: branches/render25/config/linuxcross-config.py =================================================================== --- branches/render25/config/linuxcross-config.py 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/config/linuxcross-config.py 2010-06-25 12:35:23 UTC (rev 29688) @@ -169,7 +169,7 @@ BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib ${BF_ICONV_LIBPATH}' #Ray trace optimization -WITH_BF_RAYOPTIMIZATION = False +WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['-msse'] CCFLAGS = [ '-pipe', '-funsigned-char', '-fno-strict-aliasing' ] Modified: branches/render25/config/win32-vc-config.py =================================================================== --- branches/render25/config/win32-vc-config.py 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/config/win32-vc-config.py 2010-06-25 12:35:23 UTC (rev 29688) @@ -150,7 +150,7 @@ BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib' #Ray trace optimization -WITH_BF_RAYOPTIMIZATION = False +WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['/arch:SSE'] WITH_BF_STATICOPENGL = False Modified: branches/render25/config/win64-vc-config.py =================================================================== --- branches/render25/config/win64-vc-config.py 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/config/win64-vc-config.py 2010-06-25 12:35:23 UTC (rev 29688) @@ -163,7 +163,7 @@ BF_OPENCOLLADA_LIBPATH = '${BF_OPENCOLLADA}/lib' #Ray trace optimization -WITH_BF_RAYOPTIMIZATION = False +WITH_BF_RAYOPTIMIZATION = True BF_RAYOPTIMIZATION_SSE_FLAGS = ['/arch:SSE','/arch:SSE2'] WITH_BF_STATICOPENGL = False Modified: branches/render25/source/blender/blenkernel/BKE_sequencer.h =================================================================== --- branches/render25/source/blender/blenkernel/BKE_sequencer.h 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/source/blender/blenkernel/BKE_sequencer.h 2010-06-25 12:35:23 UTC (rev 29688) @@ -191,12 +191,15 @@ int shuffle_seq_time(ListBase * seqbasep, struct Scene *evil_scene); int seqbase_isolated_sel_check(struct ListBase *seqbase); void free_imbuf_seq(struct Scene *scene, struct ListBase * seqbasep, int check_mem_usage); +struct Sequence *seq_dupli_recursive(struct Scene *scene, struct Sequence * seq, int dupe_flag); int seq_swap(struct Sequence *seq_a, struct Sequence *seq_b); void seq_update_sound(struct Scene* scene, struct Sequence *seq); void seq_update_muting(struct Scene* scene, struct Editing *ed); void seqbase_sound_reload(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); struct Sequence *get_seq_by_name(struct ListBase *seqbase, const char *name, int recursive); @@ -225,6 +228,11 @@ #define SEQ_LOAD_MOVIE_SOUND 1<<2 #define SEQ_LOAD_SOUND_CACHE 1<<3 + +/* seq_dupli' flags */ +#define SEQ_DUPE_UNIQUE_NAME 1<<0 +#define SEQ_DUPE_CONTEXT 1<<1 + /* use as an api function */ typedef struct Sequence *(*SeqLoadFunc)(struct bContext *, ListBase *, struct SeqLoadInfo *); Modified: branches/render25/source/blender/blenkernel/intern/cdderivedmesh.c =================================================================== --- branches/render25/source/blender/blenkernel/intern/cdderivedmesh.c 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/source/blender/blenkernel/intern/cdderivedmesh.c 2010-06-25 12:35:23 UTC (rev 29688) @@ -744,7 +744,7 @@ if( flag != lastFlag ) { if( startFace < i ) { if( lastFlag != 0 ) { /* if the flag is 0 it means the face is hidden or invisible */ - if (lastFlag==1 && mcol) + if (lastFlag==1 && col) GPU_color_switch(1); else GPU_color_switch(0); @@ -757,7 +757,7 @@ } if( startFace < dm->drawObject->nelements/3 ) { if( lastFlag != 0 ) { /* if the flag is 0 it means the face is hidden or invisible */ - if (lastFlag==1 && mcol) + if (lastFlag==1 && col) GPU_color_switch(1); else GPU_color_switch(0); Modified: branches/render25/source/blender/blenkernel/intern/object.c =================================================================== --- branches/render25/source/blender/blenkernel/intern/object.c 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/source/blender/blenkernel/intern/object.c 2010-06-25 12:35:23 UTC (rev 29688) @@ -652,6 +652,14 @@ } } } + else if(sl->spacetype==SPACE_BUTS) { + SpaceButs *sbuts= (SpaceButs *)sl; + + if(sbuts->pinid==(ID *)ob) { + sbuts->flag&= ~SB_PIN_CONTEXT; + sbuts->pinid= NULL; + } + } } sa= sa->next; Modified: branches/render25/source/blender/blenkernel/intern/scene.c =================================================================== --- branches/render25/source/blender/blenkernel/intern/scene.c 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/source/blender/blenkernel/intern/scene.c 2010-06-25 12:35:23 UTC (rev 29688) @@ -44,6 +44,7 @@ #include "DNA_group_types.h" #include "DNA_scene_types.h" #include "DNA_screen_types.h" +#include "DNA_sequence_types.h" #include "BKE_anim.h" #include "BKE_animsys.h" @@ -197,6 +198,10 @@ scen->r.qtcodecdata->cdParms = MEM_dupallocN(scen->r.qtcodecdata->cdParms); } + if(sce->r.ffcodecdata.properties) { /* intentionally check scen not sce. */ + scen->r.ffcodecdata.properties= IDP_CopyProperty(sce->r.ffcodecdata.properties); + } + /* NOTE: part of SCE_COPY_LINK_DATA and SCE_COPY_FULL operations * are done outside of blenkernel with ED_objects_single_users! */ @@ -211,6 +216,12 @@ id_us_plus((ID *)scen->world); scen->world= copy_world(scen->world); } + + if(sce->ed) { + scen->ed= MEM_callocN( sizeof(Editing), "addseq"); + scen->ed->seqbasep= &scen->ed->seqbase; + seqbase_dupli_recursive(sce, &scen->ed->seqbase, &sce->ed->seqbase, 0); + } } sound_create_scene(scen); Modified: branches/render25/source/blender/blenkernel/intern/sequencer.c =================================================================== --- branches/render25/source/blender/blenkernel/intern/sequencer.c 2010-06-25 12:28:35 UTC (rev 29687) +++ branches/render25/source/blender/blenkernel/intern/sequencer.c 2010-06-25 12:35:23 UTC (rev 29688) @@ -3991,7 +3991,7 @@ AUD_SoundInfo info; - sound = sound_new_file(CTX_data_main(C), seq_load->path); + sound = sound_new_file(CTX_data_main(C), seq_load->path); /* handles relative paths */ if (sound==NULL || sound->playback_handle == NULL) { //if(op) @@ -4039,6 +4039,7 @@ Sequence *sequencer_add_movie_strip(bContext *C, ListBase *seqbasep, SeqLoadInfo *seq_load) { Scene *scene= CTX_data_scene(C); /* only for sound */ + char path[sizeof(seq_load->path)]; Sequence *seq, *soundseq; /* generic strip vars */ Strip *strip; @@ -4046,8 +4047,11 @@ struct anim *an; - an = openanim(seq_load->path, IB_rect); + BLI_strncpy(path, seq_load->path, sizeof(path)); + BLI_path_abs(path, G.sce); + an = openanim(path, IB_rect); + if(an==NULL) return NULL; @@ -4086,3 +4090,131 @@ return seq; } + + +static Sequence *seq_dupli(struct Scene *scene, Sequence *seq, int dupe_flag) +{ + Sequence *seqn = MEM_dupallocN(seq); + + seq->tmp = seqn; + seqn->strip= MEM_dupallocN(seq->strip); + + // XXX: add F-Curve duplication stuff? + + seqn->strip->tstripdata = 0; + seqn->strip->tstripdata_startstill = 0; + seqn->strip->tstripdata_endstill = 0; + seqn->strip->ibuf_startstill = 0; + seqn->strip->ibuf_endstill = 0; + + if (seq->strip->crop) { + seqn->strip->crop = MEM_dupallocN(seq->strip->crop); + } + + if (seq->strip->transform) { + seqn->strip->transform = MEM_dupallocN(seq->strip->transform); + } + + if (seq->strip->proxy) { + seqn->strip->proxy = MEM_dupallocN(seq->strip->proxy); + } + + if (seq->strip->color_balance) { + seqn->strip->color_balance + = MEM_dupallocN(seq->strip->color_balance); + } + + if(seq->type==SEQ_META) { + seqn->strip->stripdata = 0; + + seqn->seqbase.first= seqn->seqbase.last= 0; + /* WATCH OUT!!! - This metastrip is not recursively duplicated here - do this after!!! */ + /* - seq_dupli_recursive(&seq->seqbase,&seqn->seqbase);*/ + } else if(seq->type == SEQ_SCENE) { + seqn->strip->stripdata = 0; + if(seq->scene_sound) + seqn->scene_sound = sound_scene_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs); + } else if(seq->type == SEQ_MOVIE) { + seqn->strip->stripdata = + MEM_dupallocN(seq->strip->stripdata); + seqn->anim= 0; + } else if(seq->type == SEQ_SOUND) { + seqn->strip->stripdata = + MEM_dupallocN(seq->strip->stripdata); + if(seq->scene_sound) + seqn->scene_sound = sound_add_scene_sound(scene, seqn, seq->startdisp, seq->enddisp, seq->startofs + seq->anim_startofs); + + seqn->sound->id.us++; + } else if(seq->type == SEQ_IMAGE) { + seqn->strip->stripdata = + MEM_dupallocN(seq->strip->stripdata); + } else if(seq->type >= SEQ_EFFECT) { + if(seq->seq1 && seq->seq1->tmp) seqn->seq1= seq->seq1->tmp; + if(seq->seq2 && seq->seq2->tmp) seqn->seq2= seq->seq2->tmp; @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs