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>2014-05-29 12:24:25 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2014-06-01 11:24:18 +0400
commitedfd989e864f2c87d2bbceef1acf88bbb46db497 (patch)
tree95b0ca9d7eb437eaa1e509a7c4276ab33c769fd2 /source/blender/blenkernel/intern/object.c
parentc641baa0479236ed366d55f673f36ad426ab8f7d (diff)
Fix T40315: Boolean modifier with Freestyle edges.
The helper function `make_freestyle_edge_mark_hash()` was referring to the original mesh to determine Freestyle edge marks for individual derived mesh edges. This is no longer necessary now that derived meshes deliver CD_FREESTYLE_EDGE and CD_FREESTYLE_FACE layers of their own. The reference of the original mesh was also inappropriate since the edges coming from one of the operands of a boolean modifier don't have proper CD_ORIGINDEX values but ORIGINDEX_NONE's. Many thanks to Sergey Sharybin for patch contributions and discussions.
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r--source/blender/blenkernel/intern/object.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index 3ea535ef97a..745088aced2 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -2907,6 +2907,12 @@ void BKE_object_handle_update_ex(EvaluationContext *eval_ctx,
{
BMEditMesh *em = (ob == scene->obedit) ? BKE_editmesh_from_object(ob) : NULL;
uint64_t data_mask = scene->customdata_mask | CD_MASK_BAREMESH;
+#ifdef WITH_FREESTYLE
+ /* make sure Freestyle edge/face marks appear in DM for render (see T40315) */
+ if (eval_ctx->for_render) {
+ data_mask |= CD_MASK_FREESTYLE_EDGE | CD_MASK_FREESTYLE_FACE;
+ }
+#endif
if (em) {
makeDerivedMesh(scene, ob, em, data_mask, 0); /* was CD_MASK_BAREMESH */
}