Blender V4.3
node_composite_map_range.cc
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2006 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#include "UI_interface.hh"
10#include "UI_resources.hh"
11
12#include "GPU_material.hh"
13
14#include "COM_shader_node.hh"
15
17
18/* **************** Map Range ******************** */
19
21
23{
24 b.add_input<decl::Float>("Value")
25 .default_value(1.0f)
26 .min(0.0f)
27 .max(1.0f)
29 b.add_input<decl::Float>("From Min")
30 .default_value(0.0f)
31 .min(-10000.0f)
32 .max(10000.0f)
34 b.add_input<decl::Float>("From Max")
35 .default_value(1.0f)
36 .min(-10000.0f)
37 .max(10000.0f)
39 b.add_input<decl::Float>("To Min")
40 .default_value(0.0f)
41 .min(-10000.0f)
42 .max(10000.0f)
44 b.add_input<decl::Float>("To Max")
45 .default_value(1.0f)
46 .min(-10000.0f)
47 .max(10000.0f)
49 b.add_output<decl::Float>("Value");
50}
51
53{
55
56 col = uiLayoutColumn(layout, true);
57 uiItemR(col, ptr, "use_clamp", UI_ITEM_R_SPLIT_EMPTY_NAME, nullptr, ICON_NONE);
58}
59
60using namespace blender::realtime_compositor;
61
63 public:
65
66 void compile(GPUMaterial *material) override
67 {
70
71 const float should_clamp = get_should_clamp();
72
73 GPU_stack_link(material,
74 &bnode(),
75 "node_composite_map_range",
76 inputs,
77 outputs,
78 GPU_constant(&should_clamp));
79 }
80
82 {
83 return bnode().custom1;
84 }
85};
86
88{
89 return new MapRangeShaderNode(node);
90}
91
92} // namespace blender::nodes::node_composite_map_range_cc
93
95{
97
98 static blender::bke::bNodeType ntype;
99
100 cmp_node_type_base(&ntype, CMP_NODE_MAP_RANGE, "Map Range", NODE_CLASS_OP_VECTOR);
101 ntype.declare = file_ns::cmp_node_map_range_declare;
102 ntype.draw_buttons = file_ns::node_composit_buts_map_range;
103 ntype.get_compositor_shader_node = file_ns::get_compositor_shader_node;
104
106}
#define NODE_CLASS_OP_VECTOR
Definition BKE_node.hh:407
bool GPU_stack_link(GPUMaterial *mat, const bNode *node, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
GPUNodeLink * GPU_constant(const float *num)
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
local_group_size(16, 16) .push_constant(Type b
uint col
void node_register_type(bNodeType *ntype)
Definition node.cc:1708
static ShaderNode * get_compositor_shader_node(DNode node)
static void cmp_node_map_range_declare(NodeDeclarationBuilder &b)
static void node_composit_buts_map_range(uiLayout *layout, bContext *, PointerRNA *ptr)
void register_node_type_cmp_map_range()
void cmp_node_type_base(blender::bke::bNodeType *ntype, int type, const char *name, short nclass)
int16_t custom1
Defines a node type.
Definition BKE_node.hh:218
void(* draw_buttons)(uiLayout *, bContext *C, PointerRNA *ptr)
Definition BKE_node.hh:238
NodeDeclareFunction declare
Definition BKE_node.hh:347
NodeGetCompositorShaderNodeFunction get_compositor_shader_node
Definition BKE_node.hh:328
PointerRNA * ptr
Definition wm_files.cc:4126