diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-07-11 11:51:04 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-08-12 05:10:14 +0400 |
commit | 87f75299e1b07fd026ecdfa1c993130a60d65280 (patch) | |
tree | 28195cd6d00694f8a66a803f62126ae28e250e49 /source/blender/editors/space_node | |
parent | d956a074e31b278d06c6ee4841ee735b90ba22ea (diff) |
Implemented a basic framework for node-based shaders.
Shader nodes will be used to define materials for stroke rendering, so as to
allow users to interactively configure textures.
Diffstat (limited to 'source/blender/editors/space_node')
-rw-r--r-- | source/blender/editors/space_node/node_edit.c | 13 | ||||
-rw-r--r-- | source/blender/editors/space_node/space_node.c | 7 |
2 files changed, 20 insertions, 0 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 8422df35063..9616d01efb0 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -434,6 +434,19 @@ void ED_node_shader_default(const bContext *C, ID *id) strength = 1.0f; break; } + case ID_LS: + { + FreestyleLineStyle *linestyle = (FreestyleLineStyle *)id; + linestyle->nodetree = ntree; + + /* TODO use appropriate output_type & shader_type */ + output_type = SH_NODE_OUTPUT_MATERIAL; + shader_type = SH_NODE_BSDF_DIFFUSE; + + copy_v3_v3(color, &linestyle->r); + strength = 1.0f; + break; + } default: printf("ED_node_shader_default called on wrong ID type.\n"); return; diff --git a/source/blender/editors/space_node/space_node.c b/source/blender/editors/space_node/space_node.c index ddfbe3bebf2..9eaee60bfce 100644 --- a/source/blender/editors/space_node/space_node.c +++ b/source/blender/editors/space_node/space_node.c @@ -501,6 +501,12 @@ static void node_area_listener(bScreen *sc, ScrArea *sa, wmNotifier *wmn) } } break; + + case NC_LINESTYLE: + if (ED_node_is_shader(snode) && shader_type == SNODE_SHADER_LINESTYLE) { + ED_area_tag_refresh(sa); + } + break; } } @@ -740,6 +746,7 @@ static void node_region_listener(bScreen *UNUSED(sc), ScrArea *UNUSED(sa), ARegi case NC_TEXTURE: case NC_WORLD: case NC_NODE: + case NC_LINESTYLE: ED_region_tag_redraw(ar); break; case NC_OBJECT: |