[Bf-blender-cvs] [b65a022] master: Freestyle: Removed the stored bContext from the Controller class.

Tamito Kajiyama noreply at git.blender.org
Tue Aug 12 03:18:43 CEST 2014


Commit: b65a0228920df21b7f5a0a057bc9ad5fad64e4b3
Author: Tamito Kajiyama
Date:   Fri Aug 1 10:18:25 2014 +0900
Branches: master
https://developer.blender.org/rBb65a0228920df21b7f5a0a057bc9ad5fad64e4b3

Freestyle: Removed the stored bContext from the Controller class.

The stored context object was used for creation of shade nodes.  A closer look at the
node system showed that the context is not actually used when shader nodes are
added to a shader node tree.  Relying on this fact, now a NULL pointer is passed to
nodeAddStaticNode() instead of the stored bContext pointer.

===================================================================

M	source/blender/editors/render/render_shading.c
M	source/blender/freestyle/FRS_freestyle.h
M	source/blender/freestyle/intern/application/Controller.cpp
M	source/blender/freestyle/intern/application/Controller.h
M	source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
M	source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h
M	source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp

===================================================================

diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 174c007..72b4da6 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -1261,7 +1261,7 @@ static int freestyle_stroke_material_create_exec(bContext *C, wmOperator *op)
 		return OPERATOR_CANCELLED;
 	}
 
-	FRS_create_stroke_material(C, bmain, linestyle);
+	FRS_create_stroke_material(bmain, linestyle);
 
 	return OPERATOR_FINISHED;
 }
diff --git a/source/blender/freestyle/FRS_freestyle.h b/source/blender/freestyle/FRS_freestyle.h
index 3777f8d..fc9fc35 100644
--- a/source/blender/freestyle/FRS_freestyle.h
+++ b/source/blender/freestyle/FRS_freestyle.h
@@ -33,7 +33,6 @@ struct Render;
 struct Material;
 struct FreestyleConfig;
 struct FreestyleLineStyle;
-struct bContext;
 
 extern struct Scene *freestyle_scene;
 extern float freestyle_viewpoint[3];
@@ -60,7 +59,7 @@ void FRS_move_active_lineset_up(struct FreestyleConfig *config);
 void FRS_move_active_lineset_down(struct FreestyleConfig *config);
 
 /* Testing */
-struct Material *FRS_create_stroke_material(struct bContext *C, struct Main *bmain, struct FreestyleLineStyle *linestyle);
+struct Material *FRS_create_stroke_material(struct Main *bmain, struct FreestyleLineStyle *linestyle);
 
 #ifdef __cplusplus
 }
diff --git a/source/blender/freestyle/intern/application/Controller.cpp b/source/blender/freestyle/intern/application/Controller.cpp
index 8f57bbe..1761996 100644
--- a/source/blender/freestyle/intern/application/Controller.cpp
+++ b/source/blender/freestyle/intern/application/Controller.cpp
@@ -210,7 +210,6 @@ void Controller::setContext(bContext *C)
 {
 	PythonInterpreter *py_inter = dynamic_cast<PythonInterpreter*>(_inter);
 	py_inter->setContext(C);
-	_context = C;
 }
 
 int Controller::LoadMesh(Render *re, SceneRenderLayer *srl)
@@ -851,7 +850,7 @@ void Controller::ResetRenderCount()
 Render *Controller::RenderStrokes(Render *re, bool render)
 {
 	_Chrono.start();
-	BlenderStrokeRenderer *blenderRenderer = new BlenderStrokeRenderer(_context, re, ++_render_count);
+	BlenderStrokeRenderer *blenderRenderer = new BlenderStrokeRenderer(re, ++_render_count);
 	if (render)
 		_Canvas->Render(blenderRenderer);
 	real d = _Chrono.stop();
diff --git a/source/blender/freestyle/intern/application/Controller.h b/source/blender/freestyle/intern/application/Controller.h
index a653f4a..f5e5034 100644
--- a/source/blender/freestyle/intern/application/Controller.h
+++ b/source/blender/freestyle/intern/application/Controller.h
@@ -217,7 +217,6 @@ private:
 	real _EPSILON;
 	real _bboxDiag;
 
-	bContext *_context;
 	int _render_count;
 
 	//AppStyleWindow *_pStyleWindow;
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
index 440934a..47b0c9b 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
@@ -65,12 +65,11 @@ extern "C" {
 
 namespace Freestyle {
 
-BlenderStrokeRenderer::BlenderStrokeRenderer(bContext *C, Render *re, int render_count) : StrokeRenderer()
+BlenderStrokeRenderer::BlenderStrokeRenderer(Render *re, int render_count) : StrokeRenderer()
 {
 	freestyle_bmain = re->freestyle_bmain;
 
 	// for stroke mesh generation
-	_context = C;
 	_width = re->winx;
 	_height = re->winy;
 
@@ -228,7 +227,7 @@ unsigned int BlenderStrokeRenderer::get_stroke_mesh_id(void) const
 	return mesh_id;
 }
 
-Material* BlenderStrokeRenderer::GetStrokeShader(bContext *C, Main *bmain, bNodeTree *iNodeTree, bool do_id_user)
+Material* BlenderStrokeRenderer::GetStrokeShader(Main *bmain, bNodeTree *iNodeTree, bool do_id_user)
 {
 	Material *ma = BKE_material_add(bmain, "stroke_shader");
 	bNodeTree *ntree;
@@ -255,13 +254,13 @@ Material* BlenderStrokeRenderer::GetStrokeShader(bContext *C, Main *bmain, bNode
 	ma->nodetree = ntree;
 	ma->use_nodes = 1;
 
-	bNode *input_attr_color = nodeAddStaticNode(C, ntree, SH_NODE_ATTRIBUTE);
+	bNode *input_attr_color = nodeAddStaticNode(NULL, ntree, SH_NODE_ATTRIBUTE);
 	input_attr_color->locx = 0.0f;
 	input_attr_color->locy = -200.0f;
 	storage = (NodeShaderAttribute *)input_attr_color->storage;
 	BLI_strncpy(storage->name, "Color", sizeof(storage->name));
 
-	bNode *mix_rgb_color = nodeAddStaticNode(C, ntree, SH_NODE_MIX_RGB);
+	bNode *mix_rgb_color = nodeAddStaticNode(NULL, ntree, SH_NODE_MIX_RGB);
 	mix_rgb_color->custom1 = MA_RAMP_BLEND; // Mix
 	mix_rgb_color->locx = 200.0f;
 	mix_rgb_color->locy = -200.0f;
@@ -269,13 +268,13 @@ Material* BlenderStrokeRenderer::GetStrokeShader(bContext *C, Main *bmain, bNode
 	RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, tosock, &toptr);
 	RNA_float_set(&toptr, "default_value", 0.0f);
 
-	bNode *input_attr_alpha = nodeAddStaticNode(C, ntree, SH_NODE_ATTRIBUTE);
+	bNode *input_attr_alpha = nodeAddStaticNode(NULL, ntree, SH_NODE_ATTRIBUTE);
 	input_attr_alpha->locx = 400.0f;
 	input_attr_alpha->locy = 300.0f;
 	storage = (NodeShaderAttribute *)input_attr_alpha->storage;
 	BLI_strncpy(storage->name, "Alpha", sizeof(storage->name));
 
-	bNode *mix_rgb_alpha = nodeAddStaticNode(C, ntree, SH_NODE_MIX_RGB);
+	bNode *mix_rgb_alpha = nodeAddStaticNode(NULL, ntree, SH_NODE_MIX_RGB);
 	mix_rgb_alpha->custom1 = MA_RAMP_BLEND; // Mix
 	mix_rgb_alpha->locx = 600.0f;
 	mix_rgb_alpha->locy = 300.0f;
@@ -283,27 +282,27 @@ Material* BlenderStrokeRenderer::GetStrokeShader(bContext *C, Main *bmain, bNode
 	RNA_pointer_create((ID *)ntree, &RNA_NodeSocket, tosock, &toptr);
 	RNA_float_set(&toptr, "default_value", 0.0f);
 
-	bNode *shader_emission = nodeAddStaticNode(C, ntree, SH_NODE_EMISSION);
+	bNode *shader_emission = nodeAddStaticNode(NULL, ntree, SH_NODE_EMISSION);
 	shader_emission->locx = 400.0f;
 	shader_emission->locy = -200.0f;
 
-	bNode *input_light_path = nodeAddStaticNode(C, ntree, SH_NODE_LIGHT_PATH);
+	bNode *input_light_path = nodeAddStaticNode(NULL, ntree, SH_NODE_LIGHT_PATH);
 	input_light_path->locx = 400.0f;
 	input_light_path->locy = 100.0f;
 
-	bNode *mix_shader_color = nodeAddStaticNode(C, ntree, SH_NODE_MIX_SHADER);
+	bNode *mix_shader_color = nodeAddStaticNode(NULL, ntree, SH_NODE_MIX_SHADER);
 	mix_shader_color->locx = 600.0f;
 	mix_shader_color->locy = -100.0f;
 
-	bNode *shader_transparent = nodeAddStaticNode(C, ntree, SH_NODE_BSDF_TRANSPARENT);
+	bNode *shader_transparent = nodeAddStaticNode(NULL, ntree, SH_NODE_BSDF_TRANSPARENT);
 	shader_transparent->locx = 600.0f;
 	shader_transparent->locy = 100.0f;
 
-	bNode *mix_shader_alpha = nodeAddStaticNode(C, ntree, SH_NODE_MIX_SHADER);
+	bNode *mix_shader_alpha = nodeAddStaticNode(NULL, ntree, SH_NODE_MIX_SHADER);
 	mix_shader_alpha->locx = 800.0f;
 	mix_shader_alpha->locy = 100.0f;
 
-	bNode *output_material = nodeAddStaticNode(C, ntree, SH_NODE_OUTPUT_MATERIAL);
+	bNode *output_material = nodeAddStaticNode(NULL, ntree, SH_NODE_OUTPUT_MATERIAL);
 	output_material->locx = 1000.0f;
 	output_material->locy = 100.0f;
 
@@ -409,7 +408,7 @@ Material* BlenderStrokeRenderer::GetStrokeShader(bContext *C, Main *bmain, bNode
 				bNodeSocket *sock = (bNodeSocket *)BLI_findlink(&node->outputs, 0);
 
 				// add new UV Map node
-				bNode *input_uvmap = nodeAddStaticNode(C, ntree, SH_NODE_UVMAP);
+				bNode *input_uvmap = nodeAddStaticNode(NULL, ntree, SH_NODE_UVMAP);
 				input_uvmap->locx = node->locx - 200.0f;
 				input_uvmap->locy = node->locy;
 				NodeShaderUVMap *storage = (NodeShaderUVMap *)input_uvmap->storage;
@@ -444,7 +443,7 @@ void BlenderStrokeRenderer::RenderStrokeRep(StrokeRep *iStrokeRep) const
 		bNodeTree *nt = iStrokeRep->getNodeTree();
 		Material *ma = (Material *)BLI_ghash_lookup(_nodetree_hash, nt);
 		if (!ma) {
-			ma = BlenderStrokeRenderer::GetStrokeShader(_context, freestyle_bmain, nt, false);
+			ma = BlenderStrokeRenderer::GetStrokeShader(freestyle_bmain, nt, false);
 			BLI_ghash_insert(_nodetree_hash, nt, ma);
 		}
 
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h
index 956ec16..74e5d32 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.h
@@ -44,7 +44,7 @@ namespace Freestyle {
 class BlenderStrokeRenderer : public StrokeRenderer
 {
 public:
-	BlenderStrokeRenderer(bContext *C, Render *re, int render_count);
+	BlenderStrokeRenderer(Render *re, int render_count);
 	virtual ~BlenderStrokeRenderer();
 
 	/*! Renders a stroke rep */
@@ -55,7 +55,7 @@ public:
 
 	Render *RenderScene(Render *re, bool render);
 
-	static Material* GetStrokeShader(bContext *C, Main *bmain, bNodeTree *iNodeTree, bool do_id_user);
+	static Material* GetStrokeShader(Main *bmain, bNodeTree *iNodeTree, bool do_id_user);
 
 protected:
 	Main *freestyle_bmain;
diff --git a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
index 3c24bb7..32f49d4 100644
--- a/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
+++ b/source/blender/freestyle/intern/blender_interface/FRS_freestyle.cpp
@@ -735,10 +735,10 @@ void FRS_move_active_lineset_down(FreestyleConfig *config)
 
 // Testing
 
-Material *FRS_create_stroke_material(bContext *C, Main *bmain, struct FreestyleLineStyle *linestyle)
+Material *FRS_create_stroke_material(Main *bmain, struct FreestyleLineStyle *linestyle)
 {
 	bNodeTree *nt = (linestyle->use_nodes) ? linestyle->nodetree : NULL;
-	Material *ma = BlenderStrokeRenderer::GetStrokeShader(C, bmain, nt, true);
+	Material *ma = BlenderStrokeRenderer::GetStrokeShader(bmain, nt, true);
 	ma->id.us = 0;
 	return ma;
 }




More information about the Bf-blender-cvs mailing list