Files
test/source/blender/nodes/composite/nodes/node_composite_gamma.cc
Iliya Katueshenock 75d17b1db5 Cleanup: Move BKE_node to namespace
Move all header file into namespace.
Unnecessary namespaces was removed from implementations file.
Part of forward declarations in header was moved in the top part
of file just to do not have a lot of separate namespaces.

Pull Request: https://projects.blender.org/blender/blender/pulls/121637
2024-05-13 16:07:12 +02:00

67 lines
1.6 KiB
C++

/* SPDX-FileCopyrightText: 2006 Blender Authors
*
* SPDX-License-Identifier: GPL-2.0-or-later */
/** \file
* \ingroup cmpnodes
*/
#include "GPU_material.hh"
#include "COM_shader_node.hh"
#include "node_composite_util.hh"
/* **************** Gamma Tools ******************** */
namespace blender::nodes::node_composite_gamma_cc {
static void cmp_node_gamma_declare(NodeDeclarationBuilder &b)
{
b.add_input<decl::Color>("Image")
.default_value({1.0f, 1.0f, 1.0f, 1.0f})
.compositor_domain_priority(0);
b.add_input<decl::Float>("Gamma")
.default_value(1.0f)
.min(0.001f)
.max(10.0f)
.subtype(PROP_UNSIGNED)
.compositor_domain_priority(1);
b.add_output<decl::Color>("Image");
}
using namespace blender::realtime_compositor;
class GammaShaderNode : public ShaderNode {
public:
using ShaderNode::ShaderNode;
void compile(GPUMaterial *material) override
{
GPUNodeStack *inputs = get_inputs_array();
GPUNodeStack *outputs = get_outputs_array();
GPU_stack_link(material, &bnode(), "node_composite_gamma", inputs, outputs);
}
};
static ShaderNode *get_compositor_shader_node(DNode node)
{
return new GammaShaderNode(node);
}
} // namespace blender::nodes::node_composite_gamma_cc
void register_node_type_cmp_gamma()
{
namespace file_ns = blender::nodes::node_composite_gamma_cc;
static blender::bke::bNodeType ntype;
cmp_node_type_base(&ntype, CMP_NODE_GAMMA, "Gamma", NODE_CLASS_OP_COLOR);
ntype.declare = file_ns::cmp_node_gamma_declare;
ntype.get_compositor_shader_node = file_ns::get_compositor_shader_node;
blender::bke::nodeRegisterType(&ntype);
}