diff options
author | Maxime Curioni <maxime.curioni@gmail.com> | 2008-09-25 22:02:15 +0400 |
---|---|---|
committer | Maxime Curioni <maxime.curioni@gmail.com> | 2008-09-25 22:02:15 +0400 |
commit | 920bb95aabf581e2cdf25568c77e276078c3689b (patch) | |
tree | 82e36fce6d0771e7ef6cfd41648ca3f5e6cfff95 /source/blender/freestyle/intern/stroke/Canvas.cpp | |
parent | 4be21b18f83a7606fdb764caa537e42ec9aa72fc (diff) |
soc-2008-mxcurioni: incorporated Tamito Kajiyama's patch, improving robustness for the Win32 build on older machines. In detail, the _blendEquation variable from AppCanvas is replaced by a _basic variable in Canvas, determing the rendering mode (standard with blending or basic). This latter variable is used to make sure that strokes are rendered in the right mode
Diffstat (limited to 'source/blender/freestyle/intern/stroke/Canvas.cpp')
-rwxr-xr-x | source/blender/freestyle/intern/stroke/Canvas.cpp | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/source/blender/freestyle/intern/stroke/Canvas.cpp b/source/blender/freestyle/intern/stroke/Canvas.cpp index ee8213609dd..acfbdc1fc26 100755 --- a/source/blender/freestyle/intern/stroke/Canvas.cpp +++ b/source/blender/freestyle/intern/stroke/Canvas.cpp @@ -59,6 +59,7 @@ Canvas::Canvas() _Renderer = 0; _current_sm = NULL; _steerableViewMap = new SteerableViewMap(NB_STEERABLE_VIEWMAP-1); + _basic = false; } Canvas::Canvas(const Canvas& iBrother) @@ -69,7 +70,7 @@ Canvas::Canvas(const Canvas& iBrother) _Renderer = iBrother._Renderer; _current_sm = iBrother._current_sm; _steerableViewMap = new SteerableViewMap(*(iBrother._steerableViewMap)); - + _basic = iBrother._basic; } Canvas::~Canvas() @@ -109,17 +110,28 @@ void Canvas::Draw() _current_sm = _StyleModules[i]; if (!_StyleModules[i]->getModified()) { - if (_StyleModules[i]->getDrawable() && _Layers[i]) - _Layers[i]->Render(_Renderer); - continue; + + if (_StyleModules[i]->getDrawable() && _Layers[i]) { + if (_basic) + _Layers[i]->RenderBasic(_Renderer); + else + _Layers[i]->Render(_Renderer); + } + continue; + + } if (i < _Layers.size() && _Layers[i]) delete _Layers[i]; _Layers[i] = _StyleModules[i]->execute(); - if (_StyleModules[i]->getDrawable() && _Layers[i]) - _Layers[i]->Render(_Renderer); + if (_StyleModules[i]->getDrawable() && _Layers[i]) { + if (_basic) + _Layers[i]->RenderBasic(_Renderer); + else + _Layers[i]->Render(_Renderer); + } timestamp->increment(); } |