[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27963] branches/render25: Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r27948 :27962
Brecht Van Lommel
brecht at blender.org
Fri Apr 2 18:04:12 CEST 2010
Revision: 27963
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27963
Author: blendix
Date: 2010-04-02 18:04:12 +0200 (Fri, 02 Apr 2010)
Log Message:
-----------
Render Branch: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r27948:27962
Modified Paths:
--------------
branches/render25/release/scripts/ui/properties_data_modifier.py
branches/render25/source/blender/blenkernel/BKE_scene.h
branches/render25/source/blender/blenkernel/intern/pointcache.c
branches/render25/source/blender/blenkernel/intern/scene.c
branches/render25/source/blender/editors/animation/anim_draw.c
branches/render25/source/blender/editors/animation/keyframes_edit.c
branches/render25/source/blender/editors/animation/keyframes_general.c
branches/render25/source/blender/editors/armature/meshlaplacian.c
branches/render25/source/blender/editors/armature/poselib.c
branches/render25/source/blender/editors/include/ED_keyframes_edit.h
branches/render25/source/blender/editors/interface/interface_handlers.c
branches/render25/source/blender/editors/interface/interface_style.c
branches/render25/source/blender/editors/interface/interface_widgets.c
branches/render25/source/blender/editors/object/object_edit.c
branches/render25/source/blender/editors/space_action/action_edit.c
branches/render25/source/blender/editors/space_action/action_select.c
branches/render25/source/blender/editors/space_graph/graph_edit.c
branches/render25/source/blender/editors/space_graph/graph_select.c
branches/render25/source/blender/editors/space_nla/nla_edit.c
branches/render25/source/blender/editors/space_view3d/drawobject.c
branches/render25/source/blender/makesrna/intern/rna_modifier.c
branches/render25/source/blender/makesrna/intern/rna_scene.c
branches/render25/source/blender/makesrna/intern/rna_world.c
branches/render25/source/gameengine/Converter/BL_BlenderDataConversion.cpp
Modified: branches/render25/release/scripts/ui/properties_data_modifier.py
===================================================================
--- branches/render25/release/scripts/ui/properties_data_modifier.py 2010-04-02 15:03:13 UTC (rev 27962)
+++ branches/render25/release/scripts/ui/properties_data_modifier.py 2010-04-02 16:04:12 UTC (rev 27963)
@@ -368,7 +368,6 @@
sub = col.column()
sub.label(text="Object:")
sub.prop(md, "object", text="")
- sub.prop(md, "mode", text="")
sub.active = not md.is_bound
if wide_ui:
col = split.column()
Modified: branches/render25/source/blender/blenkernel/BKE_scene.h
===================================================================
--- branches/render25/source/blender/blenkernel/BKE_scene.h 2010-04-02 15:03:13 UTC (rev 27962)
+++ branches/render25/source/blender/blenkernel/BKE_scene.h 2010-04-02 16:04:12 UTC (rev 27963)
@@ -47,10 +47,9 @@
#define SCE_COPY_LINK_DATA 2
#define SCE_COPY_FULL 3
-/* note; doesn't work when scene is empty */
-#define SETLOOPER(s, b) sce= s, b= (Base*)sce->base.first; b; b= (Base*)(b->next?b->next:sce->set?(sce=sce->set)->base.first:NULL)
+#define SETLOOPER(s, b) sce= s, b= _setlooper_base_step(&sce, NULL); b; b= _setlooper_base_step(&sce, b)
+struct Base *_setlooper_base_step(struct Scene **sce, struct Base *base);
-
void free_avicodecdata(struct AviCodecData *acd);
void free_qtcodecdata(struct QuicktimeCodecData *acd);
Modified: branches/render25/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/pointcache.c 2010-04-02 15:03:13 UTC (rev 27962)
+++ branches/render25/source/blender/blenkernel/intern/pointcache.c 2010-04-02 16:04:12 UTC (rev 27963)
@@ -560,7 +560,7 @@
static int ptcache_totpoint_cloth(void *cloth_v, int cfra)
{
ClothModifierData *clmd= cloth_v;
- return clmd->clothObject->numverts;
+ return clmd->clothObject ? clmd->clothObject->numverts : 0;
}
/* Creating ID's */
@@ -2327,12 +2327,13 @@
/* Baking */
static int count_quick_cache(Scene *scene, int *quick_step)
{
- Base *base = scene->base.first;
+ Base *base;
PTCacheID *pid;
ListBase pidlist;
int autocache_count= 0;
+ Scene *sce; /* for macro only */
- for(base = scene->base.first; base; base = base->next) {
+ for(SETLOOPER(scene, base)) {
if(base->object) {
BKE_ptcache_ids_from_object(&pidlist, base->object, scene, MAX_DUPLI_RECUR);
@@ -2401,6 +2402,7 @@
void BKE_ptcache_make_cache(PTCacheBaker* baker)
{
Scene *scene = baker->scene;
+ Scene *sce; /* SETLOOPER macro only */
Base *base;
ListBase pidlist;
PTCacheID *pid = baker->pid;
@@ -2465,7 +2467,7 @@
cache->flag &= ~PTCACHE_BAKED;
}
}
- else for(base=scene->base.first; base; base= base->next) {
+ for(SETLOOPER(scene, base)) {
/* cache/bake everything in the scene */
BKE_ptcache_ids_from_object(&pidlist, base->object, scene, MAX_DUPLI_RECUR);
@@ -2548,7 +2550,7 @@
BKE_ptcache_write_cache(pid, 0);
}
}
- else for(base=scene->base.first; base; base= base->next) {
+ else for(SETLOOPER(scene, base)) {
BKE_ptcache_ids_from_object(&pidlist, base->object, scene, MAX_DUPLI_RECUR);
for(pid=pidlist.first; pid; pid=pid->next) {
Modified: branches/render25/source/blender/blenkernel/intern/scene.c
===================================================================
--- branches/render25/source/blender/blenkernel/intern/scene.c 2010-04-02 15:03:13 UTC (rev 27962)
+++ branches/render25/source/blender/blenkernel/intern/scene.c 2010-04-02 16:04:12 UTC (rev 27963)
@@ -891,10 +891,12 @@
return ctime;
}
-static void scene_update_newframe(Scene *scene, unsigned int lay)
+static void scene_update_newframe(Scene *scene, int cfra, unsigned int lay)
{
Base *base;
Object *ob;
+ int cfra_back= scene->r.cfra;
+ scene->r.cfra= cfra;
for(base= scene->base.first; base; base= base->next) {
ob= base->object;
@@ -910,6 +912,8 @@
// base->lay= ob->lay;
//}
}
+
+ scene->r.cfra= cfra_back;
}
/* this is called in main loop, doing tagged updates before redraw */
@@ -953,6 +957,7 @@
BKE_animsys_evaluate_animdata(&scene->id, adt, ctime, 0);
}
+ /* XXX - this is called far to often, should be made apart of the depgraph */
BKE_ptcache_quick_cache_all(scene);
/* in the future this should handle updates for all datablocks, not
@@ -989,10 +994,11 @@
/* sets first, we allow per definition current scene to have dependencies on sets */
- for(sce_iter= sce->set; sce_iter; sce_iter= sce_iter->set)
- scene_update_newframe(sce_iter, lay);
+ for(sce_iter= sce->set; sce_iter; sce_iter= sce_iter->set) {
+ scene_update_newframe(sce_iter, sce->r.cfra, lay);
+ }
- scene_update_newframe(sce, lay);
+ scene_update_newframe(sce, sce->r.cfra, lay);
}
/* return default layer, also used to patch old files */
@@ -1046,3 +1052,26 @@
return error;
}
+/* helper function for the SETLOOPER macro */
+Base *_setlooper_base_step(Scene **sce, Base *base)
+{
+ if(base && base->next) {
+ /* common case, step to the next */
+ return base->next;
+ }
+ else if(base==NULL && (*sce)->base.first) {
+ /* first time looping, return the scenes first base */
+ return (Base *)(*sce)->base.first;
+ }
+ else {
+ /* reached the end, get the next base in the set */
+ while((*sce= (*sce)->set)) {
+ base= (Base *)(*sce)->base.first;
+ if(base) {
+ return base;
+ }
+ }
+ }
+
+ return NULL;
+}
Modified: branches/render25/source/blender/editors/animation/anim_draw.c
===================================================================
--- branches/render25/source/blender/editors/animation/anim_draw.c 2010-04-02 15:03:13 UTC (rev 27962)
+++ branches/render25/source/blender/editors/animation/anim_draw.c 2010-04-02 16:04:12 UTC (rev 27963)
@@ -307,11 +307,11 @@
/* ------------------- */
/* helper function for ANIM_nla_mapping_apply_fcurve() -> "restore", i.e. mapping points back to action-time */
-static short bezt_nlamapping_restore(BeztEditData *bed, BezTriple *bezt)
+static short bezt_nlamapping_restore(KeyframeEditData *ked, BezTriple *bezt)
{
/* AnimData block providing scaling is stored in 'data', only_keys option is stored in i1 */
- AnimData *adt= (AnimData *)bed->data;
- short only_keys= (short)bed->i1;
+ AnimData *adt= (AnimData *)ked->data;
+ short only_keys= (short)ked->i1;
/* adjust BezTriple handles only if allowed to */
if (only_keys == 0) {
@@ -325,11 +325,11 @@
}
/* helper function for ANIM_nla_mapping_apply_fcurve() -> "apply", i.e. mapping points to NLA-mapped global time */
-static short bezt_nlamapping_apply(BeztEditData *bed, BezTriple *bezt)
+static short bezt_nlamapping_apply(KeyframeEditData *ked, BezTriple *bezt)
{
/* AnimData block providing scaling is stored in 'data', only_keys option is stored in i1 */
- AnimData *adt= (AnimData*)bed->data;
- short only_keys= (short)bed->i1;
+ AnimData *adt= (AnimData*)ked->data;
+ short only_keys= (short)ked->i1;
/* adjust BezTriple handles only if allowed to */
if (only_keys == 0) {
@@ -349,16 +349,16 @@
*/
void ANIM_nla_mapping_apply_fcurve (AnimData *adt, FCurve *fcu, short restore, short only_keys)
{
- BeztEditData bed;
- BeztEditFunc map_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc map_cb;
/* init edit data
* - AnimData is stored in 'data'
* - only_keys is stored in 'i1'
*/
- memset(&bed, 0, sizeof(BeztEditData));
- bed.data= (void *)adt;
- bed.i1= (int)only_keys;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.data= (void *)adt;
+ ked.i1= (int)only_keys;
/* get editing callback */
if (restore)
@@ -367,7 +367,7 @@
map_cb= bezt_nlamapping_apply;
/* apply to F-Curve */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, NULL, map_cb, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, NULL, map_cb, NULL);
}
/* *************************************************** */
@@ -409,12 +409,12 @@
/* ----------------------- */
/* helper function for ANIM_unit_mapping_apply_fcurve -> mapping callback for unit mapping */
-static short bezt_unit_mapping_apply (BeztEditData *bed, BezTriple *bezt)
+static short bezt_unit_mapping_apply (KeyframeEditData *ked, BezTriple *bezt)
{
/* mapping factor is stored in f1, flags are stored in i1 */
- short only_keys= (bed->i1 & ANIM_UNITCONV_ONLYKEYS);
- short sel_vs= (bed->i1 & ANIM_UNITCONV_SELVERTS);
- float fac= bed->f1;
+ short only_keys= (ked->i1 & ANIM_UNITCONV_ONLYKEYS);
+ short sel_vs= (ked->i1 & ANIM_UNITCONV_SELVERTS);
+ float fac= ked->f1;
/* adjust BezTriple handles only if allowed to */
if (only_keys == 0) {
@@ -433,8 +433,8 @@
/* Apply/Unapply units conversions to keyframes */
void ANIM_unit_mapping_apply_fcurve (Scene *scene, ID *id, FCurve *fcu, short flag)
{
- BeztEditData bed;
- BeztEditFunc sel_cb;
+ KeyframeEditData ked;
+ KeyframeEditFunc sel_cb;
float fac;
/* calculate mapping factor, and abort if nothing to change */
@@ -446,9 +446,9 @@
* - mapping factor is stored in f1
* - flags are stored in 'i1'
*/
- memset(&bed, 0, sizeof(BeztEditData));
- bed.f1= (float)fac;
- bed.i1= (int)flag;
+ memset(&ked, 0, sizeof(KeyframeEditData));
+ ked.f1= (float)fac;
+ ked.i1= (int)flag;
/* only selected? */
if (flag & ANIM_UNITCONV_ONLYSEL)
@@ -457,7 +457,7 @@
sel_cb= NULL;
/* apply to F-Curve */
- ANIM_fcurve_keys_bezier_loop(&bed, fcu, sel_cb, bezt_unit_mapping_apply, NULL);
+ ANIM_fcurve_keyframes_loop(&ked, fcu, sel_cb, bezt_unit_mapping_apply, NULL);
// FIXME: loop here for samples should be generalised
// TODO: only sel?
Modified: branches/render25/source/blender/editors/animation/keyframes_edit.c
===================================================================
--- branches/render25/source/blender/editors/animation/keyframes_edit.c 2010-04-02 15:03:13 UTC (rev 27962)
+++ branches/render25/source/blender/editors/animation/keyframes_edit.c 2010-04-02 16:04:12 UTC (rev 27963)
@@ -61,7 +61,7 @@
/* This file defines an API and set of callback-operators for non-destructive editing of keyframe data.
*
* Two API functions are defined for actually performing the operations on the data:
- * ANIM_fcurve_keys_bezier_loop()
+ * ANIM_fcurve_keyframes_loop()
* which take the data they operate on, a few callbacks defining what operations to perform.
*
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list