Cycles: change __device and similar qualifiers to ccl_device in kernel code.
[blender.git] / intern / cycles / kernel / svm / svm_wave.h
index 8f2131156c404115914c4c2380f3931fb6f1d9f4..3749135f8c7f8acd799a3ccb0b1928401b95c0b5 100644 (file)
@@ -1,45 +1,41 @@
 /*
- * Copyright 2011, Blender Foundation.
+ * Copyright 2011-2013 Blender Foundation
  *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
  */
 
 CCL_NAMESPACE_BEGIN
 
-/* Marble */
+/* Wave */
 
-__device_noinline float svm_wave(NodeWoodType type, float3 p, float scale, float detail, float distortion, float dscale)
+ccl_device_noinline float svm_wave(NodeWaveType type, float3 p, float scale, float detail, float distortion, float dscale)
 {
-       float w, n;
+       float n;
 
        p *= scale;
 
        if(type == NODE_WAVE_BANDS)
-               n= (p.x + p.x + p.z)*10.0f;
-       else /* if(type == NODE_WAVE_RINGS) */
-               n= len(p)*20.0f;
+               n = (p.x + p.y + p.z) * 10.0f;
+       else /* NODE_WAVE_RINGS */
+               n = len(p) * 20.0f;
        
        if(distortion != 0.0f)
                n += distortion * noise_turbulence(p*dscale, NODE_NOISE_PERLIN, detail, 0);
 
-       w = noise_wave(NODE_WAVE_SINE, n);
-
-       return w;
+       return 0.5f + 0.5f * sinf(n);
 }
 
-__device void svm_node_tex_wave(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset)
+ccl_device void svm_node_tex_wave(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset)
 {
        uint4 node2 = read_node(kg, offset);
 
@@ -55,7 +51,7 @@ __device void svm_node_tex_wave(KernelGlobals *kg, ShaderData *sd, float *stack,
        float distortion = stack_load_float_default(stack, distortion_offset, node2.z);
        float dscale = stack_load_float_default(stack, dscale_offset, node2.w);
 
-       float f = svm_wave((NodeWoodType)type, co, scale, detail, distortion, dscale);
+       float f = svm_wave((NodeWaveType)type, co, scale, detail, distortion, dscale);
 
        if(stack_valid(fac_offset)) stack_store_float(stack, fac_offset, f);
        if(stack_valid(color_offset)) stack_store_float3(stack, color_offset, make_float3(f, f, f));