[Bf-blender-cvs] [34c9284] master: Use preview option to detect frame range for filename when using ctrl F11.

Antony Riakiotakis noreply at git.blender.org
Fri Mar 27 11:39:19 CET 2015


Commit: 34c92848a77f75ec678b18ea2b203f05c828afdb
Author: Antony Riakiotakis
Date:   Fri Mar 27 11:39:09 2015 +0100
Branches: master
https://developer.blender.org/rB34c92848a77f75ec678b18ea2b203f05c828afdb

Use preview option to detect frame range for filename when using ctrl
F11.

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

M	release/scripts/startup/bl_operators/screen_play_rendered_anim.py
M	source/blender/blenkernel/BKE_writeavi.h
M	source/blender/blenkernel/intern/writeavi.c
M	source/blender/makesrna/intern/rna_scene_api.c

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

diff --git a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
index 3a7a9b9..5fe74ee 100644
--- a/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
+++ b/release/scripts/startup/bl_operators/screen_play_rendered_anim.py
@@ -107,11 +107,21 @@ class PlayRenderedAnim(Operator):
             del file_a, file_b, frame_tmp
             file = bpy.path.abspath(file)  # expand '//'
         else:
+            path_valid = True
             # works for movies and images
-            file = rd.frame_path(frame=scene.frame_start)
+            file = rd.frame_path(frame=scene.frame_start, preview=scene.use_preview_range)
             file = bpy.path.abspath(file)  # expand '//'
             if not os.path.exists(file):
                 self.report({'WARNING'}, "File %r not found" % file)
+                path_valid = False
+
+            #one last try for full range if we used preview range
+            if scene.use_preview_range and not path_valid:
+                file = rd.frame_path(frame=scene.frame_start, preview=False)
+                file = bpy.path.abspath(file)  # expand '//'
+                if not os.path.exists(file):
+                    self.report({'WARNING'}, "File %r not found" % file)
+
 
         cmd = [player_path]
         # extra options, fps controls etc.
diff --git a/source/blender/blenkernel/BKE_writeavi.h b/source/blender/blenkernel/BKE_writeavi.h
index 8206c36..bc06be0 100644
--- a/source/blender/blenkernel/BKE_writeavi.h
+++ b/source/blender/blenkernel/BKE_writeavi.h
@@ -52,7 +52,7 @@ typedef struct bMovieHandle {
 } bMovieHandle;
 
 bMovieHandle *BKE_movie_handle_get(const char imtype);
-void BKE_movie_filepath_get(char *string, struct RenderData *rd);
+void BKE_movie_filepath_get(char *string, struct RenderData *rd, bool preview);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/blenkernel/intern/writeavi.c b/source/blender/blenkernel/intern/writeavi.c
index b0e23b6..a86ffac 100644
--- a/source/blender/blenkernel/intern/writeavi.c
+++ b/source/blender/blenkernel/intern/writeavi.c
@@ -263,11 +263,11 @@ static void end_avi(void)
 #endif  /* WITH_AVI */
 
 /* similar to BKE_image_path_from_imformat() */
-void BKE_movie_filepath_get(char *string, RenderData *rd)
+void BKE_movie_filepath_get(char *string, RenderData *rd, bool preview)
 {
 	bMovieHandle *mh = BKE_movie_handle_get(rd->im_format.imtype);
 	if (mh->get_movie_path)
-		mh->get_movie_path(string, rd, false);
+		mh->get_movie_path(string, rd, preview);
 	else
 		string[0] = '\0';
 }
diff --git a/source/blender/makesrna/intern/rna_scene_api.c b/source/blender/makesrna/intern/rna_scene_api.c
index 36657c8..0d8d58e 100644
--- a/source/blender/makesrna/intern/rna_scene_api.c
+++ b/source/blender/makesrna/intern/rna_scene_api.c
@@ -119,10 +119,10 @@ static void rna_Scene_update_tagged(Scene *scene)
 #endif
 }
 
-static void rna_SceneRender_get_frame_path(RenderData *rd, int frame, char *name)
+static void rna_SceneRender_get_frame_path(RenderData *rd, int frame, int preview, char *name)
 {
 	if (BKE_imtype_is_movie(rd->im_format.imtype)) {
-		BKE_movie_filepath_get(name, rd);
+		BKE_movie_filepath_get(name, rd, preview != 0);
 	}
 	else {
 		BKE_image_path_from_imformat(
@@ -287,6 +287,8 @@ void RNA_api_scene_render(StructRNA *srna)
 	RNA_def_function_ui_description(func, "Return the absolute path to the filename to be written for a given frame");
 	RNA_def_int(func, "frame", INT_MIN, INT_MIN, INT_MAX, "",
 	            "Frame number to use, if unset the current frame will be used", MINAFRAME, MAXFRAME);
+	parm = RNA_def_boolean(func, "preview", 0, "Preview", "Use preview range");
+
 	parm = RNA_def_string_file_path(func, "filepath", NULL, FILE_MAX, "File Path",
 	                                "The resulting filepath from the scenes render settings");
 	RNA_def_property_flag(parm, PROP_THICK_WRAP); /* needed for string return value */




More information about the Bf-blender-cvs mailing list