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
67 lines
1.6 KiB
C++
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);
|
|
}
|