Changeset View
Changeset View
Standalone View
Standalone View
intern/cycles/kernel/svm/svm_vertex_color.h
| Show All 10 Lines | |||||
| * distributed under the License is distributed on an "AS IS" BASIS, | * distributed under the License is distributed on an "AS IS" BASIS, | ||||
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| * 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 | ||||
| ccl_device_noinline void svm_node_vertex_color(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_vertex_color(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint layer_id, | uint layer_id, | ||||
| uint color_offset, | uint color_offset, | ||||
| uint alpha_offset) | uint alpha_offset) | ||||
| { | { | ||||
| AttributeDescriptor descriptor = find_attribute(kg, sd, layer_id); | AttributeDescriptor descriptor = find_attribute(kg, sd, layer_id); | ||||
| if (descriptor.offset != ATTR_STD_NOT_FOUND) { | if (descriptor.offset != ATTR_STD_NOT_FOUND) { | ||||
| float4 vertex_color = primitive_surface_attribute_float4(kg, sd, descriptor, NULL, NULL); | float4 vertex_color = primitive_surface_attribute_float4(kg, sd, descriptor, NULL, NULL); | ||||
| stack_store_float3(stack, color_offset, float4_to_float3(vertex_color)); | stack_store_float3(stack, color_offset, float4_to_float3(vertex_color)); | ||||
| stack_store_float(stack, alpha_offset, vertex_color.w); | stack_store_float(stack, alpha_offset, vertex_color.w); | ||||
| } | } | ||||
| else { | else { | ||||
| stack_store_float3(stack, color_offset, make_float3(0.0f, 0.0f, 0.0f)); | stack_store_float3(stack, color_offset, make_float3(0.0f, 0.0f, 0.0f)); | ||||
| stack_store_float(stack, alpha_offset, 0.0f); | stack_store_float(stack, alpha_offset, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| ccl_device_noinline void svm_node_vertex_color_bump_dx(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_vertex_color_bump_dx(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint layer_id, | uint layer_id, | ||||
| uint color_offset, | uint color_offset, | ||||
| uint alpha_offset) | uint alpha_offset) | ||||
| { | { | ||||
| AttributeDescriptor descriptor = find_attribute(kg, sd, layer_id); | AttributeDescriptor descriptor = find_attribute(kg, sd, layer_id); | ||||
| if (descriptor.offset != ATTR_STD_NOT_FOUND) { | if (descriptor.offset != ATTR_STD_NOT_FOUND) { | ||||
| float4 dx; | float4 dx; | ||||
| float4 vertex_color = primitive_surface_attribute_float4(kg, sd, descriptor, &dx, NULL); | float4 vertex_color = primitive_surface_attribute_float4(kg, sd, descriptor, &dx, NULL); | ||||
| vertex_color += dx; | vertex_color += dx; | ||||
| stack_store_float3(stack, color_offset, float4_to_float3(vertex_color)); | stack_store_float3(stack, color_offset, float4_to_float3(vertex_color)); | ||||
| stack_store_float(stack, alpha_offset, vertex_color.w); | stack_store_float(stack, alpha_offset, vertex_color.w); | ||||
| } | } | ||||
| else { | else { | ||||
| stack_store_float3(stack, color_offset, make_float3(0.0f, 0.0f, 0.0f)); | stack_store_float3(stack, color_offset, make_float3(0.0f, 0.0f, 0.0f)); | ||||
| stack_store_float(stack, alpha_offset, 0.0f); | stack_store_float(stack, alpha_offset, 0.0f); | ||||
| } | } | ||||
| } | } | ||||
| ccl_device_noinline void svm_node_vertex_color_bump_dy(ccl_global const KernelGlobals *kg, | ccl_device_noinline void svm_node_vertex_color_bump_dy(KernelGlobals kg, | ||||
| ccl_private ShaderData *sd, | ccl_private ShaderData *sd, | ||||
| ccl_private float *stack, | ccl_private float *stack, | ||||
| uint layer_id, | uint layer_id, | ||||
| uint color_offset, | uint color_offset, | ||||
| uint alpha_offset) | uint alpha_offset) | ||||
| { | { | ||||
| AttributeDescriptor descriptor = find_attribute(kg, sd, layer_id); | AttributeDescriptor descriptor = find_attribute(kg, sd, layer_id); | ||||
| if (descriptor.offset != ATTR_STD_NOT_FOUND) { | if (descriptor.offset != ATTR_STD_NOT_FOUND) { | ||||
| Show All 13 Lines | |||||