diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-06-25 15:43:22 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2012-06-25 15:43:22 +0400 |
commit | 3271850a2f59cdcae4bb224522e67b986b8cb9fd (patch) | |
tree | d16f744b2a863f3a7b215d97888ca7bcf8778864 /intern/cycles/blender/blender_util.h | |
parent | ae797383b76a4489139b0152a6084b5dd4de2ba3 (diff) |
Fix cycles not working in 3d local view, and missing update when toggling hiding
in the outliner.
Diffstat (limited to 'intern/cycles/blender/blender_util.h')
-rw-r--r-- | intern/cycles/blender/blender_util.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_util.h b/intern/cycles/blender/blender_util.h index b5a76836bed..ebbd4e1221c 100644 --- a/intern/cycles/blender/blender_util.h +++ b/intern/cycles/blender/blender_util.h @@ -166,6 +166,28 @@ static inline uint get_layer(BL::Array<int, 20> array) return layer; } +static inline uint get_layer(BL::Array<int, 20> array, BL::Array<int, 8> local_array, bool is_light = false) +{ + uint layer = 0; + + for(uint i = 0; i < 20; i++) + if(array[i]) + layer |= (1 << i); + + if(is_light) { + /* consider lamps on all local view layers */ + for(uint i = 0; i < 8; i++) + layer |= (1 << (20+i)); + } + else { + for(uint i = 0; i < 8; i++) + if(local_array[i]) + layer |= (1 << (20+i)); + } + + return layer; +} + #if 0 static inline float3 get_float3(PointerRNA& ptr, const char *name) { |