[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13337] trunk/blender/source/blender: added function BLI_filepathsize - so you dont have to open the file to get its size .
Campbell Barton
ideasman42 at gmail.com
Mon Jan 21 23:10:20 CET 2008
Revision: 13337
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13337
Author: campbellbarton
Date: 2008-01-21 23:10:20 +0100 (Mon, 21 Jan 2008)
Log Message:
-----------
added function BLI_filepathsize - so you dont have to open the file to get its size.
made render Touch function remove the touched file if the animation is canceled.
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/BLI_blenlib.h
trunk/blender/source/blender/blenlib/intern/bpath.c
trunk/blender/source/blender/blenlib/intern/storage.c
trunk/blender/source/blender/render/intern/source/pipeline.c
trunk/blender/source/blender/src/buttons_scene.c
Modified: trunk/blender/source/blender/blenlib/BLI_blenlib.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_blenlib.h 2008-01-21 22:10:14 UTC (rev 13336)
+++ trunk/blender/source/blender/blenlib/BLI_blenlib.h 2008-01-21 22:10:20 UTC (rev 13337)
@@ -272,6 +272,7 @@
/* BLI_storage.h */
int BLI_filesize(int file);
+int BLI_filepathsize(const char *path);
double BLI_diskfree(char *dir);
char *BLI_getwdN(char *dir);
void BLI_hide_dot_files(int set);
Modified: trunk/blender/source/blender/blenlib/intern/bpath.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/bpath.c 2008-01-21 22:10:14 UTC (rev 13336)
+++ trunk/blender/source/blender/blenlib/intern/bpath.c 2008-01-21 22:10:20 UTC (rev 13337)
@@ -458,7 +458,6 @@
{
/* file searching stuff */
DIR *dir;
- int file = 0;
struct dirent *de;
struct stat status;
char path[FILE_MAX];
@@ -485,14 +484,10 @@
if (S_ISREG(status.st_mode)) { /* is file */
if (strncmp(filename, de->d_name, FILE_MAX)==0) { /* name matches */
/* open the file to read its size */
- file = open(path, O_BINARY|O_RDONLY);
- if (file >=0 ) {
- size = BLI_filesize(file);
- if (size > *filesize) { /* find the biggest file */
- *filesize = size;
- BLI_strncpy(filename_new, path, FILE_MAX);
- }
- close(file);
+ size = BLI_filepathsize(path);
+ if ((size > 0) && (size > *filesize)) { /* find the biggest file */
+ *filesize = size;
+ BLI_strncpy(filename_new, path, FILE_MAX);
}
}
} else if (S_ISDIR(status.st_mode)) { /* is subdir */
Modified: trunk/blender/source/blender/blenlib/intern/storage.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/storage.c 2008-01-21 22:10:14 UTC (rev 13336)
+++ trunk/blender/source/blender/blenlib/intern/storage.c 2008-01-21 22:10:20 UTC (rev 13337)
@@ -472,6 +472,17 @@
return (buf.st_size);
}
+int BLI_filepathsize(const char *path)
+{
+ int size, file = open(path, O_BINARY|O_RDONLY);
+
+ if (file <= 0)
+ return -1;
+
+ size = BLI_filesize(file);
+ close(file);
+ return size;
+}
int BLI_exist(char *name)
Modified: trunk/blender/source/blender/render/intern/source/pipeline.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/pipeline.c 2008-01-21 22:10:14 UTC (rev 13336)
+++ trunk/blender/source/blender/render/intern/source/pipeline.c 2008-01-21 22:10:20 UTC (rev 13337)
@@ -2369,7 +2369,14 @@
do_write_image_or_movie(re, scene, mh);
}
- if(G.afbreek==1) break;
+ if(G.afbreek==1) {
+ /* remove touched file */
+ if (scene->r.mode & R_TOUCH && BLI_exist(name) && BLI_filepathsize(name) == 0) {
+ BLI_delete(name, 0, 0);
+ }
+
+ break;
+ }
}
}
Modified: trunk/blender/source/blender/src/buttons_scene.c
===================================================================
--- trunk/blender/source/blender/src/buttons_scene.c 2008-01-21 22:10:14 UTC (rev 13336)
+++ trunk/blender/source/blender/src/buttons_scene.c 2008-01-21 22:10:20 UTC (rev 13337)
@@ -1837,8 +1837,8 @@
uiBlockEndAlign(block);
uiBlockBeginAlign(block);
- uiDefButBitI(block, TOG, R_NO_OVERWRITE, B_NOP, "No Overwrite", 10, 142, 90, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Skip rendering frames when the file exists (image output only)");
- uiDefButBitI(block, TOG, R_TOUCH, B_NOP, "Touch", 100, 142, 50, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Create an empty file before rendering each frame");
+ uiDefButBitI(block, TOG, R_TOUCH, B_NOP, "Touch", 10, 142, 50, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Create an empty file before rendering each frame, remove if cancelled (and empty)");
+ uiDefButBitI(block, TOG, R_NO_OVERWRITE, B_NOP, "No Overwrite", 60, 142, 90, 20, &G.scene->r.mode, 0.0, 0.0, 0, 0, "Skip rendering frames when the file exists (image output only)");
uiBlockEndAlign(block);
/* SET BUTTON */
More information about the Bf-blender-cvs
mailing list