diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-06-25 10:12:24 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-08-12 05:10:05 +0400 |
commit | f70e1ad2fbf93b4b5b90ab915edaa187a2ce8fd7 (patch) | |
tree | aabda7cd72136b7b00fa24f7a103845fbcf21156 /source/blender/render | |
parent | d124bd1cd42eaaf8f69cb895b0112773dafaf96a (diff) |
Proof-of-concept implementation of Freestyle support for Cycles.
Diffstat (limited to 'source/blender/render')
-rw-r--r-- | source/blender/render/extern/include/RE_pipeline.h | 1 | ||||
-rw-r--r-- | source/blender/render/intern/source/external_engine.c | 5 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 10 |
3 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/render/extern/include/RE_pipeline.h b/source/blender/render/extern/include/RE_pipeline.h index 68ac0cd3073..4ab0f5a234d 100644 --- a/source/blender/render/extern/include/RE_pipeline.h +++ b/source/blender/render/extern/include/RE_pipeline.h @@ -234,6 +234,7 @@ void RE_BlenderAnim(struct Render *re, struct Main *bmain, struct Scene *scene, unsigned int lay_override, int sfra, int efra, int tfra); #ifdef WITH_FREESTYLE void RE_RenderFreestyleStrokes(struct Render *re, struct Main *bmain, struct Scene *scene, int render); +void RE_RenderFreestyleExternal(struct Render *re); #endif /* error reporting */ diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c index 3c35d500948..d253f4b5d05 100644 --- a/source/blender/render/intern/source/external_engine.c +++ b/source/blender/render/intern/source/external_engine.c @@ -647,6 +647,11 @@ int RE_engine_render(Render *re, int do_all) if (type->render) type->render(engine, re->scene); +#ifdef WITH_FREESTYLE + if (re->r.mode & R_EDGE_FRS) + RE_RenderFreestyleExternal(re); +#endif + engine->tile_x = 0; engine->tile_y = 0; engine->flag &= ~RE_ENGINE_RENDERING; diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 9e14645a732..aaaa53bd54c 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -2810,6 +2810,16 @@ void RE_RenderFreestyleStrokes(Render *re, Main *bmain, Scene *scene, int render } re->result_ok = 1; } + +void RE_RenderFreestyleExternal(Render *re) +{ + if (!re->test_break(re->tbh)) { + RE_Database_FromScene(re, re->main, re->scene, re->lay, 1); + RE_Database_Preprocess(re); + add_freestyle(re, 1); + RE_Database_Free(re); + } +} #endif static int do_write_image_or_movie(Render *re, Main *bmain, Scene *scene, bMovieHandle *mh, const char *name_override) |