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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2014-03-29 16:03:47 +0400
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2014-03-29 16:03:47 +0400
commite8b1cfed0a3afbf69b5bd5a7e0a51381622e844f (patch)
tree8416fab6524a7041edf5dc95539ce1973092f9e9 /intern/cycles
parent6997908afc38a3c98d09939f3b46f10d7a165d2e (diff)
Cycles code refactor: replace magic ~0 values in the code with defines.
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/kernel/geom/geom_bvh_subsurface.h10
-rw-r--r--intern/cycles/kernel/geom/geom_bvh_traversal.h12
-rw-r--r--intern/cycles/kernel/geom/geom_curve.h12
-rw-r--r--intern/cycles/kernel/geom/geom_motion_triangle.h12
-rw-r--r--intern/cycles/kernel/geom/geom_object.h12
-rw-r--r--intern/cycles/kernel/geom/geom_triangle.h8
-rw-r--r--intern/cycles/kernel/kernel_camera.h4
-rw-r--r--intern/cycles/kernel/kernel_emission.h8
-rw-r--r--intern/cycles/kernel/kernel_light.h12
-rw-r--r--intern/cycles/kernel/kernel_path.h16
-rw-r--r--intern/cycles/kernel/kernel_path_state.h2
-rw-r--r--intern/cycles/kernel/kernel_primitive.h4
-rw-r--r--intern/cycles/kernel/kernel_shader.h28
-rw-r--r--intern/cycles/kernel/kernel_shadow.h6
-rw-r--r--intern/cycles/kernel/kernel_types.h5
-rw-r--r--intern/cycles/kernel/kernel_volume.h18
-rw-r--r--intern/cycles/kernel/osl/osl_services.cpp24
-rw-r--r--intern/cycles/kernel/osl/osl_shader.cpp4
-rw-r--r--intern/cycles/kernel/svm/svm_attribute.h2
-rw-r--r--intern/cycles/kernel/svm/svm_closure.h4
-rw-r--r--intern/cycles/kernel/svm/svm_image.h2
-rw-r--r--intern/cycles/kernel/svm/svm_tex_coord.h38
-rw-r--r--intern/cycles/kernel/svm/svm_vector_transform.h2
-rw-r--r--intern/cycles/kernel/svm/svm_wireframe.h4
-rw-r--r--intern/cycles/render/background.cpp4
-rw-r--r--intern/cycles/render/mesh_displace.cpp2
26 files changed, 129 insertions, 126 deletions
diff --git a/intern/cycles/kernel/geom/geom_bvh_subsurface.h b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
index 994c98e5f5f..ae4641d257a 100644
--- a/intern/cycles/kernel/geom/geom_bvh_subsurface.h
+++ b/intern/cycles/kernel/geom/geom_bvh_subsurface.h
@@ -51,10 +51,10 @@ ccl_device uint BVH_FUNCTION_NAME(KernelGlobals *kg, const Ray *ray, Intersectio
const float tmax = ray->t;
float3 P = ray->P;
float3 idir = bvh_inverse_direction(ray->D);
- int object = ~0;
+ int object = OBJECT_NONE;
float isect_t = tmax;
- const uint visibility = ~0;
+ const uint visibility = PATH_RAY_ALL_VISIBILITY;
uint num_hits = 0;
#if FEATURE(BVH_MOTION)
@@ -205,7 +205,7 @@ ccl_device uint BVH_FUNCTION_NAME(KernelGlobals *kg, const Ray *ray, Intersectio
/* primitive intersection */
for(; primAddr < primAddr2; primAddr++) {
/* only primitives from the same object */
- uint tri_object = (object == ~0)? kernel_tex_fetch(__prim_object, primAddr): object;
+ uint tri_object = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, primAddr): object;
if(tri_object != subsurface_object)
continue;
@@ -267,7 +267,7 @@ ccl_device uint BVH_FUNCTION_NAME(KernelGlobals *kg, const Ray *ray, Intersectio
#if FEATURE(BVH_INSTANCING)
if(stackPtr >= 0) {
- kernel_assert(object != ~0);
+ kernel_assert(object != OBJECT_NONE);
/* instance pop */
#if FEATURE(BVH_MOTION)
@@ -286,7 +286,7 @@ ccl_device uint BVH_FUNCTION_NAME(KernelGlobals *kg, const Ray *ray, Intersectio
gen_idirsplat_swap(pn, shuf_identity, shuf_swap, idir, idirsplat, shufflexyz);
#endif
- object = ~0;
+ object = OBJECT_NONE;
nodeAddr = traversalStack[stackPtr];
--stackPtr;
}
diff --git a/intern/cycles/kernel/geom/geom_bvh_traversal.h b/intern/cycles/kernel/geom/geom_bvh_traversal.h
index e838fba6d46..153efe3932c 100644
--- a/intern/cycles/kernel/geom/geom_bvh_traversal.h
+++ b/intern/cycles/kernel/geom/geom_bvh_traversal.h
@@ -56,15 +56,15 @@ ccl_device bool BVH_FUNCTION_NAME
const float tmax = ray->t;
float3 P = ray->P;
float3 idir = bvh_inverse_direction(ray->D);
- int object = ~0;
+ int object = OBJECT_NONE;
#if FEATURE(BVH_MOTION)
Transform ob_tfm;
#endif
isect->t = tmax;
- isect->object = ~0;
- isect->prim = ~0;
+ isect->object = OBJECT_NONE;
+ isect->prim = PRIM_NONE;
isect->u = 0.0f;
isect->v = 0.0f;
@@ -332,7 +332,7 @@ ccl_device bool BVH_FUNCTION_NAME
#if FEATURE(BVH_INSTANCING)
if(stackPtr >= 0) {
- kernel_assert(object != ~0);
+ kernel_assert(object != OBJECT_NONE);
/* instance pop */
#if FEATURE(BVH_MOTION)
@@ -351,14 +351,14 @@ ccl_device bool BVH_FUNCTION_NAME
gen_idirsplat_swap(pn, shuf_identity, shuf_swap, idir, idirsplat, shufflexyz);
#endif
- object = ~0;
+ object = OBJECT_NONE;
nodeAddr = traversalStack[stackPtr];
--stackPtr;
}
#endif
} while(nodeAddr != ENTRYPOINT_SENTINEL);
- return (isect->prim != ~0);
+ return (isect->prim != PRIM_NONE);
}
#undef FEATURE
diff --git a/intern/cycles/kernel/geom/geom_curve.h b/intern/cycles/kernel/geom/geom_curve.h
index f13f92ed9d7..9d2f2ddb17a 100644
--- a/intern/cycles/kernel/geom/geom_curve.h
+++ b/intern/cycles/kernel/geom/geom_curve.h
@@ -241,7 +241,7 @@ ccl_device_inline bool bvh_cardinal_curve_intersect(KernelGlobals *kg, Intersect
P_curve[3] = _mm_load_ps(&kg->__curve_keys.data[kb].x);
}
else {
- int fobject = (object == ~0)? kernel_tex_fetch(__prim_object, curveAddr): object;
+ int fobject = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, curveAddr): object;
motion_cardinal_curve_keys(kg, fobject, prim, time, ka, k0, k1, kb, (float4*)&P_curve);
}
@@ -308,7 +308,7 @@ ccl_device_inline bool bvh_cardinal_curve_intersect(KernelGlobals *kg, Intersect
P_curve[3] = kernel_tex_fetch(__curve_keys, kb);
}
else {
- int fobject = (object == ~0)? kernel_tex_fetch(__prim_object, curveAddr): object;
+ int fobject = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, curveAddr): object;
motion_cardinal_curve_keys(kg, fobject, prim, time, ka, k0, k1, kb, P_curve);
}
@@ -618,7 +618,7 @@ ccl_device_inline bool bvh_curve_intersect(KernelGlobals *kg, Intersection *isec
P_curve[1]= kernel_tex_fetch(__curve_keys, k1);
}
else {
- int fobject = (object == ~0)? kernel_tex_fetch(__prim_object, curveAddr): object;
+ int fobject = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, curveAddr): object;
motion_curve_keys(kg, fobject, prim, time, k0, k1, P_curve);
}
@@ -653,7 +653,7 @@ ccl_device_inline bool bvh_curve_intersect(KernelGlobals *kg, Intersection *isec
P_curve[1] = _mm_load_ps(&kg->__curve_keys.data[k1].x);
}
else {
- int fobject = (object == ~0)? kernel_tex_fetch(__prim_object, curveAddr): object;
+ int fobject = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, curveAddr): object;
motion_curve_keys(kg, fobject, prim, time, k0, k1, (float4*)&P_curve);
}
@@ -863,7 +863,7 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals *kg, ShaderData *sd, con
float3 P = ray->P;
float3 D = ray->D;
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_itfm;
#else
@@ -981,7 +981,7 @@ ccl_device_inline float3 bvh_curve_refine(KernelGlobals *kg, ShaderData *sd, con
/*sd->curve_transparency = isect->v;*/
/*sd->curve_radius = sd->u * gd * l + r1;*/
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_tfm;
#else
diff --git a/intern/cycles/kernel/geom/geom_motion_triangle.h b/intern/cycles/kernel/geom/geom_motion_triangle.h
index 05642d8ab14..08ddc8910a7 100644
--- a/intern/cycles/kernel/geom/geom_motion_triangle.h
+++ b/intern/cycles/kernel/geom/geom_motion_triangle.h
@@ -117,7 +117,7 @@ ccl_device_inline float3 motion_triangle_refine(KernelGlobals *kg, ShaderData *s
float t = isect->t;
#ifdef __INTERSECTION_REFINE__
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_itfm;
#else
@@ -144,7 +144,7 @@ ccl_device_inline float3 motion_triangle_refine(KernelGlobals *kg, ShaderData *s
/* compute refined position */
P = P + D*rt;
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_tfm;
#else
@@ -168,7 +168,7 @@ ccl_device_inline float3 motion_triangle_refine_subsurface(KernelGlobals *kg, Sh
float t = isect->t;
#ifdef __INTERSECTION_REFINE__
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_itfm;
#else
@@ -194,7 +194,7 @@ ccl_device_inline float3 motion_triangle_refine_subsurface(KernelGlobals *kg, Sh
P = P + D*rt;
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_tfm;
#else
@@ -293,7 +293,7 @@ ccl_device_inline bool motion_triangle_intersect(KernelGlobals *kg, Intersection
{
/* primitive index for vertex location lookup */
int prim = kernel_tex_fetch(__prim_index, triAddr);
- int fobject = (object == ~0)? kernel_tex_fetch(__prim_object, triAddr): object;
+ int fobject = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, triAddr): object;
/* get vertex locations for intersection */
float3 verts[3];
@@ -327,7 +327,7 @@ ccl_device_inline void motion_triangle_intersect_subsurface(KernelGlobals *kg, I
{
/* primitive index for vertex location lookup */
int prim = kernel_tex_fetch(__prim_index, triAddr);
- int fobject = (object == ~0)? kernel_tex_fetch(__prim_object, triAddr): object;
+ int fobject = (object == OBJECT_NONE)? kernel_tex_fetch(__prim_object, triAddr): object;
/* get vertex locations for intersection */
float3 verts[3];
diff --git a/intern/cycles/kernel/geom/geom_object.h b/intern/cycles/kernel/geom/geom_object.h
index b1106c25fd7..06f7d28c052 100644
--- a/intern/cycles/kernel/geom/geom_object.h
+++ b/intern/cycles/kernel/geom/geom_object.h
@@ -162,7 +162,7 @@ ccl_device_inline void object_inverse_dir_transform(KernelGlobals *kg, ShaderDat
ccl_device_inline float3 object_location(KernelGlobals *kg, ShaderData *sd)
{
- if(sd->object == ~0)
+ if(sd->object == OBJECT_NONE)
return make_float3(0.0f, 0.0f, 0.0f);
#ifdef __OBJECT_MOTION__
@@ -182,7 +182,7 @@ ccl_device_inline float object_surface_area(KernelGlobals *kg, int object)
ccl_device_inline float object_pass_id(KernelGlobals *kg, int object)
{
- if(object == ~0)
+ if(object == OBJECT_NONE)
return 0.0f;
int offset = object*OBJECT_SIZE + OBJECT_PROPERTIES;
@@ -192,7 +192,7 @@ ccl_device_inline float object_pass_id(KernelGlobals *kg, int object)
ccl_device_inline float object_random_number(KernelGlobals *kg, int object)
{
- if(object == ~0)
+ if(object == OBJECT_NONE)
return 0.0f;
int offset = object*OBJECT_SIZE + OBJECT_PROPERTIES;
@@ -202,7 +202,7 @@ ccl_device_inline float object_random_number(KernelGlobals *kg, int object)
ccl_device_inline uint object_particle_id(KernelGlobals *kg, int object)
{
- if(object == ~0)
+ if(object == OBJECT_NONE)
return 0.0f;
int offset = object*OBJECT_SIZE + OBJECT_PROPERTIES;
@@ -212,7 +212,7 @@ ccl_device_inline uint object_particle_id(KernelGlobals *kg, int object)
ccl_device_inline float3 object_dupli_generated(KernelGlobals *kg, int object)
{
- if(object == ~0)
+ if(object == OBJECT_NONE)
return make_float3(0.0f, 0.0f, 0.0f);
int offset = object*OBJECT_SIZE + OBJECT_DUPLI;
@@ -222,7 +222,7 @@ ccl_device_inline float3 object_dupli_generated(KernelGlobals *kg, int object)
ccl_device_inline float3 object_dupli_uv(KernelGlobals *kg, int object)
{
- if(object == ~0)
+ if(object == OBJECT_NONE)
return make_float3(0.0f, 0.0f, 0.0f);
int offset = object*OBJECT_SIZE + OBJECT_DUPLI;
diff --git a/intern/cycles/kernel/geom/geom_triangle.h b/intern/cycles/kernel/geom/geom_triangle.h
index 7b115daa022..ab59524f7c9 100644
--- a/intern/cycles/kernel/geom/geom_triangle.h
+++ b/intern/cycles/kernel/geom/geom_triangle.h
@@ -28,7 +28,7 @@ ccl_device_inline float3 triangle_refine(KernelGlobals *kg, ShaderData *sd, cons
float t = isect->t;
#ifdef __INTERSECTION_REFINE__
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_itfm;
#else
@@ -49,7 +49,7 @@ ccl_device_inline float3 triangle_refine(KernelGlobals *kg, ShaderData *sd, cons
P = P + D*rt;
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_tfm;
#else
@@ -73,7 +73,7 @@ ccl_device_inline float3 triangle_refine_subsurface(KernelGlobals *kg, ShaderDat
float t = isect->t;
#ifdef __INTERSECTION_REFINE__
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_itfm;
#else
@@ -94,7 +94,7 @@ ccl_device_inline float3 triangle_refine_subsurface(KernelGlobals *kg, ShaderDat
P = P + D*rt;
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_tfm;
#else
diff --git a/intern/cycles/kernel/kernel_camera.h b/intern/cycles/kernel/kernel_camera.h
index fe995bbb594..7fc66a9fdee 100644
--- a/intern/cycles/kernel/kernel_camera.h
+++ b/intern/cycles/kernel/kernel_camera.h
@@ -266,7 +266,7 @@ ccl_device_inline float3 camera_world_to_ndc(KernelGlobals *kg, ShaderData *sd,
{
if(kernel_data.cam.type != CAMERA_PANORAMA) {
/* perspective / ortho */
- if(sd->object == ~0 && kernel_data.cam.type == CAMERA_PERSPECTIVE)
+ if(sd->object == PRIM_NONE && kernel_data.cam.type == CAMERA_PERSPECTIVE)
P += camera_position(kg);
Transform tfm = kernel_data.cam.worldtondc;
@@ -276,7 +276,7 @@ ccl_device_inline float3 camera_world_to_ndc(KernelGlobals *kg, ShaderData *sd,
/* panorama */
Transform tfm = kernel_data.cam.worldtocamera;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
P = normalize(transform_point(&tfm, P));
else
P = normalize(transform_direction(&tfm, P));
diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h
index 44c2572efc2..bb61b2111fe 100644
--- a/intern/cycles/kernel/kernel_emission.h
+++ b/intern/cycles/kernel/kernel_emission.h
@@ -70,7 +70,7 @@ ccl_device_noinline bool direct_emission(KernelGlobals *kg, ShaderData *sd, int
LightSample ls;
#ifdef __BRANCHED_PATH__
- if(lindex != -1) {
+ if(lindex != LAMP_NONE) {
/* sample position on a specified light */
light_select(kg, lindex, randu, randv, sd->P, &ls);
}
@@ -97,7 +97,7 @@ ccl_device_noinline bool direct_emission(KernelGlobals *kg, ShaderData *sd, int
float bsdf_pdf;
#ifdef __VOLUME__
- if(sd->prim != ~0)
+ if(sd->prim != PRIM_NONE)
shader_bsdf_eval(kg, sd, ls.D, eval, &bsdf_pdf);
else
shader_volume_phase_eval(kg, sd, ls.D, eval, &bsdf_pdf);
@@ -153,7 +153,7 @@ ccl_device_noinline bool direct_emission(KernelGlobals *kg, ShaderData *sd, int
}
/* return if it's a lamp for shadow pass */
- *is_lamp = (ls.prim == ~0 && ls.type != LIGHT_BACKGROUND);
+ *is_lamp = (ls.prim == PRIM_NONE && ls.type != LIGHT_BACKGROUND);
return true;
}
@@ -188,7 +188,7 @@ ccl_device_noinline bool indirect_lamp_emission(KernelGlobals *kg, Ray *ray, int
LightSample ls;
int lamp = lamp_light_eval_sample(kg, randt);
- if(lamp == ~0)
+ if(lamp == LAMP_NONE)
return false;
if(!lamp_light_eval(kg, lamp, ray->P, ray->D, ray->t, &ls))
diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h
index 8c3f558c3ea..ffda44fee57 100644
--- a/intern/cycles/kernel/kernel_light.h
+++ b/intern/cycles/kernel/kernel_light.h
@@ -217,8 +217,8 @@ ccl_device void lamp_light_sample(KernelGlobals *kg, int lamp,
LightType type = (LightType)__float_as_int(data0.x);
ls->type = type;
ls->shader = __float_as_int(data1.x);
- ls->object = ~0;
- ls->prim = ~0;
+ ls->object = PRIM_NONE;
+ ls->prim = PRIM_NONE;
ls->lamp = lamp;
ls->u = randu;
ls->v = randv;
@@ -309,8 +309,8 @@ ccl_device bool lamp_light_eval(KernelGlobals *kg, int lamp, float3 P, float3 D,
LightType type = (LightType)__float_as_int(data0.x);
ls->type = type;
ls->shader = __float_as_int(data1.x);
- ls->object = ~0;
- ls->prim = ~0;
+ ls->object = PRIM_NONE;
+ ls->prim = PRIM_NONE;
ls->lamp = lamp;
/* todo: missing texture coordinates */
ls->u = 0.0f;
@@ -461,7 +461,7 @@ ccl_device void triangle_light_sample(KernelGlobals *kg, int prim, int object,
triangle_point_normal(kg, prim, u, v, &ls->P, &ls->Ng, &ls->shader);
ls->object = object;
ls->prim = prim;
- ls->lamp = ~0;
+ ls->lamp = LAMP_NONE;
ls->shader |= SHADER_USE_MIS;
ls->t = 0.0f;
ls->u = u;
@@ -566,7 +566,7 @@ ccl_device int lamp_light_eval_sample(KernelGlobals *kg, float randt)
return lamp;
}
else
- return ~0;
+ return LAMP_NONE;
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h
index 9b3ddbb7557..4ee3eea03a7 100644
--- a/intern/cycles/kernel/kernel_path.h
+++ b/intern/cycles/kernel/kernel_path.h
@@ -74,7 +74,7 @@ ccl_device_inline bool kernel_path_integrate_scatter_lighting(KernelGlobals *kg,
light_ray.time = sd->time;
#endif
- if(direct_emission(kg, sd, -1, light_t, light_o, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
+ if(direct_emission(kg, sd, LAMP_NONE, light_t, light_o, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
/* trace shadow ray */
float3 shadow;
@@ -188,7 +188,7 @@ ccl_device void kernel_branched_path_integrate_direct_lighting(KernelGlobals *kg
if(kernel_data.integrator.num_all_lights)
light_t = 0.5f*light_t;
- if(direct_emission(kg, sd, -1, light_t, 0.0f, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
+ if(direct_emission(kg, sd, LAMP_NONE, light_t, 0.0f, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
/* trace shadow ray */
float3 shadow;
@@ -206,7 +206,7 @@ ccl_device void kernel_branched_path_integrate_direct_lighting(KernelGlobals *kg
path_state_rng_2D(kg, rng, state, PRNG_LIGHT_U, &light_u, &light_v);
/* sample random light */
- if(direct_emission(kg, sd, -1, light_t, 0.0f, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
+ if(direct_emission(kg, sd, LAMP_NONE, light_t, 0.0f, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
/* trace shadow ray */
float3 shadow;
@@ -257,7 +257,7 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG *rng, Ray ray, ccl_g
#ifdef __VOLUME__
/* volume attenuation, emission, scatter */
- if(state.volume_stack[0].shader != SHADER_NO_ID) {
+ if(state.volume_stack[0].shader != SHADER_NONE) {
Ray volume_ray = ray;
volume_ray.t = (hit)? isect.t: FLT_MAX;
@@ -492,7 +492,7 @@ ccl_device_inline bool kernel_path_integrate_lighting(KernelGlobals *kg, RNG *rn
light_ray.time = sd->time;
#endif
- if(direct_emission(kg, sd, -1, light_t, light_o, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
+ if(direct_emission(kg, sd, LAMP_NONE, light_t, light_o, light_u, light_v, &light_ray, &L_light, &is_lamp, state->bounce)) {
/* trace shadow ray */
float3 shadow;
@@ -646,7 +646,7 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample,
#ifdef __VOLUME__
/* volume attenuation, emission, scatter */
- if(state.volume_stack[0].shader != SHADER_NO_ID) {
+ if(state.volume_stack[0].shader != SHADER_NONE) {
Ray volume_ray = ray;
volume_ray.t = (hit)? isect.t: FLT_MAX;
@@ -853,7 +853,7 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample,
light_ray.time = sd.time;
#endif
- if(direct_emission(kg, &sd, -1, light_t, light_o, light_u, light_v, &light_ray, &L_light, &is_lamp, state.bounce)) {
+ if(direct_emission(kg, &sd, LAMP_NONE, light_t, light_o, light_u, light_v, &light_ray, &L_light, &is_lamp, state.bounce)) {
/* trace shadow ray */
float3 shadow;
@@ -1088,7 +1088,7 @@ ccl_device float4 kernel_branched_path_integrate(KernelGlobals *kg, RNG *rng, in
#ifdef __VOLUME__
/* volume attenuation, emission, scatter */
- if(state.volume_stack[0].shader != SHADER_NO_ID) {
+ if(state.volume_stack[0].shader != SHADER_NONE) {
Ray volume_ray = ray;
volume_ray.t = (hit)? isect.t: FLT_MAX;
diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/kernel_path_state.h
index 457082485e1..406654c1741 100644
--- a/intern/cycles/kernel/kernel_path_state.h
+++ b/intern/cycles/kernel/kernel_path_state.h
@@ -50,7 +50,7 @@ ccl_device_inline void path_state_init(KernelGlobals *kg, PathState *state, RNG
state->rng_congruential = lcg_init(*rng + sample*0x51633e2d);
}
else {
- state->volume_stack[0].shader = SHADER_NO_ID;
+ state->volume_stack[0].shader = SHADER_NONE;
}
#endif
}
diff --git a/intern/cycles/kernel/kernel_primitive.h b/intern/cycles/kernel/kernel_primitive.h
index af5faf37c3f..11f6231afac 100644
--- a/intern/cycles/kernel/kernel_primitive.h
+++ b/intern/cycles/kernel/kernel_primitive.h
@@ -23,7 +23,7 @@ CCL_NAMESPACE_BEGIN
ccl_device_inline int find_attribute(KernelGlobals *kg, ShaderData *sd, uint id, AttributeElement *elem)
{
- if(sd->object == ~0)
+ if(sd->object == PRIM_NONE)
return (int)ATTR_STD_NOT_FOUND;
#ifdef __OSL__
@@ -47,7 +47,7 @@ ccl_device_inline int find_attribute(KernelGlobals *kg, ShaderData *sd, uint id,
*elem = (AttributeElement)attr_map.y;
- if(sd->prim == ~0 && (AttributeElement)attr_map.y != ATTR_ELEMENT_MESH)
+ if(sd->prim == PRIM_NONE && (AttributeElement)attr_map.y != ATTR_ELEMENT_MESH)
return ATTR_STD_NOT_FOUND;
/* return result */
diff --git a/intern/cycles/kernel/kernel_shader.h b/intern/cycles/kernel/kernel_shader.h
index 2ba87e29786..716dd5127c1 100644
--- a/intern/cycles/kernel/kernel_shader.h
+++ b/intern/cycles/kernel/kernel_shader.h
@@ -52,7 +52,7 @@ ccl_device void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd,
const Intersection *isect, const Ray *ray, int bounce)
{
#ifdef __INSTANCING__
- sd->object = (isect->object == ~0)? kernel_tex_fetch(__prim_object, isect->prim): isect->object;
+ sd->object = (isect->object == PRIM_NONE)? kernel_tex_fetch(__prim_object, isect->prim): isect->object;
#endif
sd->type = isect->type;
@@ -113,7 +113,7 @@ ccl_device void shader_setup_from_ray(KernelGlobals *kg, ShaderData *sd,
sd->flag |= kernel_tex_fetch(__shader_flag, (sd->shader & SHADER_MASK)*2);
#ifdef __INSTANCING__
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
/* instance transform */
object_normal_transform(kg, sd, &sd->N);
object_normal_transform(kg, sd, &sd->Ng);
@@ -190,7 +190,7 @@ ccl_device_inline void shader_setup_from_subsurface(KernelGlobals *kg, ShaderDat
sd->flag |= kernel_tex_fetch(__shader_flag, (sd->shader & SHADER_MASK)*2);
#ifdef __INSTANCING__
- if(isect->object != ~0) {
+ if(isect->object != OBJECT_NONE) {
/* instance transform */
object_normal_transform(kg, sd, &sd->N);
object_normal_transform(kg, sd, &sd->Ng);
@@ -236,7 +236,7 @@ ccl_device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
sd->Ng = Ng;
sd->I = I;
sd->shader = shader;
- sd->type = (prim == ~0)? PRIMITIVE_NONE: PRIMITIVE_TRIANGLE;
+ sd->type = (prim == PRIM_NONE)? PRIMITIVE_NONE: PRIMITIVE_TRIANGLE;
/* primitive */
#ifdef __INSTANCING__
@@ -255,7 +255,7 @@ ccl_device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
#ifdef __INSTANCING__
bool instanced = false;
- if(sd->prim != ~0) {
+ if(sd->prim != PRIM_NONE) {
if(sd->object >= 0)
instanced = true;
else
@@ -266,7 +266,7 @@ ccl_device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
#endif
sd->flag = kernel_tex_fetch(__shader_flag, (sd->shader & SHADER_MASK)*2);
- if(sd->object != -1) {
+ if(sd->object != OBJECT_NONE) {
sd->flag |= kernel_tex_fetch(__object_flag, sd->object);
#ifdef __OBJECT_MOTION__
@@ -309,7 +309,7 @@ ccl_device void shader_setup_from_sample(KernelGlobals *kg, ShaderData *sd,
}
/* backfacing test */
- if(sd->prim != ~0) {
+ if(sd->prim != PRIM_NONE) {
bool backfacing = (dot(sd->Ng, sd->I) < 0.0f);
if(backfacing) {
@@ -368,9 +368,9 @@ ccl_device_inline void shader_setup_from_background(KernelGlobals *kg, ShaderDat
sd->ray_depth = bounce;
#ifdef __INSTANCING__
- sd->object = ~0;
+ sd->object = PRIM_NONE;
#endif
- sd->prim = ~0;
+ sd->prim = PRIM_NONE;
#ifdef __UV__
sd->u = 0.0f;
sd->v = 0.0f;
@@ -402,7 +402,7 @@ ccl_device_inline void shader_setup_from_volume(KernelGlobals *kg, ShaderData *s
sd->N = -ray->D;
sd->Ng = -ray->D;
sd->I = -ray->D;
- sd->shader = SHADER_NO_ID;
+ sd->shader = SHADER_NONE;
sd->flag = 0;
#ifdef __OBJECT_MOTION__
sd->time = ray->time;
@@ -411,9 +411,9 @@ ccl_device_inline void shader_setup_from_volume(KernelGlobals *kg, ShaderData *s
sd->ray_depth = bounce;
#ifdef __INSTANCING__
- sd->object = ~0; /* todo: fill this for texture coordinates */
+ sd->object = PRIM_NONE; /* todo: fill this for texture coordinates */
#endif
- sd->prim = ~0;
+ sd->prim = PRIM_NONE;
sd->type = PRIMITIVE_NONE;
#ifdef __UV__
@@ -1056,7 +1056,7 @@ ccl_device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd,
#endif
sd->flag = 0;
- for(int i = 0; stack[i].shader != SHADER_NO_ID; i++) {
+ for(int i = 0; stack[i].shader != SHADER_NONE; i++) {
/* setup shaderdata from stack. it's mostly setup already in
* shader_setup_from_volume, this switching should be quick */
sd->object = stack[i].object;
@@ -1065,7 +1065,7 @@ ccl_device void shader_eval_volume(KernelGlobals *kg, ShaderData *sd,
sd->flag &= ~(SD_SHADER_FLAGS|SD_OBJECT_FLAGS);
sd->flag |= kernel_tex_fetch(__shader_flag, (sd->shader & SHADER_MASK)*2);
- if(sd->object != ~0) {
+ if(sd->object != OBJECT_NONE) {
sd->flag |= kernel_tex_fetch(__object_flag, sd->object);
#ifdef __OBJECT_MOTION__
diff --git a/intern/cycles/kernel/kernel_shadow.h b/intern/cycles/kernel/kernel_shadow.h
index 9b015c98c40..971dca38fc5 100644
--- a/intern/cycles/kernel/kernel_shadow.h
+++ b/intern/cycles/kernel/kernel_shadow.h
@@ -73,7 +73,7 @@ ccl_device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *
#ifdef __VOLUME__
/* attenuation for last line segment towards light */
- if(ps.volume_stack[0].shader != SHADER_NO_ID)
+ if(ps.volume_stack[0].shader != SHADER_NONE)
kernel_volume_shadow(kg, &ps, ray, &throughput);
#endif
@@ -86,7 +86,7 @@ ccl_device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *
#ifdef __VOLUME__
/* attenuation between last surface and next surface */
- if(ps.volume_stack[0].shader != SHADER_NO_ID) {
+ if(ps.volume_stack[0].shader != SHADER_NONE) {
Ray segment_ray = *ray;
segment_ray.t = isect.t;
kernel_volume_shadow(kg, &ps, &segment_ray, &throughput);
@@ -118,7 +118,7 @@ ccl_device_inline bool shadow_blocked(KernelGlobals *kg, PathState *state, Ray *
}
}
#ifdef __VOLUME__
- else if(!result && state->volume_stack[0].shader != SHADER_NO_ID) {
+ else if(!result && state->volume_stack[0].shader != SHADER_NONE) {
/* apply attenuation from current volume shader */
kernel_volume_shadow(kg, state, ray, shadow);
}
diff --git a/intern/cycles/kernel/kernel_types.h b/intern/cycles/kernel/kernel_types.h
index 2590717d378..0be83e5cbc1 100644
--- a/intern/cycles/kernel/kernel_types.h
+++ b/intern/cycles/kernel/kernel_types.h
@@ -46,7 +46,10 @@ CCL_NAMESPACE_BEGIN
#define TEX_NUM_FLOAT_IMAGES 5
-#define SHADER_NO_ID -1
+#define SHADER_NONE (~0)
+#define OBJECT_NONE (~0)
+#define PRIM_NONE (~0)
+#define LAMP_NONE (~0)
#define VOLUME_STACK_SIZE 16
diff --git a/intern/cycles/kernel/kernel_volume.h b/intern/cycles/kernel/kernel_volume.h
index cbb83b803d9..e4508f2cfe4 100644
--- a/intern/cycles/kernel/kernel_volume.h
+++ b/intern/cycles/kernel/kernel_volume.h
@@ -99,7 +99,7 @@ ccl_device float3 volume_color_attenuation(float3 sigma, float t)
ccl_device bool volume_stack_is_heterogeneous(KernelGlobals *kg, VolumeStack *stack)
{
- for(int i = 0; stack[i].shader != SHADER_NO_ID; i++) {
+ for(int i = 0; stack[i].shader != SHADER_NONE; i++) {
int shader_flag = kernel_tex_fetch(__shader_flag, (stack[i].shader & SHADER_MASK)*2);
if(shader_flag & SD_HETEROGENEOUS_VOLUME)
@@ -557,13 +557,13 @@ ccl_device_noinline VolumeIntegrateResult kernel_volume_integrate(KernelGlobals
ccl_device void kernel_volume_stack_init(KernelGlobals *kg, VolumeStack *stack)
{
/* todo: this assumes camera is always in air, need to detect when it isn't */
- if(kernel_data.background.volume_shader == SHADER_NO_ID) {
- stack[0].shader = SHADER_NO_ID;
+ if(kernel_data.background.volume_shader == SHADER_NONE) {
+ stack[0].shader = SHADER_NONE;
}
else {
stack[0].shader = kernel_data.background.volume_shader;
- stack[0].object = ~0;
- stack[1].shader = SHADER_NO_ID;
+ stack[0].object = PRIM_NONE;
+ stack[1].shader = SHADER_NONE;
}
}
@@ -578,14 +578,14 @@ ccl_device void kernel_volume_stack_enter_exit(KernelGlobals *kg, ShaderData *sd
if(sd->flag & SD_BACKFACING) {
/* exit volume object: remove from stack */
- for(int i = 0; stack[i].shader != SHADER_NO_ID; i++) {
+ for(int i = 0; stack[i].shader != SHADER_NONE; i++) {
if(stack[i].object == sd->object) {
/* shift back next stack entries */
do {
stack[i] = stack[i+1];
i++;
}
- while(stack[i].shader != SHADER_NO_ID);
+ while(stack[i].shader != SHADER_NONE);
return;
}
@@ -595,7 +595,7 @@ ccl_device void kernel_volume_stack_enter_exit(KernelGlobals *kg, ShaderData *sd
/* enter volume object: add to stack */
int i;
- for(i = 0; stack[i].shader != SHADER_NO_ID; i++) {
+ for(i = 0; stack[i].shader != SHADER_NONE; i++) {
/* already in the stack? then we have nothing to do */
if(stack[i].object == sd->object)
return;
@@ -608,7 +608,7 @@ ccl_device void kernel_volume_stack_enter_exit(KernelGlobals *kg, ShaderData *sd
/* add to the end of the stack */
stack[i].shader = sd->shader;
stack[i].object = sd->object;
- stack[i+1].shader = SHADER_NO_ID;
+ stack[i+1].shader = SHADER_NONE;
}
}
diff --git a/intern/cycles/kernel/osl/osl_services.cpp b/intern/cycles/kernel/osl/osl_services.cpp
index 10216c22818..8ef160663a3 100644
--- a/intern/cycles/kernel/osl/osl_services.cpp
+++ b/intern/cycles/kernel/osl/osl_services.cpp
@@ -130,7 +130,7 @@ bool OSLRenderServices::get_matrix(OSL::Matrix44 &result, OSL::TransformationPtr
KernelGlobals *kg = sd->osl_globals;
int object = sd->object;
- if (object != ~0) {
+ if (object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm;
@@ -160,7 +160,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::Matrix44 &result, OSL::Transform
KernelGlobals *kg = sd->osl_globals;
int object = sd->object;
- if (object != ~0) {
+ if (object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform itfm;
@@ -245,7 +245,7 @@ bool OSLRenderServices::get_matrix(OSL::Matrix44 &result, OSL::TransformationPtr
const ShaderData *sd = (const ShaderData *)xform;
int object = sd->object;
- if (object != ~0) {
+ if (object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_tfm;
#else
@@ -270,7 +270,7 @@ bool OSLRenderServices::get_inverse_matrix(OSL::Matrix44 &result, OSL::Transform
const ShaderData *sd = (const ShaderData *)xform;
int object = sd->object;
- if (object != ~0) {
+ if (object != OBJECT_NONE) {
#ifdef __OBJECT_MOTION__
Transform tfm = sd->ob_itfm;
#else
@@ -708,7 +708,7 @@ bool OSLRenderServices::get_background_attribute(KernelGlobals *kg, ShaderData *
OSL::ShaderGlobals *globals = &tdata->globals;
float3 ndc[3];
- if((globals->raytype & PATH_RAY_CAMERA) && sd->object == ~0 && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC) {
+ if((globals->raytype & PATH_RAY_CAMERA) && sd->object == OBJECT_NONE && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC) {
ndc[0] = camera_world_to_ndc(kg, sd, sd->ray_P);
if(derivatives) {
@@ -747,7 +747,7 @@ bool OSLRenderServices::get_attribute(void *renderstate, bool derivatives, ustri
return false;
object = it->second;
- prim = ~0;
+ prim = PRIM_NONE;
is_curve = false;
}
else {
@@ -755,7 +755,7 @@ bool OSLRenderServices::get_attribute(void *renderstate, bool derivatives, ustri
prim = sd->prim;
is_curve = (sd->type & PRIMITIVE_ALL_CURVE) != 0;
- if (object == ~0)
+ if (object == OBJECT_NONE)
return get_background_attribute(kg, sd, name, type, derivatives, val);
}
@@ -769,7 +769,7 @@ bool OSLRenderServices::get_attribute(void *renderstate, bool derivatives, ustri
if (attr.elem != ATTR_ELEMENT_OBJECT) {
/* triangle and vertex attributes */
- if (prim != ~0)
+ if (prim != PRIM_NONE)
return get_mesh_element_attribute(kg, sd, attr, type, derivatives, val);
else
return get_mesh_attribute(kg, sd, attr, type, derivatives, val);
@@ -1005,9 +1005,9 @@ bool OSLRenderServices::trace(TraceOpt &options, OSL::ShaderGlobals *sg,
/* raytrace */
#ifdef __HAIR__
- return scene_intersect(sd->osl_globals, &ray, ~0, &tracedata->isect, NULL, 0.0f, 0.0f);
+ return scene_intersect(sd->osl_globals, &ray, PATH_RAY_ALL_VISIBILITY, &tracedata->isect, NULL, 0.0f, 0.0f);
#else
- return scene_intersect(sd->osl_globals, &ray, ~0, &tracedata->isect);
+ return scene_intersect(sd->osl_globals, &ray, PATH_RAY_ALL_VISIBILITY, &tracedata->isect);
#endif
}
@@ -1019,9 +1019,9 @@ bool OSLRenderServices::getmessage(OSL::ShaderGlobals *sg, ustring source, ustri
if(source == u_trace && tracedata->init) {
if(name == u_hit) {
- return set_attribute_int((tracedata->isect.prim != ~0), type, derivatives, val);
+ return set_attribute_int((tracedata->isect.prim != PRIM_NONE), type, derivatives, val);
}
- else if(tracedata->isect.prim != ~0) {
+ else if(tracedata->isect.prim != PRIM_NONE) {
if(name == u_hitdist) {
float f[3] = {tracedata->isect.t, 0.0f, 0.0f};
return set_attribute_float(f, type, derivatives, val);
diff --git a/intern/cycles/kernel/osl/osl_shader.cpp b/intern/cycles/kernel/osl/osl_shader.cpp
index b5842d1013e..64c734dec64 100644
--- a/intern/cycles/kernel/osl/osl_shader.cpp
+++ b/intern/cycles/kernel/osl/osl_shader.cpp
@@ -113,7 +113,7 @@ static void shaderdata_to_shaderglobals(KernelGlobals *kg, ShaderData *sd,
globals->dvdy = sd->dv.dy;
globals->dPdu = TO_VEC3(sd->dPdu);
globals->dPdv = TO_VEC3(sd->dPdv);
- globals->surfacearea = (sd->object == ~0) ? 1.0f : object_surface_area(kg, sd->object);
+ globals->surfacearea = (sd->object == OBJECT_NONE) ? 1.0f : object_surface_area(kg, sd->object);
globals->time = sd->time;
/* booleans */
@@ -547,7 +547,7 @@ int OSLShader::find_attribute(KernelGlobals *kg, const ShaderData *sd, uint id,
const OSLGlobals::Attribute &osl_attr = it->second;
*elem = osl_attr.elem;
- if(sd->prim == ~0 && (AttributeElement)osl_attr.elem != ATTR_ELEMENT_MESH)
+ if(sd->prim == PRIM_NONE && (AttributeElement)osl_attr.elem != ATTR_ELEMENT_MESH)
return ATTR_STD_NOT_FOUND;
/* return result */
diff --git a/intern/cycles/kernel/svm/svm_attribute.h b/intern/cycles/kernel/svm/svm_attribute.h
index aae52ec3d84..2592bbe575f 100644
--- a/intern/cycles/kernel/svm/svm_attribute.h
+++ b/intern/cycles/kernel/svm/svm_attribute.h
@@ -22,7 +22,7 @@ ccl_device void svm_node_attr_init(KernelGlobals *kg, ShaderData *sd,
uint4 node, NodeAttributeType *type,
NodeAttributeType *mesh_type, AttributeElement *elem, int *offset, uint *out_offset)
{
- if(sd->object != ~0 && sd->prim != ~0) {
+ if(sd->object != OBJECT_NONE && sd->prim != PRIM_NONE) {
/* find attribute by unique id */
uint id = node.y;
uint attr_offset = sd->object*kernel_data.bvh.attributes_map_stride;
diff --git a/intern/cycles/kernel/svm/svm_closure.h b/intern/cycles/kernel/svm/svm_closure.h
index 49d99ead03e..fb1a981adda 100644
--- a/intern/cycles/kernel/svm/svm_closure.h
+++ b/intern/cycles/kernel/svm/svm_closure.h
@@ -637,7 +637,7 @@ ccl_device void svm_node_emission_set_weight_total(KernelGlobals *kg, ShaderData
{
float3 weight = make_float3(__uint_as_float(r), __uint_as_float(g), __uint_as_float(b));
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
weight /= object_surface_area(kg, sd->object);
svm_node_closure_store_weight(sd, weight);
@@ -659,7 +659,7 @@ ccl_device void svm_node_emission_weight(KernelGlobals *kg, ShaderData *sd, floa
float strength = stack_load_float(stack, strength_offset);
float3 weight = stack_load_float3(stack, color_offset)*strength;
- if(total_power && sd->object != ~0)
+ if(total_power && sd->object != OBJECT_NONE)
weight /= object_surface_area(kg, sd->object);
svm_node_closure_store_weight(sd, weight);
diff --git a/intern/cycles/kernel/svm/svm_image.h b/intern/cycles/kernel/svm/svm_image.h
index 73c0ab1ae0b..ce2893e1893 100644
--- a/intern/cycles/kernel/svm/svm_image.h
+++ b/intern/cycles/kernel/svm/svm_image.h
@@ -322,7 +322,7 @@ ccl_device void svm_node_tex_image_box(KernelGlobals *kg, ShaderData *sd, float
float3 N = sd->N;
N = sd->N;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_normal_transform(kg, sd, &N);
/* project from direction vector to barycentric coordinates in triangles */
diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h
index 4b1f30e55bb..bddeac0b722 100644
--- a/intern/cycles/kernel/svm/svm_tex_coord.h
+++ b/intern/cycles/kernel/svm/svm_tex_coord.h
@@ -25,27 +25,27 @@ ccl_device void svm_node_tex_coord(KernelGlobals *kg, ShaderData *sd, int path_f
switch(type) {
case NODE_TEXCO_OBJECT: {
data = sd->P;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_position_transform(kg, sd, &data);
break;
}
case NODE_TEXCO_NORMAL: {
data = sd->N;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_normal_transform(kg, sd, &data);
break;
}
case NODE_TEXCO_CAMERA: {
Transform tfm = kernel_data.cam.worldtocamera;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
data = transform_point(&tfm, sd->P);
else
data = transform_point(&tfm, sd->P + camera_position(kg));
break;
}
case NODE_TEXCO_WINDOW: {
- if((path_flag & PATH_RAY_CAMERA) && sd->object == ~0 && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
+ if((path_flag & PATH_RAY_CAMERA) && sd->object == OBJECT_NONE && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
data = camera_world_to_ndc(kg, sd, sd->ray_P);
else
data = camera_world_to_ndc(kg, sd, sd->P);
@@ -53,7 +53,7 @@ ccl_device void svm_node_tex_coord(KernelGlobals *kg, ShaderData *sd, int path_f
break;
}
case NODE_TEXCO_REFLECTION: {
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
data = 2.0f*dot(sd->N, sd->I)*sd->N - sd->I;
else
data = sd->I;
@@ -70,7 +70,7 @@ ccl_device void svm_node_tex_coord(KernelGlobals *kg, ShaderData *sd, int path_f
case NODE_TEXCO_VOLUME_GENERATED: {
data = sd->P;
- if(sd->object != ~0) {
+ if(sd->object != OBJECT_NONE) {
AttributeElement attr_elem;
int attr_offset = find_attribute(kg, sd, ATTR_STD_GENERATED_TRANSFORM, &attr_elem);
@@ -96,27 +96,27 @@ ccl_device void svm_node_tex_coord_bump_dx(KernelGlobals *kg, ShaderData *sd, in
switch(type) {
case NODE_TEXCO_OBJECT: {
data = sd->P + sd->dP.dx;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_position_transform(kg, sd, &data);
break;
}
case NODE_TEXCO_NORMAL: {
data = sd->N;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_normal_transform(kg, sd, &data);
break;
}
case NODE_TEXCO_CAMERA: {
Transform tfm = kernel_data.cam.worldtocamera;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
data = transform_point(&tfm, sd->P + sd->dP.dx);
else
data = transform_point(&tfm, sd->P + sd->dP.dx + camera_position(kg));
break;
}
case NODE_TEXCO_WINDOW: {
- if((path_flag & PATH_RAY_CAMERA) && sd->object == ~0 && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
+ if((path_flag & PATH_RAY_CAMERA) && sd->object == OBJECT_NONE && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
data = camera_world_to_ndc(kg, sd, sd->ray_P + sd->ray_dP.dx);
else
data = camera_world_to_ndc(kg, sd, sd->P + sd->dP.dx);
@@ -124,7 +124,7 @@ ccl_device void svm_node_tex_coord_bump_dx(KernelGlobals *kg, ShaderData *sd, in
break;
}
case NODE_TEXCO_REFLECTION: {
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
data = 2.0f*dot(sd->N, sd->I)*sd->N - sd->I;
else
data = sd->I;
@@ -141,7 +141,7 @@ ccl_device void svm_node_tex_coord_bump_dx(KernelGlobals *kg, ShaderData *sd, in
case NODE_TEXCO_VOLUME_GENERATED: {
data = sd->P + sd->dP.dx;
- if(sd->object != ~0) {
+ if(sd->object != OBJECT_NONE) {
AttributeElement attr_elem;
int attr_offset = find_attribute(kg, sd, ATTR_STD_GENERATED_TRANSFORM, &attr_elem);
@@ -170,27 +170,27 @@ ccl_device void svm_node_tex_coord_bump_dy(KernelGlobals *kg, ShaderData *sd, in
switch(type) {
case NODE_TEXCO_OBJECT: {
data = sd->P + sd->dP.dy;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_position_transform(kg, sd, &data);
break;
}
case NODE_TEXCO_NORMAL: {
data = sd->N;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
object_inverse_normal_transform(kg, sd, &data);
break;
}
case NODE_TEXCO_CAMERA: {
Transform tfm = kernel_data.cam.worldtocamera;
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
data = transform_point(&tfm, sd->P + sd->dP.dy);
else
data = transform_point(&tfm, sd->P + sd->dP.dy + camera_position(kg));
break;
}
case NODE_TEXCO_WINDOW: {
- if((path_flag & PATH_RAY_CAMERA) && sd->object == ~0 && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
+ if((path_flag & PATH_RAY_CAMERA) && sd->object == OBJECT_NONE && kernel_data.cam.type == CAMERA_ORTHOGRAPHIC)
data = camera_world_to_ndc(kg, sd, sd->ray_P + sd->ray_dP.dy);
else
data = camera_world_to_ndc(kg, sd, sd->P + sd->dP.dy);
@@ -198,7 +198,7 @@ ccl_device void svm_node_tex_coord_bump_dy(KernelGlobals *kg, ShaderData *sd, in
break;
}
case NODE_TEXCO_REFLECTION: {
- if(sd->object != ~0)
+ if(sd->object != OBJECT_NONE)
data = 2.0f*dot(sd->N, sd->I)*sd->N - sd->I;
else
data = sd->I;
@@ -215,7 +215,7 @@ ccl_device void svm_node_tex_coord_bump_dy(KernelGlobals *kg, ShaderData *sd, in
case NODE_TEXCO_VOLUME_GENERATED: {
data = sd->P + sd->dP.dy;
- if(sd->object != ~0) {
+ if(sd->object != OBJECT_NONE) {
AttributeElement attr_elem;
int attr_offset = find_attribute(kg, sd, ATTR_STD_GENERATED_TRANSFORM, &attr_elem);
@@ -248,7 +248,7 @@ ccl_device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *st
if(space == NODE_NORMAL_MAP_TANGENT) {
/* tangent space */
- if(sd->object == ~0) {
+ if(sd->object == OBJECT_NONE) {
stack_store_float3(stack, normal_offset, make_float3(0.0f, 0.0f, 0.0f));
return;
}
diff --git a/intern/cycles/kernel/svm/svm_vector_transform.h b/intern/cycles/kernel/svm/svm_vector_transform.h
index 1e3fc2fa03b..890a9ddda69 100644
--- a/intern/cycles/kernel/svm/svm_vector_transform.h
+++ b/intern/cycles/kernel/svm/svm_vector_transform.h
@@ -33,7 +33,7 @@ ccl_device void svm_node_vector_transform(KernelGlobals *kg, ShaderData *sd, flo
NodeVectorTransformConvertSpace to = (NodeVectorTransformConvertSpace)ito;
Transform tfm;
- bool is_object = (sd->object != ~0);
+ bool is_object = (sd->object != OBJECT_NONE);
bool is_direction = (type == NODE_VECTOR_TRANSFORM_TYPE_VECTOR || type == NODE_VECTOR_TRANSFORM_TYPE_NORMAL);
/* From world */
diff --git a/intern/cycles/kernel/svm/svm_wireframe.h b/intern/cycles/kernel/svm/svm_wireframe.h
index 98630803efe..5802b9d7188 100644
--- a/intern/cycles/kernel/svm/svm_wireframe.h
+++ b/intern/cycles/kernel/svm/svm_wireframe.h
@@ -45,9 +45,9 @@ ccl_device void svm_node_wireframe(KernelGlobals *kg, ShaderData *sd, float *sta
/* Calculate wireframe */
#ifdef __HAIR__
- if (sd->prim != ~0 && sd->type & PRIMITIVE_ALL_TRIANGLE) {
+ if (sd->prim != PRIM_NONE && sd->type & PRIMITIVE_ALL_TRIANGLE) {
#else
- if (sd->prim != ~0) {
+ if (sd->prim != PRIM_NONE) {
#endif
float3 Co[3];
float pixelwidth = 1.0f;
diff --git a/intern/cycles/render/background.cpp b/intern/cycles/render/background.cpp
index c9c66dad3fe..a877c52fbed 100644
--- a/intern/cycles/render/background.cpp
+++ b/intern/cycles/render/background.cpp
@@ -35,7 +35,7 @@ Background::Background()
use = true;
- visibility = ~0;
+ visibility = PATH_RAY_ALL_VISIBILITY;
shader = 0;
transparent = false;
@@ -70,7 +70,7 @@ void Background::device_update(Device *device, DeviceScene *dscene, Scene *scene
if(scene->shaders[shader]->has_volume)
kbackground->volume_shader = kbackground->surface_shader;
else
- kbackground->volume_shader = SHADER_NO_ID;
+ kbackground->volume_shader = SHADER_NONE;
if(!(visibility & PATH_RAY_DIFFUSE))
kbackground->surface_shader |= SHADER_EXCLUDE_DIFFUSE;
diff --git a/intern/cycles/render/mesh_displace.cpp b/intern/cycles/render/mesh_displace.cpp
index 2fd8a978511..09d3ce6a588 100644
--- a/intern/cycles/render/mesh_displace.cpp
+++ b/intern/cycles/render/mesh_displace.cpp
@@ -44,7 +44,7 @@ bool MeshManager::displace(Device *device, DeviceScene *dscene, Scene *scene, Me
progress.set_status("Updating Mesh", msg);
/* find object index. todo: is arbitrary */
- size_t object_index = ~0;
+ size_t object_index = OBJECT_NONE;
for(size_t i = 0; i < scene->objects.size(); i++) {
if(scene->objects[i]->mesh == mesh) {