[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60427] trunk/blender/intern/cycles/kernel /shaders/stdosl.h: Fix [#36863] OSL clamp, min and max functions have wrong signature when arguments are integers

Thomas Dinges blender at dingto.org
Mon Sep 30 01:24:45 CEST 2013


Revision: 60427
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60427
Author:   dingto
Date:     2013-09-29 23:24:45 +0000 (Sun, 29 Sep 2013)
Log Message:
-----------
Fix [#36863] OSL clamp, min and max functions have wrong signature when arguments are integers
* This was fixed in OSL 1.3.2, but we used an outdated stdosl.h.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/shaders/stdosl.h

Modified: trunk/blender/intern/cycles/kernel/shaders/stdosl.h
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/stdosl.h	2013-09-29 18:12:07 UTC (rev 60426)
+++ trunk/blender/intern/cycles/kernel/shaders/stdosl.h	2013-09-29 23:24:45 UTC (rev 60427)
@@ -134,12 +134,16 @@
 color  mod (color  a, float  b) { return a - b*floor(a/b); }
 float  mod (float  a, float  b) { return a - b*floor(a/b); }
 PERCOMP2 (min)
+int min (int a, int b) BUILTIN;
 PERCOMP2 (max)
+int max (int a, int b) BUILTIN;
 normal clamp (normal x, normal minval, normal maxval) { return max(min(x,maxval),minval); }
 vector clamp (vector x, vector minval, vector maxval) { return max(min(x,maxval),minval); }
 point  clamp (point x, point minval, point maxval) { return max(min(x,maxval),minval); }
 color  clamp (color x, color minval, color maxval) { return max(min(x,maxval),minval); }
 float  clamp (float x, float minval, float maxval) { return max(min(x,maxval),minval); }
+int    clamp (int x, int minval, int maxval) { return max(min(x,maxval),minval); }
+#if 0
 normal mix (normal x, normal y, normal a) { return x*(1-a) + y*a; }
 normal mix (normal x, normal y, float  a) { return x*(1-a) + y*a; }
 vector mix (vector x, vector y, vector a) { return x*(1-a) + y*a; }
@@ -149,6 +153,17 @@
 color  mix (color  x, color  y, color  a) { return x*(1-a) + y*a; }
 color  mix (color  x, color  y, float  a) { return x*(1-a) + y*a; }
 float  mix (float  x, float  y, float  a) { return x*(1-a) + y*a; }
+#else
+normal mix (normal x, normal y, normal a) BUILTIN;
+normal mix (normal x, normal y, float  a) BUILTIN;
+vector mix (vector x, vector y, vector a) BUILTIN;
+vector mix (vector x, vector y, float  a) BUILTIN;
+point  mix (point  x, point  y, point  a) BUILTIN;
+point  mix (point  x, point  y, float  a) BUILTIN;
+color  mix (color  x, color  y, color  a) BUILTIN;
+color  mix (color  x, color  y, float  a) BUILTIN;
+float  mix (float  x, float  y, float  a) BUILTIN;
+#endif
 int isnan (float x) BUILTIN;
 int isinf (float x) BUILTIN;
 int isfinite (float x) BUILTIN;
@@ -418,8 +433,8 @@
 int endswith (string s, string suffix) BUILTIN;
 string substr (string s, int start, int len) BUILTIN;
 string substr (string s, int start) { return substr (s, start, strlen(s)); }
-float strtof (string str) BUILTIN;
-int strtoi (string str) BUILTIN;
+float stof (string str) BUILTIN;
+int stoi (string str) BUILTIN;
 
 // Define concat in terms of shorter concat
 string concat (string a, string b, string c) {




More information about the Bf-blender-cvs mailing list