Blender V5.0
node_shader_util.cc File Reference
#include <optional>
#include "DNA_node_types.h"
#include "DNA_space_types.h"
#include "BLI_math_vector.h"
#include "BLI_string.h"
#include "BKE_context.hh"
#include "BKE_node_runtime.hh"
#include "IMB_colormanagement.hh"
#include "node_shader_util.hh"
#include "NOD_socket_search_link.hh"
#include "RE_engine.h"
#include "node_exec.hh"

Go to the source code of this file.

Namespaces

namespace  blender
namespace  blender::bke

Functions

bool sh_node_poll_default (const blender::bke::bNodeType *, const bNodeTree *ntree, const char **r_disabled_hint)
static bool sh_geo_poll_default (const blender::bke::bNodeType *, const bNodeTree *ntree, const char **r_disabled_hint)
static bool common_poll_default (const blender::bke::bNodeType *, const bNodeTree *ntree, const char **r_disabled_hint)
void sh_node_type_base (blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
void sh_geo_node_type_base (blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
void common_node_type_base (blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
bool line_style_shader_nodes_poll (const bContext *C)
bool world_shader_nodes_poll (const bContext *C)
bool object_shader_nodes_poll (const bContext *C)
bool object_cycles_shader_nodes_poll (const bContext *C)
bool object_eevee_shader_nodes_poll (const bContext *C)
static void nodestack_get_vec (float *in, short type_in, bNodeStack *ns)
void node_gpu_stack_from_data (GPUNodeStack *gs, int type, bNodeStack *ns)
void node_data_from_gpu_stack (bNodeStack *ns, GPUNodeStack *gs)
static void gpu_stack_from_data_list (GPUNodeStack *gs, ListBase *sockets, bNodeStack **ns)
static void data_from_gpu_stack_list (ListBase *sockets, bNodeStack **ns, GPUNodeStack *gs)
static bNodenode_get_active (bNodeTree *ntree, int sub_activity)
void ntreeExecGPUNodes (bNodeTreeExec *exec, GPUMaterial *mat, bNode *output_node, const int *depth_level)
void node_shader_gpu_bump_tex_coord (GPUMaterial *mat, bNode *, GPUNodeLink **link)
void node_shader_gpu_default_tex_coord (GPUMaterial *mat, bNode *node, GPUNodeLink **link)
void node_shader_gpu_tex_mapping (GPUMaterial *mat, bNode *node, GPUNodeStack *in, GPUNodeStack *)
void get_XYZ_to_RGB_for_gpu (XYZ_to_RGB *data)
bool node_socket_not_zero (const GPUNodeStack &socket)
bool node_socket_not_white (const GPUNodeStack &socket)
bool node_socket_not_black (const GPUNodeStack &socket)
Generic API, Nodes
bNodeblender::bke::node_get_active_texture (bNodeTree &ntree)
Node Tree
bNodeblender::bke::node_get_active_paint_canvas (bNodeTree &ntree)

Function Documentation

◆ common_node_type_base()

◆ common_poll_default()

bool common_poll_default ( const blender::bke::bNodeType * ,
const bNodeTree * ntree,
const char ** r_disabled_hint )
static

Definition at line 52 of file node_shader_util.cc.

References bNodeTree::idname, RPT_, and STR_ELEM.

Referenced by common_node_type_base().

◆ data_from_gpu_stack_list()

void data_from_gpu_stack_list ( ListBase * sockets,
bNodeStack ** ns,
GPUNodeStack * gs )
static

◆ get_XYZ_to_RGB_for_gpu()

void get_XYZ_to_RGB_for_gpu ( XYZ_to_RGB * data)

◆ gpu_stack_from_data_list()

void gpu_stack_from_data_list ( GPUNodeStack * gs,
ListBase * sockets,
bNodeStack ** ns )
static

◆ line_style_shader_nodes_poll()

bool line_style_shader_nodes_poll ( const bContext * C)

◆ node_data_from_gpu_stack()

◆ node_get_active()

bNode * node_get_active ( bNodeTree * ntree,
int sub_activity )
static

◆ node_gpu_stack_from_data()

◆ node_shader_gpu_bump_tex_coord()

◆ node_shader_gpu_default_tex_coord()

◆ node_shader_gpu_tex_mapping()

◆ node_socket_not_black()

◆ node_socket_not_white()

◆ node_socket_not_zero()

◆ nodestack_get_vec()

void nodestack_get_vec ( float * in,
short type_in,
bNodeStack * ns )
static

◆ ntreeExecGPUNodes()

◆ object_cycles_shader_nodes_poll()

◆ object_eevee_shader_nodes_poll()

bool object_eevee_shader_nodes_poll ( const bContext * C)

◆ object_shader_nodes_poll()

◆ sh_geo_node_type_base()

◆ sh_geo_poll_default()

bool sh_geo_poll_default ( const blender::bke::bNodeType * ,
const bNodeTree * ntree,
const char ** r_disabled_hint )
static

Definition at line 41 of file node_shader_util.cc.

References bNodeTree::idname, RPT_, and STR_ELEM.

Referenced by sh_geo_node_type_base().

◆ sh_node_poll_default()

bool sh_node_poll_default ( const blender::bke::bNodeType * ntype,
const bNodeTree * ntree,
const char ** r_disabled_hint )

◆ sh_node_type_base()

void sh_node_type_base ( blender::bke::bNodeType * ntype,
std::string idname,
const std::optional< int16_t > legacy_type )

Definition at line 63 of file node_shader_util.cc.

References blender::bke::bNodeType::gather_link_search_ops, blender::bke::bNodeType::insert_link, node_insert_link_default(), blender::bke::node_type_base(), blender::bke::bNodeType::poll, blender::nodes::search_link_ops_for_basic_node(), and sh_node_poll_default().

Referenced by common_node_type_base(), register_node_type_sh_add_shader(), register_node_type_sh_ambient_occlusion(), register_node_type_sh_attribute(), register_node_type_sh_background(), register_node_type_sh_bevel(), register_node_type_sh_brightcontrast(), register_node_type_sh_bsdf_diffuse(), register_node_type_sh_bsdf_glass(), register_node_type_sh_bsdf_glossy(), register_node_type_sh_bsdf_hair(), register_node_type_sh_bsdf_hair_principled(), register_node_type_sh_bsdf_metallic(), register_node_type_sh_bsdf_principled(), register_node_type_sh_bsdf_ray_portal(), register_node_type_sh_bsdf_refraction(), register_node_type_sh_bsdf_sheen(), register_node_type_sh_bsdf_toon(), register_node_type_sh_bsdf_translucent(), register_node_type_sh_bsdf_transparent(), register_node_type_sh_bump(), register_node_type_sh_camera(), register_node_type_sh_combcolor(), register_node_type_sh_displacement(), register_node_type_sh_eevee_specular(), register_node_type_sh_emission(), register_node_type_sh_fresnel(), register_node_type_sh_geometry(), register_node_type_sh_hair_info(), register_node_type_sh_holdout(), register_node_type_sh_hue_sat(), register_node_type_sh_invert(), register_node_type_sh_layer_weight(), register_node_type_sh_light_falloff(), register_node_type_sh_light_path(), register_node_type_sh_mapping(), register_node_type_sh_mix_shader(), register_node_type_sh_normal(), register_node_type_sh_normal_map(), register_node_type_sh_object_info(), register_node_type_sh_output_aov(), register_node_type_sh_output_light(), register_node_type_sh_output_linestyle(), register_node_type_sh_output_material(), register_node_type_sh_output_world(), register_node_type_sh_particle_info(), register_node_type_sh_point_info(), register_node_type_sh_rgb(), register_node_type_sh_rgbtobw(), register_node_type_sh_script(), register_node_type_sh_sepcolor(), register_node_type_sh_shadertorgb(), register_node_type_sh_squeeze(), register_node_type_sh_subsurface_scattering(), register_node_type_sh_tangent(), register_node_type_sh_tex_coord(), register_node_type_sh_tex_environment(), register_node_type_sh_tex_ies(), register_node_type_sh_tex_image(), register_node_type_sh_tex_sky(), register_node_type_sh_uvalongstroke(), register_node_type_sh_uvmap(), register_node_type_sh_vect_transform(), register_node_type_sh_vector_displacement(), register_node_type_sh_vertex_color(), register_node_type_sh_volume_absorption(), register_node_type_sh_volume_coefficients(), register_node_type_sh_volume_info(), register_node_type_sh_volume_principled(), register_node_type_sh_volume_scatter(), register_node_type_sh_wavelength(), and register_node_type_sh_wireframe().

◆ world_shader_nodes_poll()

bool world_shader_nodes_poll ( const bContext * C)