Blender  V3.3
kernel/util/color.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 
6 #include "util/color.h"
7 
9 
11 {
12  return make_float3(dot(float4_to_float3(kernel_data.film.xyz_to_r), xyz),
13  dot(float4_to_float3(kernel_data.film.xyz_to_g), xyz),
14  dot(float4_to_float3(kernel_data.film.xyz_to_b), xyz));
15 }
16 
18 {
19  return max(xyz_to_rgb(kg, xyz), zero_float3());
20 }
21 
23 {
24  return (kernel_data.film.is_rec709) ?
25  rec709 :
26  make_float3(dot(float4_to_float3(kernel_data.film.rec709_to_r), rec709),
27  dot(float4_to_float3(kernel_data.film.rec709_to_g), rec709),
28  dot(float4_to_float3(kernel_data.film.rec709_to_b), rec709));
29 }
30 
32 {
33  return dot(c, float4_to_float3(kernel_data.film.rgb_to_y));
34 }
35 
#define ccl_device
Definition: cuda/compat.h:32
#define CCL_NAMESPACE_END
Definition: cuda/compat.h:9
#define kernel_data
const KernelGlobalsCPU *ccl_restrict KernelGlobals
ccl_device float3 rec709_to_rgb(KernelGlobals kg, float3 rec709)
ccl_device float linear_rgb_to_gray(KernelGlobals kg, float3 c)
ccl_device float3 xyz_to_rgb_clamped(KernelGlobals kg, float3 xyz)
CCL_NAMESPACE_BEGIN ccl_device float3 xyz_to_rgb(KernelGlobals kg, float3 xyz)
ccl_device_inline float3 zero_float3()
Definition: math_float3.h:80
#define make_float3(x, y, z)
Definition: metal/compat.h:204
static unsigned c
Definition: RandGen.cpp:83
T dot(const vec_base< T, Size > &a, const vec_base< T, Size > &b)
float max
ccl_device_inline float3 float4_to_float3(const float4 a)
Definition: util/math.h:500