35 for (
int c = 0; c < 3; c++) {
46 for (
int c = 0; c < 3; c++) {
48 n->
lift[c] = (d != 0.0f ? n->
slope[c] + 2.0f * n->
offset[c] / d : 0.0f);
65 .compositor_domain_priority(1);
67 .default_value({1.0f, 1.0f, 1.0f, 1.0f})
68 .compositor_domain_priority(0);
153 "output_temperature",
217 "node_composite_color_balance_lgg",
227 "node_composite_color_balance_asc_cdl",
243 float3x3 matrix = xyz_to_scene * adaption * scene_to_xyz;
247 "node_composite_color_balance_whitepoint",
274 ntype.
declare = file_ns::cmp_node_colorbalance_declare;
275 ntype.
draw_buttons = file_ns::node_composit_buts_colorbalance;
278 ntype.
initfunc = file_ns::node_composit_init_colorbalance;
#define NODE_STORAGE_FUNCS(StorageT)
#define NODE_CLASS_OP_COLOR
CMPNodeColorBalanceMethod
@ CMP_NODE_COLOR_BALANCE_LGG
@ CMP_NODE_COLOR_BALANCE_ASC_CDL
@ CMP_NODE_COLOR_BALANCE_WHITEPOINT
static void split(const char *text, const char *seps, char ***str, int *count)
bool GPU_stack_link(GPUMaterial *mat, const bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
GPUNodeLink * GPU_uniform(const float *num)
blender::float3x3 IMB_colormanagement_get_scene_linear_to_xyz()
blender::float3x3 IMB_colormanagement_get_xyz_to_scene_linear()
void uiItemL(uiLayout *layout, const char *name, int icon)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
void uiTemplateCryptoPicker(uiLayout *layout, PointerRNA *ptr, const char *propname, int icon)
void uiTemplateColorPicker(uiLayout *layout, PointerRNA *ptr, const char *propname, bool value_slider, bool lock, bool lock_luminosity, bool cubic)
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
uiLayout * uiLayoutSplit(uiLayout *layout, float percentage, bool align)
void uiItemR(uiLayout *layout, PointerRNA *ptr, const char *propname, eUI_Item_Flag flag, const char *name, int icon)
@ UI_ITEM_R_SPLIT_EMPTY_NAME
void compile(GPUMaterial *material) override
CMPNodeColorBalanceMethod get_color_balance_method()
GPUNodeStack * get_inputs_array()
GPUNodeStack * get_outputs_array()
const bNode & bnode() const
local_group_size(16, 16) .push_constant(Type b
void node_type_size(bNodeType *ntype, int width, int minwidth, int maxwidth)
void node_type_storage(bNodeType *ntype, const char *storagename, void(*freefunc)(bNode *node), void(*copyfunc)(bNodeTree *dest_ntree, bNode *dest_node, const bNode *src_node))
void node_register_type(bNodeType *ntype)
float3 whitepoint_from_temp_tint(float temperature, float tint)
float3x3 chromatic_adaption_matrix(const float3 &from_XYZ, const float3 &to_XYZ)
static void cmp_node_colorbalance_declare(NodeDeclarationBuilder &b)
static void node_composit_buts_colorbalance_ex(uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_composit_buts_colorbalance(uiLayout *layout, bContext *, PointerRNA *ptr)
static void node_composit_init_colorbalance(bNodeTree *, bNode *node)
static ShaderNode * get_compositor_shader_node(DNode node)
void ntreeCompositColorBalanceSyncFromLGG(bNodeTree *, bNode *node)
void ntreeCompositColorBalanceSyncFromCDL(bNodeTree *, bNode *node)
void register_node_type_cmp_colorbalance()
void cmp_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
void node_free_standard_storage(bNode *node)
void node_copy_standard_storage(bNodeTree *, bNode *dest_node, const bNode *src_node)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void(* initfunc)(bNodeTree *ntree, bNode *node)
void(* draw_buttons_ex)(uiLayout *, bContext *C, PointerRNA *ptr)
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
NodeDeclareFunction declare
NodeGetCompositorShaderNodeFunction get_compositor_shader_node