diff options
author | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-10-13 19:53:08 +0400 |
---|---|---|
committer | Tamito Kajiyama <rd6t-kjym@asahi-net.or.jp> | 2014-10-13 20:14:33 +0400 |
commit | f4a260fb3c039d4ad241b87c5951b3348227b056 (patch) | |
tree | f17a27404ace0925a1824c02cc653939025719df | |
parent | bdc41ca756ab48f0a83b4fd97560969521b4b433 (diff) |
Fix T42198: Linked lines only work with linked objects.
The reported issue was caused by a backward incompatibility due to careless
code changes made when per-material Freestyle line colors were introduced
in rB7915d7277ac8c605f016f30f943080556244fb59. In 2.71 line style
Material color/alpha/thickness modifiers was retrieving alpha transparency
from Material.alpha, whereas in 2.72 Material.line_color[3] was referenced.
The present fix reverts the aforementioned code changes.
This issue is a regression from 2.71, so the fix is appropriate for inclusion in
the 2.72a release.
-rw-r--r-- | release/scripts/freestyle/modules/freestyle/utils.py | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/linestyle.c | 2 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_linestyle_types.h | 1 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_linestyle.c | 1 |
4 files changed, 7 insertions, 3 deletions
diff --git a/release/scripts/freestyle/modules/freestyle/utils.py b/release/scripts/freestyle/modules/freestyle/utils.py index e0679a53954..6c5e1d5887a 100644 --- a/release/scripts/freestyle/modules/freestyle/utils.py +++ b/release/scripts/freestyle/modules/freestyle/utils.py @@ -217,8 +217,6 @@ def iter_material_value(stroke, func, attribute): # main if attribute == 'LINE': value = rgb_to_bw(*material.line[0:3]) - elif attribute == 'ALPHA': - value = material.line[3] elif attribute == 'DIFF': value = rgb_to_bw(*material.diffuse[0:3]) elif attribute == 'SPEC': @@ -230,6 +228,8 @@ def iter_material_value(stroke, func, attribute): value = material.line[1] elif attribute == 'LINE_B': value = material.line[2] + elif attribute == 'LINE_A': + value = material.line[3] # diffuse seperate elif attribute == 'DIFF_R': value = material.diffuse[0] @@ -237,6 +237,8 @@ def iter_material_value(stroke, func, attribute): value = material.diffuse[1] elif attribute == 'DIFF_B': value = material.diffuse[2] + elif attribute == 'ALPHA': + value = material.diffuse[3] # specular seperate elif attribute == 'SPEC_R': value = material.specular[0] diff --git a/source/blender/blenkernel/intern/linestyle.c b/source/blender/blenkernel/intern/linestyle.c index 5e17117a875..bcdaf9b7af0 100644 --- a/source/blender/blenkernel/intern/linestyle.c +++ b/source/blender/blenkernel/intern/linestyle.c @@ -442,7 +442,7 @@ LineStyleModifier *BKE_linestyle_alpha_modifier_add(FreestyleLineStyle *linestyl { LineStyleAlphaModifier_Material *p = (LineStyleAlphaModifier_Material *)m; p->curve = curvemapping_add(1, 0.0f, 0.0f, 1.0f, 1.0f); - p->mat_attr = LS_MODIFIER_MATERIAL_ALPHA; + p->mat_attr = LS_MODIFIER_MATERIAL_LINE_A; break; } default: diff --git a/source/blender/makesdna/DNA_linestyle_types.h b/source/blender/makesdna/DNA_linestyle_types.h index 262bcb5981a..ac848600c2d 100644 --- a/source/blender/makesdna/DNA_linestyle_types.h +++ b/source/blender/makesdna/DNA_linestyle_types.h @@ -203,6 +203,7 @@ typedef struct LineStyleThicknessModifier_DistanceFromObject { #define LS_MODIFIER_MATERIAL_LINE_R 12 #define LS_MODIFIER_MATERIAL_LINE_G 13 #define LS_MODIFIER_MATERIAL_LINE_B 14 +#define LS_MODIFIER_MATERIAL_LINE_A 15 typedef struct LineStyleColorModifier_Material { struct LineStyleModifier modifier; diff --git a/source/blender/makesrna/intern/rna_linestyle.c b/source/blender/makesrna/intern/rna_linestyle.c index 2259db1de66..638bc7a17ea 100644 --- a/source/blender/makesrna/intern/rna_linestyle.c +++ b/source/blender/makesrna/intern/rna_linestyle.c @@ -698,6 +698,7 @@ static void rna_def_modifier_material_common(StructRNA *srna) {LS_MODIFIER_MATERIAL_LINE_R, "LINE_R", 0, "Line Color Red", ""}, {LS_MODIFIER_MATERIAL_LINE_G, "LINE_G", 0, "Line Color Green", ""}, {LS_MODIFIER_MATERIAL_LINE_B, "LINE_B", 0, "Line Color Blue", ""}, + {LS_MODIFIER_MATERIAL_LINE_A, "LINE_A", 0, "Line Color Alpha", ""}, {LS_MODIFIER_MATERIAL_DIFF, "DIFF", 0, "Diffuse Color", ""}, {LS_MODIFIER_MATERIAL_DIFF_R, "DIFF_R", 0, "Diffuse Color Red", ""}, {LS_MODIFIER_MATERIAL_DIFF_G, "DIFF_G", 0, "Diffuse Color Green", ""}, |