diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-01-28 20:39:58 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-01-28 20:39:58 +0300 |
commit | 14deacdc22875c87ce2005a21d99257a03da738f (patch) | |
tree | aaa9e146403373a1e2ca844478a176f8d9cc308d /source/blender/blenkernel/intern | |
parent | b7075049732a0df53be6483ab5fc2333398b9ebb (diff) | |
parent | b2034c6ba245e131e6ecabe33ca9afa1e6394247 (diff) |
Merge branch 'blender-v2.82-release'
Diffstat (limited to 'source/blender/blenkernel/intern')
-rw-r--r-- | source/blender/blenkernel/intern/particle.c | 10 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/scene.c | 11 |
2 files changed, 14 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/particle.c b/source/blender/blenkernel/intern/particle.c index 244ffb674a4..6b87cf2df81 100644 --- a/source/blender/blenkernel/intern/particle.c +++ b/source/blender/blenkernel/intern/particle.c @@ -3246,22 +3246,24 @@ static void psys_cache_edit_paths_iter(void *__restrict iter_data_v, } } else { + /* HACK(fclem): Instead of setting the color we pass the select state in the red channel. + * This is then picked up in DRW and the gpu shader will do the color interpolation. */ if ((ekey + (pind.ekey[0] - point->keys))->flag & PEK_SELECT) { if ((ekey + (pind.ekey[1] - point->keys))->flag & PEK_SELECT) { - copy_v3_v3(ca->col, iter_data->sel_col); + ca->col[0] = 1.0f; } else { keytime = (t - (*pind.ekey[0]->time)) / ((*pind.ekey[1]->time) - (*pind.ekey[0]->time)); - interp_v3_v3v3(ca->col, iter_data->sel_col, iter_data->nosel_col, keytime); + ca->col[0] = 1.0f - keytime; } } else { if ((ekey + (pind.ekey[1] - point->keys))->flag & PEK_SELECT) { keytime = (t - (*pind.ekey[0]->time)) / ((*pind.ekey[1]->time) - (*pind.ekey[0]->time)); - interp_v3_v3v3(ca->col, iter_data->nosel_col, iter_data->sel_col, keytime); + ca->col[0] = keytime; } else { - copy_v3_v3(ca->col, iter_data->nosel_col); + ca->col[0] = 0.0f; } } } diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c index 2fda6cfb43b..86b15641f81 100644 --- a/source/blender/blenkernel/intern/scene.c +++ b/source/blender/blenkernel/intern/scene.c @@ -351,6 +351,13 @@ void BKE_scene_copy_data(Main *bmain, Scene *sce_dst, const Scene *sce_src, cons sce_dst->preview = NULL; } + BKE_scene_copy_data_eevee(sce_dst, sce_src); +} + +void BKE_scene_copy_data_eevee(Scene *sce_dst, const Scene *sce_src) +{ + /* Copy eevee data between scenes. */ + sce_dst->eevee = sce_src->eevee; sce_dst->eevee.light_cache = NULL; sce_dst->eevee.light_cache_info[0] = '\0'; /* TODO Copy the cache. */ @@ -374,9 +381,7 @@ Scene *BKE_scene_copy(Main *bmain, Scene *sce, int type) sce_copy->unit = sce->unit; sce_copy->physics_settings = sce->physics_settings; sce_copy->audio = sce->audio; - sce_copy->eevee = sce->eevee; - sce_copy->eevee.light_cache = NULL; - sce_copy->eevee.light_cache_info[0] = '\0'; + BKE_scene_copy_data_eevee(sce_copy, sce); if (sce->id.properties) { sce_copy->id.properties = IDP_CopyProperty(sce->id.properties); |