Blender  V3.3
value.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: Apache-2.0
2  * Copyright 2011-2022 Blender Foundation */
3 
4 #pragma once
5 
7 
8 /* Value Nodes */
9 
12  ccl_private float *stack,
13  uint ivalue,
14  uint out_offset)
15 {
16  stack_store_float(stack, out_offset, __uint_as_float(ivalue));
17 }
18 
21  ccl_private float *stack,
22  uint out_offset,
23  int offset)
24 {
25  /* read extra data */
26  uint4 node1 = read_node(kg, &offset);
27  float3 p = make_float3(
28  __uint_as_float(node1.y), __uint_as_float(node1.z), __uint_as_float(node1.w));
29 
30  stack_store_float3(stack, out_offset, p);
31  return offset;
32 }
33 
unsigned int uint
Definition: BLI_sys_types.h:67
#define ccl_device
Definition: cuda/compat.h:32
#define ccl_private
Definition: cuda/compat.h:48
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
const KernelGlobalsCPU *ccl_restrict KernelGlobals
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset
ccl_device_inline void stack_store_float3(ccl_private float *stack, uint a, float3 f)
ccl_device_inline uint4 read_node(KernelGlobals kg, ccl_private int *offset)
ccl_device_inline void stack_store_float(ccl_private float *stack, uint a, float f)
ShaderData
Definition: kernel/types.h:925
#define make_float3(x, y, z)
Definition: metal/compat.h:204
uint y
Definition: types_uint4.h:15
uint z
Definition: types_uint4.h:15
uint w
Definition: types_uint4.h:15
ccl_device_inline float __uint_as_float(uint i)
Definition: util/math.h:273
ccl_device int svm_node_value_v(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint out_offset, int offset)
Definition: value.h:19
CCL_NAMESPACE_BEGIN ccl_device void svm_node_value_f(KernelGlobals kg, ccl_private ShaderData *sd, ccl_private float *stack, uint ivalue, uint out_offset)
Definition: value.h:10