29 .default_value({1.0f, 1.0f, 1.0f, 1.0f})
30 .compositor_domain_priority(0);
36 .compositor_domain_priority(1);
109 float spill_scale[3];
111 float limit_channels[2];
117 "node_composite_color_spill",
140 if (node_color_spill.
unspill) {
141 spill_scale[0] = node_color_spill.
uspillr;
142 spill_scale[1] = node_color_spill.
uspillg;
143 spill_scale[2] = node_color_spill.
uspillb;
147 spill_scale[0] = 0.0f;
148 spill_scale[1] = 0.0f;
149 spill_scale[2] = 0.0f;
157 return node_storage(
bnode()).limchan;
180 return node_storage(
bnode()).limscale;
198 ntype.
declare = file_ns::cmp_node_color_spill_declare;
199 ntype.
draw_buttons = file_ns::node_composit_buts_color_spill;
200 ntype.
initfunc = file_ns::node_composit_init_color_spill;
#define NODE_STORAGE_FUNCS(StorageT)
CMPNodeColorSpillLimitAlgorithm
@ CMP_NODE_COLOR_SPILL_LIMIT_ALGORITHM_AVERAGE
@ CMP_NODE_COLOR_SPILL_LIMIT_ALGORITHM_SINGLE
bool GPU_stack_link(GPUMaterial *mat, const bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
GPUNodeLink * GPU_constant(const float *num)
GPUNodeLink * GPU_uniform(const float *num)
void uiItemL(uiLayout *layout, const char *name, int icon)
uiLayout * uiLayoutRow(uiLayout *layout, bool align)
uiLayout * uiLayoutColumn(uiLayout *layout, 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 get_spill_scale(float spill_scale[3])
void compile(GPUMaterial *material) override
CMPNodeColorSpillLimitAlgorithm get_limit_algorithm()
void get_limit_channels(float limit_channels[2])
GPUNodeStack * get_inputs_array()
GPUNodeStack * get_outputs_array()
const bNode & bnode() const
local_group_size(16, 16) .push_constant(Type b
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)
static ShaderNode * get_compositor_shader_node(DNode node)
static void node_composit_init_color_spill(bNodeTree *, bNode *node)
static void node_composit_buts_color_spill(uiLayout *layout, bContext *, PointerRNA *ptr)
static void cmp_node_color_spill_declare(NodeDeclarationBuilder &b)
void register_node_type_cmp_color_spill()
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)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
void(* initfunc)(bNodeTree *ntree, bNode *node)
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
NodeDeclareFunction declare
NodeGetCompositorShaderNodeFunction get_compositor_shader_node