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:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-04-03 04:00:29 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2013-04-03 04:00:29 +0400
commit1e8d69ac7468670853a5714ebb2fc0d7c3cbf1be (patch)
treeaf5242223bfc453cbc3f46fef7caabe2695e3cab /source/blender/freestyle
parent8709d4b624653ab404ef69162262f94ee8b3506e (diff)
Use of text datablocks for storing Python style modules.
Suggested by Brecht Van Lommel and Campbell Barton through code review comments. Previously style modules were external Python script files whose absolute paths were kept in .blend files. Now style modules are stored in .blend files as text datablocks. Style modules are configured in three steps: 1. Open an external style module file (or create a new text datablock) in the Text Editor in Blender. 2. Add a style module to the list of style modules (by pressing the "Add" button) in the Render Layer properties window. 3. Click the name entry and select the style module from the drop-down menu.
Diffstat (limited to 'source/blender/freestyle')
-rw-r--r--source/blender/freestyle/intern/blender_interface/BlenderStyleModule.h6
-rw-r--r--source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp12
-rw-r--r--source/blender/freestyle/intern/stroke/Canvas.cpp4
-rw-r--r--source/blender/freestyle/intern/stroke/StyleModule.h2
4 files changed, 9 insertions, 15 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStyleModule.h b/source/blender/freestyle/intern/blender_interface/BlenderStyleModule.h
index c1668aff955..7848b75749f 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderStyleModule.h
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStyleModule.h
@@ -46,12 +46,6 @@ public:
{
}
- virtual void close()
- {
- BKE_text_unlink(G.main, _text);
- BKE_libblock_free(&G.main->text, _text);
- }
-
protected:
virtual int interpret()
{
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
index f0b0e0fe804..325c314a570 100644
--- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
+++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
@@ -321,11 +321,15 @@ static void prepare(Render *re, SceneRenderLayer *srl)
module_conf;
module_conf = module_conf->next)
{
- if (module_conf->is_displayed) {
+ if (module_conf->script && module_conf->is_displayed) {
+ const char *id_name = module_conf->script->id.name + 2;
if (G.debug & G_DEBUG_FREESTYLE) {
- cout << " " << layer_count + 1 << ": " << module_conf->module_path << endl;
+ cout << " " << layer_count + 1 << ": " << id_name;
+ if (module_conf->script->name)
+ cout << " (" << module_conf->script->name << ")";
+ cout << endl;
}
- controller->InsertStyleModule(layer_count, module_conf->module_path);
+ controller->InsertStyleModule(layer_count, id_name, module_conf->script);
controller->toggleLayer(layer_count, true);
layer_count++;
}
@@ -537,7 +541,7 @@ static int displayed_layer_count(SceneRenderLayer *srl)
module;
module = module->next)
{
- if (module->is_displayed)
+ if (module->script && module->is_displayed)
count++;
}
break;
diff --git a/source/blender/freestyle/intern/stroke/Canvas.cpp b/source/blender/freestyle/intern/stroke/Canvas.cpp
index 996264d7912..7953e4a718c 100644
--- a/source/blender/freestyle/intern/stroke/Canvas.cpp
+++ b/source/blender/freestyle/intern/stroke/Canvas.cpp
@@ -145,10 +145,8 @@ void Canvas::Clear()
if (!_StyleModules.empty()) {
for (deque<StyleModule*>::iterator s = _StyleModules.begin(), send = _StyleModules.end(); s != send; ++s) {
- if (*s) {
- (*s)->close();
+ if (*s)
delete (*s);
- }
}
_StyleModules.clear();
}
diff --git a/source/blender/freestyle/intern/stroke/StyleModule.h b/source/blender/freestyle/intern/stroke/StyleModule.h
index 1d81e2e2151..c8ccdf51ea0 100644
--- a/source/blender/freestyle/intern/stroke/StyleModule.h
+++ b/source/blender/freestyle/intern/stroke/StyleModule.h
@@ -91,8 +91,6 @@ public:
return sl;
}
- virtual void close() {}
-
protected:
virtual int interpret()
{