Blender  V3.3
Functions
gpu_node_graph.c File Reference
#include <stdio.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_node_types.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "GPU_texture.h"
#include "GPU_vertex_format.h"
#include "gpu_material_library.h"
#include "gpu_node_graph.h"

Go to the source code of this file.

Functions

static GPUNodeLinkgpu_node_link_create (void)
 
static void gpu_node_link_free (GPUNodeLink *link)
 
static GPUNodegpu_node_create (const char *name)
 
static void gpu_node_input_link (GPUNode *node, GPUNodeLink *link, const eGPUType type)
 
static const char * gpu_uniform_set_function_from_type (eNodeSocketDatatype type)
 
static GPUNodeLinkgpu_uniformbuffer_link (GPUMaterial *mat, bNode *node, GPUNodeStack *stack, const int index, const eNodeSocketInOut in_out)
 
static void gpu_node_input_socket (GPUMaterial *material, bNode *bnode, GPUNode *node, GPUNodeStack *sock, const int index)
 
static void gpu_node_output (GPUNode *node, const eGPUType type, GPUNodeLink **link)
 
static int uniform_attr_sort_cmp (const void *a, const void *b)
 
static unsigned int uniform_attr_list_hash (const void *key)
 
static bool uniform_attr_list_cmp (const void *a, const void *b)
 
struct GHashGPU_uniform_attr_list_hash_new (const char *info)
 
void GPU_uniform_attr_list_copy (GPUUniformAttrList *dest, GPUUniformAttrList *src)
 
void GPU_uniform_attr_list_free (GPUUniformAttrList *set)
 
void gpu_node_graph_finalize_uniform_attrs (GPUNodeGraph *graph)
 
static char attr_prefix_get (GPUMaterialAttribute *attr)
 
static void attr_input_name (GPUMaterialAttribute *attr)
 
static GPUMaterialAttributegpu_node_graph_add_attribute (GPUNodeGraph *graph, eCustomDataType type, const char *name, const bool is_default_color)
 
static GPUUniformAttrgpu_node_graph_add_uniform_attribute (GPUNodeGraph *graph, const char *name, bool use_dupli)
 
static GPUMaterialTexturegpu_node_graph_add_texture (GPUNodeGraph *graph, Image *ima, ImageUser *iuser, struct GPUTexture **colorband, GPUNodeLinkType link_type, eGPUSamplerState sampler_state)
 
GPUNodeLinkGPU_attribute (GPUMaterial *mat, const eCustomDataType type, const char *name)
 
GPUNodeLinkGPU_attribute_default_color (GPUMaterial *mat)
 
GPUNodeLinkGPU_attribute_with_default (GPUMaterial *mat, const eCustomDataType type, const char *name, eGPUDefaultValue default_value)
 
GPUNodeLinkGPU_uniform_attribute (GPUMaterial *mat, const char *name, bool use_dupli)
 
GPUNodeLinkGPU_constant (const float *num)
 
GPUNodeLinkGPU_uniform (const float *num)
 
GPUNodeLinkGPU_differentiate_float_function (const char *function_name)
 
GPUNodeLinkGPU_image (GPUMaterial *mat, Image *ima, ImageUser *iuser, eGPUSamplerState sampler_state)
 
GPUNodeLinkGPU_image_tiled (GPUMaterial *mat, Image *ima, ImageUser *iuser, eGPUSamplerState sampler_state)
 
GPUNodeLinkGPU_image_tiled_mapping (GPUMaterial *mat, Image *ima, ImageUser *iuser)
 
GPUNodeLinkGPU_color_band (GPUMaterial *mat, int size, float *pixels, float *row)
 
bool GPU_link (GPUMaterial *mat, const char *name,...)
 
static bool gpu_stack_link_v (GPUMaterial *material, bNode *bnode, const char *name, GPUNodeStack *in, GPUNodeStack *out, va_list params)
 
bool GPU_stack_link (GPUMaterial *material, bNode *bnode, const char *name, GPUNodeStack *in, GPUNodeStack *out,...)
 
GPUNodeLinkGPU_uniformbuf_link_out (GPUMaterial *mat, bNode *node, GPUNodeStack *stack, const int index)
 
static void gpu_inputs_free (ListBase *inputs)
 
static void gpu_node_free (GPUNode *node)
 
void gpu_node_graph_free_nodes (GPUNodeGraph *graph)
 
void gpu_node_graph_free (GPUNodeGraph *graph)
 
static void gpu_nodes_tag (GPUNodeLink *link, eGPUNodeTag tag)
 
void gpu_node_graph_prune_unused (GPUNodeGraph *graph)
 

Detailed Description

Intermediate node graph for generating GLSL shaders.

Definition in file gpu_node_graph.c.

Function Documentation

◆ attr_input_name()

static void attr_input_name ( GPUMaterialAttribute attr)
static

◆ attr_prefix_get()

static char attr_prefix_get ( GPUMaterialAttribute attr)
static

◆ GPU_attribute()

GPUNodeLink* GPU_attribute ( GPUMaterial mat,
const eCustomDataType  type,
const char *  name 
)

◆ GPU_attribute_default_color()

GPUNodeLink* GPU_attribute_default_color ( GPUMaterial mat)

Add a GPU attribute that refers to the default color attribute on a geometry. The name, type, and domain are unknown and do not depend on the material.

Definition at line 497 of file gpu_node_graph.c.

References GPUNodeLink::attr, CD_AUTO_FROM_NAME, GPU_constant(), gpu_material_node_graph(), GPU_MAX_CONSTANT_DATA, gpu_node_graph_add_attribute(), GPU_NODE_LINK_ATTR, gpu_node_link_create(), graph, GPUMaterialAttribute::is_default_color, GPUNodeLink::link_type, and NULL.

Referenced by blender::nodes::node_shader_vertex_color_cc::node_shader_gpu_vertex_color().

◆ GPU_attribute_with_default()

GPUNodeLink* GPU_attribute_with_default ( GPUMaterial mat,
const eCustomDataType  type,
const char *  name,
eGPUDefaultValue  default_value 
)

◆ GPU_color_band()

GPUNodeLink* GPU_color_band ( GPUMaterial mat,
int  size,
float pixels,
float row 
)

◆ GPU_constant()

GPUNodeLink* GPU_constant ( const float num)

Definition at line 541 of file gpu_node_graph.c.

References GPUNodeLink::data, GPU_NODE_LINK_CONSTANT, gpu_node_link_create(), and GPUNodeLink::link_type.

Referenced by GPU_attribute(), GPU_attribute_default_color(), gpu_node_input_socket(), blender::nodes::node_shader_bump_cc::gpu_shader_bump(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_vec(), blender::nodes::node_shader_map_range_cc::gpu_shader_map_range(), blender::nodes::node_shader_math_cc::gpu_shader_math(), blender::nodes::node_shader_mix_rgb_cc::gpu_shader_mix_rgb(), blender::nodes::node_shader_normal_map_cc::gpu_shader_normal_map(), blender::nodes::node_shader_color_ramp_cc::gpu_shader_valtorgb(), blender::nodes::node_shader_vector_transform_cc::gpu_shader_vect_transform(), blender::nodes::node_shader_vector_rotate_cc::gpu_shader_vector_rotate(), GPU_uniform_attribute(), blender::nodes::node_shader_ambient_occlusion_cc::node_shader_gpu_ambient_occlusion(), blender::nodes::node_shader_blackbody_cc::node_shader_gpu_blackbody(), blender::nodes::node_shader_bsdf_anisotropic_cc::node_shader_gpu_bsdf_anisotropic(), blender::nodes::node_shader_bsdf_glass_cc::node_shader_gpu_bsdf_glass(), blender::nodes::node_shader_bsdf_glossy_cc::node_shader_gpu_bsdf_glossy(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), blender::nodes::node_shader_eevee_specular_cc::node_shader_gpu_eevee_specular(), blender::nodes::node_shader_geometry_cc::node_shader_gpu_geometry(), blender::nodes::node_shader_hair_info_cc::node_shader_gpu_hair_info(), blender::nodes::node_shader_object_info_cc::node_shader_gpu_object_info(), blender::nodes::node_shader_output_aov_cc::node_shader_gpu_output_aov(), blender::nodes::node_shader_tex_brick_cc::node_shader_gpu_tex_brick(), blender::nodes::node_shader_tex_coord_cc::node_shader_gpu_tex_coord(), blender::nodes::node_shader_tex_gradient_cc::node_shader_gpu_tex_gradient(), blender::nodes::node_shader_tex_magic_cc::node_shader_gpu_tex_magic(), blender::nodes::node_shader_tex_voronoi_cc::node_shader_gpu_tex_voronoi(), blender::nodes::node_shader_tex_wave_cc::node_shader_gpu_tex_wave(), blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled(), and blender::nodes::node_shader_wavelength_cc::node_shader_gpu_wavelength().

◆ GPU_differentiate_float_function()

GPUNodeLink* GPU_differentiate_float_function ( const char *  function_name)

Create an implementation defined differential calculation of a float function. The given function should return a float. The result will be a vec2 containing dFdx and dFdy result of that function.

Definition at line 557 of file gpu_node_graph.c.

References GPUNodeLink::function_name, gpu_node_link_create(), GPU_NODE_LINK_DIFFERENTIATE_FLOAT_FN, and GPUNodeLink::link_type.

Referenced by blender::nodes::node_shader_bump_cc::gpu_shader_bump().

◆ GPU_image()

GPUNodeLink* GPU_image ( GPUMaterial mat,
Image ima,
ImageUser iuser,
eGPUSamplerState  sampler_state 
)

◆ GPU_image_tiled()

GPUNodeLink* GPU_image_tiled ( GPUMaterial mat,
Image ima,
ImageUser iuser,
eGPUSamplerState  sampler_state 
)

◆ GPU_image_tiled_mapping()

GPUNodeLink* GPU_image_tiled_mapping ( GPUMaterial mat,
Image ima,
ImageUser iuser 
)

◆ gpu_inputs_free()

static void gpu_inputs_free ( ListBase inputs)
static

◆ GPU_link()

bool GPU_link ( GPUMaterial mat,
const char *  name,
  ... 
)

Definition at line 616 of file gpu_node_graph.c.

References BLI_addtail(), FUNCTION_QUAL_OUT, gpu_material_library_use_function(), gpu_material_node_graph(), gpu_node_create(), gpu_node_input_link(), gpu_node_output(), graph, node, and params.

Referenced by blender::nodes::node_shader_volume_principled_cc::attribute_post_process(), GPU_material_split_sub_function(), blender::nodes::node_shader_bevel_cc::gpu_shader_bevel(), blender::nodes::node_shader_bump_cc::gpu_shader_bump(), blender::nodes::node_shader_displacement_cc::gpu_shader_displacement(), blender::nodes::node_shader_map_range_cc::gpu_shader_map_range(), blender::nodes::node_shader_math_cc::gpu_shader_math(), blender::nodes::node_shader_mix_rgb_cc::gpu_shader_mix_rgb(), blender::nodes::node_shader_normal_map_cc::gpu_shader_normal_map(), blender::nodes::node_shader_vector_transform_cc::gpu_shader_vect_transform(), gpu_uniformbuffer_link(), blender::nodes::node_shader_ambient_occlusion_cc::node_shader_gpu_ambient_occlusion(), blender::nodes::node_shader_attribute_cc::node_shader_gpu_attribute(), blender::nodes::node_shader_bsdf_anisotropic_cc::node_shader_gpu_bsdf_anisotropic(), blender::nodes::node_shader_bsdf_diffuse_cc::node_shader_gpu_bsdf_diffuse(), blender::nodes::node_shader_bsdf_glass_cc::node_shader_gpu_bsdf_glass(), blender::nodes::node_shader_bsdf_glossy_cc::node_shader_gpu_bsdf_glossy(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), blender::nodes::node_shader_bsdf_refraction_cc::node_shader_gpu_bsdf_refraction(), blender::nodes::node_shader_bsdf_toon_cc::node_shader_gpu_bsdf_toon(), blender::nodes::node_shader_bsdf_translucent_cc::node_shader_gpu_bsdf_translucent(), blender::nodes::node_shader_bsdf_velvet_cc::node_shader_gpu_bsdf_velvet(), node_shader_gpu_bump_tex_coord(), blender::nodes::node_shader_eevee_specular_cc::node_shader_gpu_eevee_specular(), blender::nodes::node_shader_fresnel_cc::node_shader_gpu_fresnel(), blender::nodes::node_shader_geometry_cc::node_shader_gpu_geometry(), blender::nodes::node_shader_layer_weight_cc::node_shader_gpu_layer_weight(), blender::nodes::node_shader_output_light_cc::node_shader_gpu_output_light(), blender::nodes::node_shader_output_material_cc::node_shader_gpu_output_material(), blender::nodes::node_shader_output_world_cc::node_shader_gpu_output_world(), blender::nodes::node_shader_subsurface_scattering_cc::node_shader_gpu_subsurface_scattering(), blender::nodes::node_shader_tangent_cc::node_shader_gpu_tangent(), blender::nodes::node_shader_tex_coord_cc::node_shader_gpu_tex_coord(), blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), node_shader_gpu_tex_mapping(), and blender::nodes::node_shader_volume_info_cc::node_shader_gpu_volume_info().

◆ gpu_node_create()

static GPUNode* gpu_node_create ( const char *  name)
static

Definition at line 56 of file gpu_node_graph.c.

References MEM_callocN, and node.

Referenced by GPU_link(), and gpu_stack_link_v().

◆ gpu_node_free()

static void gpu_node_free ( GPUNode node)
static

◆ gpu_node_graph_add_attribute()

static GPUMaterialAttribute* gpu_node_graph_add_attribute ( GPUNodeGraph graph,
eCustomDataType  type,
const char *  name,
const bool  is_default_color 
)
static

◆ gpu_node_graph_add_texture()

static GPUMaterialTexture* gpu_node_graph_add_texture ( GPUNodeGraph graph,
Image ima,
ImageUser iuser,
struct GPUTexture **  colorband,
GPUNodeLinkType  link_type,
eGPUSamplerState  sampler_state 
)
static

◆ gpu_node_graph_add_uniform_attribute()

static GPUUniformAttr* gpu_node_graph_add_uniform_attribute ( GPUNodeGraph graph,
const char *  name,
bool  use_dupli 
)
static

◆ gpu_node_graph_finalize_uniform_attrs()

void gpu_node_graph_finalize_uniform_attrs ( GPUNodeGraph graph)

◆ gpu_node_graph_free()

void gpu_node_graph_free ( GPUNodeGraph graph)

Free both node graph and requested attributes and textures.

Definition at line 802 of file gpu_node_graph.c.

References BLI_freelistN(), BLI_gset_free(), gpu_node_graph_free_nodes(), GPU_uniform_attr_list_free(), graph, and NULL.

Referenced by GPU_material_compile(), gpu_material_free_single(), and GPU_material_from_nodetree().

◆ gpu_node_graph_free_nodes()

void gpu_node_graph_free_nodes ( GPUNodeGraph graph)

Free intermediate node graph.

Definition at line 788 of file gpu_node_graph.c.

References BLI_pophead(), gpu_node_free(), graph, node, and NULL.

Referenced by GPU_material_compile(), GPU_material_from_nodetree(), and gpu_node_graph_free().

◆ gpu_node_graph_prune_unused()

void gpu_node_graph_prune_unused ( GPUNodeGraph graph)

◆ gpu_node_input_link()

static void gpu_node_input_link ( GPUNode node,
GPUNodeLink link,
const eGPUType  type 
)
static

◆ gpu_node_input_socket()

static void gpu_node_input_socket ( GPUMaterial material,
bNode bnode,
GPUNode node,
GPUNodeStack sock,
const int  index 
)
static

◆ gpu_node_link_create()

static GPUNodeLink* gpu_node_link_create ( void  )
static

◆ gpu_node_link_free()

static void gpu_node_link_free ( GPUNodeLink link)
static

Definition at line 38 of file gpu_node_graph.c.

References GPUOutput::link, MEM_freeN, NULL, GPUNodeLink::output, and GPUNodeLink::users.

Referenced by gpu_inputs_free(), and gpu_node_free().

◆ gpu_node_output()

static void gpu_node_output ( GPUNode node,
const eGPUType  type,
GPUNodeLink **  link 
)
static

◆ gpu_nodes_tag()

static void gpu_nodes_tag ( GPUNodeLink link,
eGPUNodeTag  tag 
)
static

Definition at line 820 of file gpu_node_graph.c.

References input, LISTBASE_FOREACH, node, GPUOutput::node, and GPUNodeLink::output.

Referenced by gpu_node_graph_prune_unused().

◆ GPU_stack_link()

bool GPU_stack_link ( GPUMaterial material,
bNode bnode,
const char *  name,
GPUNodeStack in,
GPUNodeStack out,
  ... 
)

Definition at line 723 of file gpu_node_graph.c.

References gpu_stack_link_v(), material, usdtokens::out(), and params.

Referenced by blender::nodes::node_shader_bevel_cc::gpu_shader_bevel(), blender::nodes::node_shader_brightness_cc::gpu_shader_brightcontrast(), blender::nodes::node_shader_bump_cc::gpu_shader_bump(), blender::nodes::node_shader_camera_cc::gpu_shader_camera(), blender::nodes::node_shader_clamp_cc::gpu_shader_clamp(), blender::nodes::node_shader_combine_color_cc::gpu_shader_combcolor(), blender::nodes::node_shader_sepcomb_hsv_cc::gpu_shader_combhsv(), blender::nodes::node_shader_sepcomb_rgb_cc::gpu_shader_combrgb(), blender::nodes::node_shader_sepcomb_xyz_cc::gpu_shader_combxyz(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::gpu_shader_curve_vec(), blender::nodes::node_shader_displacement_cc::gpu_shader_displacement(), blender::nodes::node_shader_hueSatVal_cc::gpu_shader_hue_sat(), blender::nodes::node_shader_invert_cc::gpu_shader_invert(), blender::nodes::node_shader_map_range_cc::gpu_shader_map_range(), blender::nodes::node_shader_mapping_cc::gpu_shader_mapping(), blender::nodes::node_shader_math_cc::gpu_shader_math(), blender::nodes::node_shader_mix_rgb_cc::gpu_shader_mix_rgb(), blender::nodes::node_shader_normal_cc::gpu_shader_normal(), blender::nodes::node_shader_particle_info_cc::gpu_shader_particle_info(), blender::nodes::node_shader_holdout_cc::gpu_shader_rgb(), blender::nodes::node_shader_rgb_cc::gpu_shader_rgb(), blender::nodes::node_shader_rgb_to_bw_cc::gpu_shader_rgbtobw(), blender::nodes::node_shader_separate_color_cc::gpu_shader_sepcolor(), blender::nodes::node_shader_sepcomb_hsv_cc::gpu_shader_sephsv(), blender::nodes::node_shader_sepcomb_rgb_cc::gpu_shader_seprgb(), blender::nodes::node_shader_sepcomb_xyz_cc::gpu_shader_sepxyz(), blender::nodes::node_shader_squeeze_cc::gpu_shader_squeeze(), blender::nodes::node_shader_tex_white_noise_cc::gpu_shader_tex_white_noise(), blender::nodes::node_shader_color_ramp_cc::gpu_shader_valtorgb(), blender::nodes::node_shader_value_cc::gpu_shader_value(), blender::nodes::node_shader_vector_displacement_cc::gpu_shader_vector_displacement(), blender::nodes::node_shader_vector_math_cc::gpu_shader_vector_math(), blender::nodes::node_shader_vector_rotate_cc::gpu_shader_vector_rotate(), blender::nodes::node_shader_add_shader_cc::node_shader_gpu_add_shader(), blender::nodes::node_shader_ambient_occlusion_cc::node_shader_gpu_ambient_occlusion(), blender::nodes::node_shader_attribute_cc::node_shader_gpu_attribute(), blender::nodes::node_shader_background_cc::node_shader_gpu_background(), blender::nodes::node_shader_blackbody_cc::node_shader_gpu_blackbody(), blender::nodes::node_shader_bsdf_anisotropic_cc::node_shader_gpu_bsdf_anisotropic(), blender::nodes::node_shader_bsdf_diffuse_cc::node_shader_gpu_bsdf_diffuse(), blender::nodes::node_shader_bsdf_glass_cc::node_shader_gpu_bsdf_glass(), blender::nodes::node_shader_bsdf_glossy_cc::node_shader_gpu_bsdf_glossy(), blender::nodes::node_shader_bsdf_hair_cc::node_shader_gpu_bsdf_hair(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), blender::nodes::node_shader_bsdf_refraction_cc::node_shader_gpu_bsdf_refraction(), blender::nodes::node_shader_bsdf_toon_cc::node_shader_gpu_bsdf_toon(), blender::nodes::node_shader_bsdf_translucent_cc::node_shader_gpu_bsdf_translucent(), blender::nodes::node_shader_bsdf_transparent_cc::node_shader_gpu_bsdf_transparent(), blender::nodes::node_shader_bsdf_velvet_cc::node_shader_gpu_bsdf_velvet(), blender::nodes::node_shader_eevee_specular_cc::node_shader_gpu_eevee_specular(), blender::nodes::node_shader_emission_cc::node_shader_gpu_emission(), blender::nodes::node_shader_fresnel_cc::node_shader_gpu_fresnel(), blender::nodes::node_shader_gamma_cc::node_shader_gpu_gamma(), blender::nodes::node_shader_geometry_cc::node_shader_gpu_geometry(), blender::nodes::node_shader_hair_info_cc::node_shader_gpu_hair_info(), blender::nodes::node_shader_bsdf_hair_principled_cc::node_shader_gpu_hair_principled(), blender::nodes::node_shader_layer_weight_cc::node_shader_gpu_layer_weight(), blender::nodes::node_shader_light_falloff_cc::node_shader_gpu_light_falloff(), blender::nodes::node_shader_light_path_cc::node_shader_gpu_light_path(), blender::nodes::node_shader_mix_shader_cc::node_shader_gpu_mix_shader(), blender::nodes::node_shader_object_info_cc::node_shader_gpu_object_info(), blender::nodes::node_shader_output_aov_cc::node_shader_gpu_output_aov(), blender::nodes::node_shader_point_info_cc::node_shader_gpu_point_info(), blender::nodes::node_shader_shader_to_rgb_cc::node_shader_gpu_shadertorgb(), blender::nodes::node_shader_subsurface_scattering_cc::node_shader_gpu_subsurface_scattering(), blender::nodes::node_shader_tangent_cc::node_shader_gpu_tangent(), blender::nodes::node_shader_tex_brick_cc::node_shader_gpu_tex_brick(), blender::nodes::node_shader_tex_checker_cc::node_shader_gpu_tex_checker(), blender::nodes::node_shader_tex_coord_cc::node_shader_gpu_tex_coord(), blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), blender::nodes::node_shader_tex_gradient_cc::node_shader_gpu_tex_gradient(), blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image(), blender::nodes::node_shader_tex_magic_cc::node_shader_gpu_tex_magic(), blender::nodes::node_shader_tex_musgrave_cc::node_shader_gpu_tex_musgrave(), blender::nodes::node_shader_tex_noise_cc::node_shader_gpu_tex_noise(), blender::nodes::node_shader_tex_sky_cc::node_shader_gpu_tex_sky(), blender::nodes::node_shader_tex_voronoi_cc::node_shader_gpu_tex_voronoi(), blender::nodes::node_shader_tex_wave_cc::node_shader_gpu_tex_wave(), blender::nodes::node_shader_uvmap_cc::node_shader_gpu_uvmap(), blender::nodes::node_shader_vertex_color_cc::node_shader_gpu_vertex_color(), blender::nodes::node_shader_volume_absorption_cc::node_shader_gpu_volume_absorption(), blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled(), blender::nodes::node_shader_volume_scatter_cc::node_shader_gpu_volume_scatter(), blender::nodes::node_shader_wavelength_cc::node_shader_gpu_wavelength(), and blender::nodes::node_shader_wireframe_cc::node_shader_gpu_wireframe().

◆ gpu_stack_link_v()

static bool gpu_stack_link_v ( GPUMaterial material,
bNode bnode,
const char *  name,
GPUNodeStack in,
GPUNodeStack out,
va_list  params 
)
static

◆ GPU_uniform()

GPUNodeLink* GPU_uniform ( const float num)

◆ GPU_uniform_attr_list_copy()

void GPU_uniform_attr_list_copy ( GPUUniformAttrList dest,
GPUUniformAttrList src 
)

Definition at line 292 of file gpu_node_graph.c.

References BLI_duplicatelist(), dest, and src.

Referenced by drw_uniform_attrs_pool_ensure().

◆ GPU_uniform_attr_list_free()

void GPU_uniform_attr_list_free ( GPUUniformAttrList set)

◆ GPU_uniform_attr_list_hash_new()

struct GHash* GPU_uniform_attr_list_hash_new ( const char *  info)

◆ GPU_uniform_attribute()

GPUNodeLink* GPU_uniform_attribute ( GPUMaterial mat,
const char *  name,
bool  use_dupli 
)

◆ gpu_uniform_set_function_from_type()

static const char* gpu_uniform_set_function_from_type ( eNodeSocketDatatype  type)
static

Definition at line 143 of file gpu_node_graph.c.

References BLI_assert_msg, NULL, SOCK_FLOAT, SOCK_INT, SOCK_RGBA, SOCK_VECTOR, and type.

Referenced by gpu_uniformbuffer_link().

◆ GPU_uniformbuf_link_out()

GPUNodeLink* GPU_uniformbuf_link_out ( GPUMaterial mat,
bNode node,
GPUNodeStack stack,
const int  index 
)

◆ gpu_uniformbuffer_link()

static GPUNodeLink* gpu_uniformbuffer_link ( GPUMaterial mat,
bNode node,
GPUNodeStack stack,
const int  index,
const eNodeSocketInOut  in_out 
)
static

◆ uniform_attr_list_cmp()

static bool uniform_attr_list_cmp ( const void a,
const void b 
)
static

◆ uniform_attr_list_hash()

static unsigned int uniform_attr_list_hash ( const void key)
static

Definition at line 262 of file gpu_node_graph.c.

References GPUUniformAttrList::hash_code.

Referenced by GPU_uniform_attr_list_hash_new().

◆ uniform_attr_sort_cmp()

static int uniform_attr_sort_cmp ( const void a,
const void b 
)
static