diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-11-13 00:16:53 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2008-11-13 00:16:53 +0300 |
commit | bdfe7d89e2f1292644577972c716931b4ce3c6c3 (patch) | |
tree | d00eb50b749cb001e2b08272c91791e66740b05d /release/scripts/render_save_layers.py | |
parent | 78a1c27c4a6abe0ed31ca93ad21910f3df04da56 (diff) | |
parent | 7e4db234cee71ead34ee81a12e27da4bd548eb4b (diff) |
Merge of trunk into blender 2.5:
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r12987:17416
Issues:
* GHOST/X11 had conflicting changes. Some code was added in 2.5, which was
later added in trunk also, but reverted partially, specifically revision
16683. I have left out this reversion in the 2.5 branch since I think it is
needed there.
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16683
* Scons had various conflicting changes, I decided to go with trunk version
for everything except priorities and some library renaming.
* In creator.c, there were various fixes and fixes for fixes related to the -w
-W and -p options. In 2.5 -w and -W is not coded yet, and -p is done
differently. Since this is changed so much, and I don't think those fixes
would be needed in 2.5, I've left them out.
* Also in creator.c: there was code for a python bugfix where the screen was not
initialized when running with -P. The code that initializes the screen there
I had to disable, that can't work in 2.5 anymore but left it commented as a
reminder.
Further I had to disable some new function calls. using src/ and python/, as
was done already in this branch, disabled function calls:
* bpath.c: error reporting
* BME_conversions.c: editmesh conversion functions.
* SHD_dynamic: disabled almost completely, there is no python/.
* KX_PythonInit.cpp and Ketsji/ build files: Mathutils is not there, disabled.
* text.c: clipboard copy call.
* object.c: OB_SUPPORT_MATERIAL.
* DerivedMesh.c and subsurf_ccg, stipple_quarttone.
Still to be done:
* Go over files and functions that were moved to a different location but could
still use changes that were done in trunk.
Diffstat (limited to 'release/scripts/render_save_layers.py')
-rw-r--r-- | release/scripts/render_save_layers.py | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/release/scripts/render_save_layers.py b/release/scripts/render_save_layers.py new file mode 100644 index 00000000000..c91fcce7948 --- /dev/null +++ b/release/scripts/render_save_layers.py @@ -0,0 +1,120 @@ +#!BPY + +""" +Name: 'Save Render Layers...' +Blender: 245 +Group: 'Render' +Tooltip: 'Save current renderlayers as a BPython script' +""" + +__author__ = "Campbell Barton" +__url__ = ("blender", "blenderartists.org") +__version__ = "1.0" + +__bpydoc__ = """\ +""" + +# -------------------------------------------------------------------------- +# The scripts generated by this script are put under Public Domain by +# default, but you are free to edit the ones you generate with this script +# and change their license to another one of your choice. +# -------------------------------------------------------------------------- +# ***** BEGIN GPL LICENSE BLOCK ***** +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# ***** END GPL LICENCE BLOCK ***** +# -------------------------------------------------------------------------- + +import Blender +from Blender.Window import Theme, FileSelector +from Blender import Scene + +sce = Scene.GetCurrent() +rend = sce.render + +# default filename: filename + scenename + '_renderlayer.py' in user's scripts dir: +default_fname = Blender.Get("scriptsdir") +if not default_fname: + default_fname = Blender.Get("uscriptsdir") + +if default_fname: + default_fname = Blender.sys.join(default_fname, sce.name + '_renderlayer.py') + default_fname = default_fname.replace(' ','_') + +def write_renderlayers(filename): + "Write the current renderlayer as a bpython script" + + if not filename.endswith('.py'): filename += '.py' + + fout = file(filename, "w") + + fout.write("""#!BPY + +# \"\"\" +# Name: '%s' +# Blender: 245 +# Group: 'Render' +# Tooltip: '' +# \"\"\" + +__%s__ = "????" +__%s__ = "2.43" +__%s__ = ["blender"] +__%s__ = \"\"\"\\ +You can edit this section to write something about your script that can +be read then with the Scripts Help Browser script in Blender. + +Remember to also set author, version and possibly url(s) above. You can also +define an __email__ tag, check some bundled script's source for examples. +\"\"\" + +# This script was automatically generated by the render_save_layers.py bpython script. +# By default, these generated scripts are released as Public Domain, but you +# are free to change the license of the scripts you generate with +# render_save_layers.py before releasing them. + +import Blender +from Blender import Scene + +sce = Scene.GetCurrent() +rend = sce.render +""" % (sce.name, "author", "version", "url", "bpydoc")) + + for lay in rend.renderLayers: # + fout.write("\nlay = rend.addRenderLayer()\n") + fout.write("lay.name = \"%s\"\n" % lay.name) + + exec("vars = dir(lay)") + + for var in vars: + if var.startswith('_'): + continue + + v = "lay.%s" % var + exec("value = %s" % v) + if type(value) == str: + fout.write("%s = '%s'\n" % (v, value)) + else: + fout.write("%s = %s\n" % (v, value)) + + fout.write('\nBlender.Redraw(-1)') + fout.close() + try: + Blender.UpdateMenus() + except: + Blender.Draw.PupMenu("Warning - check console!%t|Menus could not be automatically updated") + +FileSelector(write_renderlayers, "Save RenderLayers", default_fname) |