Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Poirier <theeth@yahoo.com>2010-01-26 00:10:33 +0300
committerMartin Poirier <theeth@yahoo.com>2010-01-26 00:10:33 +0300
commitabd9a59af4a8499129c4c847b3b19e64cead73b8 (patch)
treeab69630a8a1d3b9ff48d1059f2c3c1adc858e7dd /release
parent4907e8df202cea41e52b33a0f6a6f852e3a07818 (diff)
netrender: utility function to extract information from a blend file on disk. Used to get render resolution for jobs in the web interface (lazy init).
Diffstat (limited to 'release')
-rw-r--r--release/scripts/io/netrender/master.py7
-rw-r--r--release/scripts/io/netrender/master_html.py11
-rw-r--r--release/scripts/io/netrender/utils.py20
3 files changed, 38 insertions, 0 deletions
diff --git a/release/scripts/io/netrender/master.py b/release/scripts/io/netrender/master.py
index 5056eba750d..f95627135ba 100644
--- a/release/scripts/io/netrender/master.py
+++ b/release/scripts/io/netrender/master.py
@@ -75,6 +75,12 @@ class MRenderJob(netrender.model.RenderJob):
self.last_update = 0
self.save_path = ""
self.files = [MRenderFile(rfile.filepath, rfile.index, rfile.start, rfile.end) for rfile in job_info.files]
+
+ self.resolution = None
+
+ def initInfo(self):
+ if not self.resolution:
+ self.resolution = tuple(getFileInfo(self.files[0].filepath, ["bpy.context.scene.render_data.resolution_x", "bpy.context.scene.render_data.resolution_y", "bpy.context.scene.render_data.resolution_percentage"]))
def save(self):
if self.save_path:
@@ -98,6 +104,7 @@ class MRenderJob(netrender.model.RenderJob):
return False
self.start()
+ self.initInfo()
return True
def testFinished(self):
diff --git a/release/scripts/io/netrender/master_html.py b/release/scripts/io/netrender/master_html.py
index 3fff6d0b88c..029497db1ae 100644
--- a/release/scripts/io/netrender/master_html.py
+++ b/release/scripts/io/netrender/master_html.py
@@ -215,6 +215,17 @@ def get(handler):
job = handler.server.getJobID(job_id)
if job:
+ output("<h2>Render Information</h2>")
+
+ job.initInfo()
+
+ startTable()
+
+ rowTable("resolution", "%ix%i at %i%%" % job.resolution)
+
+ endTable()
+
+
output("<h2>Files</h2>")
startTable()
diff --git a/release/scripts/io/netrender/utils.py b/release/scripts/io/netrender/utils.py
index 1871a969f80..f6d88212441 100644
--- a/release/scripts/io/netrender/utils.py
+++ b/release/scripts/io/netrender/utils.py
@@ -173,6 +173,21 @@ def prefixPath(prefix_directory, file_path, prefix_path):
return full_path
+def getFileInfo(filepath, infos):
+ process = subprocess.Popen([sys.argv[0], "-b", "-noaudio", filepath, "-P", __file__, "--"] + infos, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
+ stdout = bytes()
+ while process.poll() == None:
+ stdout += process.stdout.read(1024)
+
+ # read leftovers if needed
+ stdout += process.stdout.read()
+
+ stdout = str(stdout, encoding="utf8")
+
+ values = [eval(v[1:].strip()) for v in stdout.split("\n") if v.startswith("$")]
+
+ return values
+
def thumbnail(filename):
root = os.path.splitext(filename)[0]
imagename = os.path.split(filename)[1]
@@ -197,3 +212,8 @@ def thumbnail(filename):
pass
return None
+
+if __name__ == "__main__":
+ import bpy
+ for info in sys.argv[7:]:
+ print("$", eval(info))