forked from bartvdbraak/blender
Cycles: Tweak curve segment (un)pack to handle more curve segments
There was 16 bits reserved for primitive type, while we only need 4. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D2401
This commit is contained in:
parent
d210755f85
commit
72d18c195e
@ -551,26 +551,28 @@ typedef ccl_addr_space struct Intersection {
|
||||
|
||||
typedef enum PrimitiveType {
|
||||
PRIMITIVE_NONE = 0,
|
||||
PRIMITIVE_TRIANGLE = 1,
|
||||
PRIMITIVE_MOTION_TRIANGLE = 2,
|
||||
PRIMITIVE_CURVE = 4,
|
||||
PRIMITIVE_MOTION_CURVE = 8,
|
||||
/* Lamp primitive is not included below on purpose, since it is no real traceable primitive */
|
||||
PRIMITIVE_LAMP = 16,
|
||||
PRIMITIVE_TRIANGLE = (1 << 0),
|
||||
PRIMITIVE_MOTION_TRIANGLE = (1 << 1),
|
||||
PRIMITIVE_CURVE = (1 << 2),
|
||||
PRIMITIVE_MOTION_CURVE = (1 << 3),
|
||||
/* Lamp primitive is not included below on purpose,
|
||||
* since it is no real traceable primitive.
|
||||
*/
|
||||
PRIMITIVE_LAMP = (1 << 4),
|
||||
|
||||
PRIMITIVE_ALL_TRIANGLE = (PRIMITIVE_TRIANGLE|PRIMITIVE_MOTION_TRIANGLE),
|
||||
PRIMITIVE_ALL_CURVE = (PRIMITIVE_CURVE|PRIMITIVE_MOTION_CURVE),
|
||||
PRIMITIVE_ALL_MOTION = (PRIMITIVE_MOTION_TRIANGLE|PRIMITIVE_MOTION_CURVE),
|
||||
PRIMITIVE_ALL = (PRIMITIVE_ALL_TRIANGLE|PRIMITIVE_ALL_CURVE),
|
||||
|
||||
/* Total number of different primitives.
|
||||
/* Total number of different traceable primitives.
|
||||
* NOTE: This is an actual value, not a bitflag.
|
||||
*/
|
||||
PRIMITIVE_NUM_TOTAL = 4,
|
||||
} PrimitiveType;
|
||||
|
||||
#define PRIMITIVE_PACK_SEGMENT(type, segment) ((segment << 16) | type)
|
||||
#define PRIMITIVE_UNPACK_SEGMENT(type) (type >> 16)
|
||||
#define PRIMITIVE_PACK_SEGMENT(type, segment) ((segment << PRIMITIVE_NUM_TOTAL) | (type))
|
||||
#define PRIMITIVE_UNPACK_SEGMENT(type) (type >> PRIMITIVE_NUM_TOTAL)
|
||||
|
||||
/* Attributes */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user