[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26641] trunk/blender/source/blender: bugfix [#20990] maker name don't show in render stamp
Campbell Barton
ideasman42 at gmail.com
Sat Feb 6 15:56:26 CET 2010
Revision: 26641
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26641
Author: campbellbarton
Date: 2010-02-06 15:56:25 +0100 (Sat, 06 Feb 2010)
Log Message:
-----------
bugfix [#20990] maker name don't show in render stamp
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_scene.h
trunk/blender/source/blender/blenkernel/intern/image.c
trunk/blender/source/blender/blenkernel/intern/scene.c
trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
Modified: trunk/blender/source/blender/blenkernel/BKE_scene.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_scene.h 2010-02-06 14:32:50 UTC (rev 26640)
+++ trunk/blender/source/blender/blenkernel/BKE_scene.h 2010-02-06 14:56:25 UTC (rev 26641)
@@ -68,6 +68,9 @@
struct Object *scene_find_camera(struct Scene *sc);
struct Object *scene_find_camera_switch(struct Scene *scene); // DURIAN_CAMERA_SWITCH
+char *scene_find_marker_name(struct Scene *scene, int frame);
+char *scene_find_last_marker_name(struct Scene *scene, int frame);
+
struct Base *scene_add_base(struct Scene *sce, struct Object *ob);
void scene_deselect_all(struct Scene *sce);
void scene_select_base(struct Scene *sce, struct Base *selbase);
Modified: trunk/blender/source/blender/blenkernel/intern/image.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/image.c 2010-02-06 14:32:50 UTC (rev 26640)
+++ trunk/blender/source/blender/blenkernel/intern/image.c 2010-02-06 14:56:25 UTC (rev 26641)
@@ -1011,9 +1011,9 @@
}
if (scene->r.stamp & R_STAMP_MARKER) {
- TimeMarker *marker = NULL; // XXX get_frame_marker(scene->r.cfra);
+ char *name = scene_find_last_marker_name(scene, CFRA);
- if (marker) strcpy(text, marker->name);
+ if (name) strcpy(text, name);
else strcpy(text, "<none>");
if (do_prefix) sprintf(stamp_data->marker, "Marker %s", text);
Modified: trunk/blender/source/blender/blenkernel/intern/scene.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/scene.c 2010-02-06 14:32:50 UTC (rev 26640)
+++ trunk/blender/source/blender/blenkernel/intern/scene.c 2010-02-06 14:56:25 UTC (rev 26641)
@@ -732,26 +732,47 @@
}
#endif
-static char *get_cfra_marker_name(Scene *scene)
+char *scene_find_marker_name(Scene *scene, int frame)
{
ListBase *markers= &scene->markers;
TimeMarker *m1, *m2;
/* search through markers for match */
for (m1=markers->first, m2=markers->last; m1 && m2; m1=m1->next, m2=m2->prev) {
- if (m1->frame==CFRA)
+ if (m1->frame==frame)
return m1->name;
if (m1 == m2)
break;
- if (m2->frame==CFRA)
+ if (m2->frame==frame)
return m2->name;
}
return NULL;
}
+/* return the current marker for this frame,
+we can have more then 1 marker per frame, this just returns the first :/ */
+char *scene_find_last_marker_name(Scene *scene, int frame)
+{
+ TimeMarker *marker, *best_marker = NULL;
+ int best_frame = -MAXFRAME*2;
+ for (marker= scene->markers.first; marker; marker= marker->next) {
+ if (marker->frame==frame) {
+ return marker;
+ }
+
+ if ( marker->frame > best_frame && marker->frame < frame) {
+ best_marker = marker;
+ best_frame = marker->frame;
+ }
+ }
+
+ return best_marker ? best_marker->name : NULL;
+}
+
+
Base *scene_add_base(Scene *sce, Object *ob)
{
Base *b= MEM_callocN(sizeof(*b), "scene_add_base");
Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c 2010-02-06 14:32:50 UTC (rev 26640)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c 2010-02-06 14:56:25 UTC (rev 26641)
@@ -755,27 +755,6 @@
}
}
-
-static char *get_cfra_marker_name(Scene *scene)
-{
- ListBase *markers= &scene->markers;
- TimeMarker *m1, *m2;
-
- /* search through markers for match */
- for (m1=markers->first, m2=markers->last; m1 && m2; m1=m1->next, m2=m2->prev) {
- if (m1->frame==CFRA)
- return m1->name;
-
- if (m1 == m2)
- break;
-
- if (m2->frame==CFRA)
- return m2->name;
- }
-
- return NULL;
-}
-
/* draw info beside axes in bottom left-corner:
* framenum, object name, bone name (if available), marker name (if available)
*/
@@ -785,7 +764,7 @@
short offset=30;
/* get name of marker on current frame (if available) */
- markern= get_cfra_marker_name(scene);
+ markern= scene_find_marker_name(scene, CFRA);
/* check if there is an object */
if(ob) {
More information about the Bf-blender-cvs
mailing list