Cycles:
authorThomas Dinges <blender@dingto.org>
Sun, 9 Jun 2013 15:09:15 +0000 (15:09 +0000)
committerThomas Dinges <blender@dingto.org>
Sun, 9 Jun 2013 15:09:15 +0000 (15:09 +0000)
* Use float_to_int() functions in a few more places.

intern/cycles/kernel/closure/bsdf_diffuse_ramp.h
intern/cycles/kernel/closure/bsdf_phong_ramp.h
intern/cycles/kernel/svm/svm_convert.h
intern/cycles/kernel/svm/svm_image.h

index 8a09979806a43536883afddace61692689a21923..579145bdd80b4568df8b1dfdc0186dc848f62720 100644 (file)
@@ -40,7 +40,7 @@ __device float3 bsdf_diffuse_ramp_get_color(const ShaderClosure *sc, const float
        int MAXCOLORS = 8;
        
        float npos = pos * (float)(MAXCOLORS - 1);
-       int ipos = (int)npos;
+       int ipos = float_to_int(npos);
        if (ipos >= (MAXCOLORS - 1))
                return colors[MAXCOLORS - 1];
        float offset = npos - (float)ipos;
index e518f3675c8e7f973683b209240ad6c1221e4796..b51d41486c7f89451d3ecd72ebf7fe6db4e9cdaa 100644 (file)
@@ -40,7 +40,7 @@ __device float3 bsdf_phong_ramp_get_color(const ShaderClosure *sc, const float3
        int MAXCOLORS = 8;
        
        float npos = pos * (float)(MAXCOLORS - 1);
-       int ipos = (int)npos;
+       int ipos = float_to_int(npos);
        if (ipos >= (MAXCOLORS - 1))
                return colors[MAXCOLORS - 1];
        float offset = npos - (float)ipos;
index 0050813e2c04262c7af8df8cc91a190abdbe206b..450344c79ff35388fbb1f578e8a2cca0e7d576b1 100644 (file)
@@ -25,7 +25,7 @@ __device void svm_node_convert(ShaderData *sd, float *stack, uint type, uint fro
        switch(type) {
                case NODE_CONVERT_FI: {
                        float f = stack_load_float(stack, from);
-                       stack_store_int(stack, to, (int)f);
+                       stack_store_int(stack, to, float_to_int(f));
                        break;
                }
                case NODE_CONVERT_FV: {
index c7551a7263879e09856a2431f937c6eedab3c4bc..57adaa863f111a859ef16482c664b30b233ea3eb 100644 (file)
@@ -45,7 +45,7 @@ __device_inline int svm_image_texture_wrap_clamp(int x, int width)
 
 __device_inline float svm_image_texture_frac(float x, int *ix)
 {
-       int i = (int)x - ((x < 0.0f)? 1: 0);
+       int i = float_to_int(x) - ((x < 0.0f)? 1: 0);
        *ix = i;
        return x - (float)i;
 }