Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_geometry.h
| Show All 12 Lines | |||||
| * See the License for the specific language governing permissions and | * See the License for the specific language governing permissions and | ||||
| * limitations under the License. | * limitations under the License. | ||||
| */ | */ | ||||
| CCL_NAMESPACE_BEGIN | CCL_NAMESPACE_BEGIN | ||||
| /* Geometry Node */ | /* Geometry Node */ | ||||
| ccl_device_noinline void svm_node_geometry(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_geometry(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint type, | uint type, | ||||
| uint out_offset) | uint out_offset) | ||||
| { | { | ||||
| float3 data; | float3 data; | ||||
| switch (type) { | switch (type) { | ||||
| Show All 19 Lines | case NODE_GEOM_uv: | ||||
| break; | break; | ||||
| default: | default: | ||||
| data = make_float3(0.0f, 0.0f, 0.0f); | data = make_float3(0.0f, 0.0f, 0.0f); | ||||
| } | } | ||||
| stack_store_float3(stack, out_offset, data); | stack_store_float3(stack, out_offset, data); | ||||
| } | } | ||||
| ccl_device_noinline void svm_node_geometry_bump_dx(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_geometry_bump_dx(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint type, | uint type, | ||||
| uint out_offset) | uint out_offset) | ||||
| { | { | ||||
| #ifdef __RAY_DIFFERENTIALS__ | #ifdef __RAY_DIFFERENTIALS__ | ||||
| float3 data; | float3 data; | ||||
| Show All 10 Lines | #ifdef __RAY_DIFFERENTIALS__ | ||||
| } | } | ||||
| stack_store_float3(stack, out_offset, data); | stack_store_float3(stack, out_offset, data); | ||||
| #else | #else | ||||
| svm_node_geometry(kg, sd, stack, type, out_offset); | svm_node_geometry(kg, sd, stack, type, out_offset); | ||||
| #endif | #endif | ||||
| } | } | ||||
| ccl_device_noinline void svm_node_geometry_bump_dy(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_geometry_bump_dy(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint type, | uint type, | ||||
| uint out_offset) | uint out_offset) | ||||
| { | { | ||||
| #ifdef __RAY_DIFFERENTIALS__ | #ifdef __RAY_DIFFERENTIALS__ | ||||
| float3 data; | float3 data; | ||||
| Show All 12 Lines | #ifdef __RAY_DIFFERENTIALS__ | ||||
| stack_store_float3(stack, out_offset, data); | stack_store_float3(stack, out_offset, data); | ||||
| #else | #else | ||||
| svm_node_geometry(kg, sd, stack, type, out_offset); | svm_node_geometry(kg, sd, stack, type, out_offset); | ||||
| #endif | #endif | ||||
| } | } | ||||
| /* Object Info */ | /* Object Info */ | ||||
| ccl_device_noinline void svm_node_object_info(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_object_info(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint type, | uint type, | ||||
| uint out_offset) | uint out_offset) | ||||
| { | { | ||||
| float data; | float data; | ||||
| switch (type) { | switch (type) { | ||||
| Show All 25 Lines | default: | ||||
| break; | break; | ||||
| } | } | ||||
| stack_store_float(stack, out_offset, data); | stack_store_float(stack, out_offset, data); | ||||
| } | } | ||||
| /* Particle Info */ | /* Particle Info */ | ||||
| ccl_device_noinline void svm_node_particle_info(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_particle_info(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint type, | uint type, | ||||
| uint out_offset) | uint out_offset) | ||||
| { | { | ||||
| switch (type) { | switch (type) { | ||||
| case NODE_INFO_PAR_INDEX: { | case NODE_INFO_PAR_INDEX: { | ||||
| int particle_id = object_particle_id(kg, sd->object); | int particle_id = object_particle_id(kg, sd->object); | ||||
| ▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | #endif | ||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| #ifdef __HAIR__ | #ifdef __HAIR__ | ||||
| /* Hair Info */ | /* Hair Info */ | ||||
| ccl_device_noinline void svm_node_hair_info(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_hair_info(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint type, | uint type, | ||||
| uint out_offset) | uint out_offset) | ||||
| { | { | ||||
| float data; | float data; | ||||
| float3 data3; | float3 data3; | ||||
| Show All 34 Lines | |||||