|
Blender V4.5
|
#include <string>#include "DNA_customdata_types.h"#include "DNA_image_types.h"#include "DNA_listBase.h"#include "GPU_shader.hh"#include "GPU_texture.hh"Go to the source code of this file.
Classes | |
| struct | GPULayerAttr |
| struct | GPUMaterialAttribute |
| struct | GPUMaterialTexture |
| struct | GPUUniformAttr |
| struct | GPUUniformAttrList |
| struct | GPUNodeStack |
| struct | GPUCodegenOutput |
Typedefs | |
| using | GPUCodegenCallbackFn |
| using | GPUMaterialPassReplacementCallbackFn = GPUPass *(*)(void *thunk, GPUMaterial *mat) |
| using | ConstructGPUMaterialFn = void (*)(void *thunk, GPUMaterial *material) |
| using ConstructGPUMaterialFn = void (*)(void *thunk, GPUMaterial *material) |
Definition at line 111 of file GPU_material.hh.
| using GPUCodegenCallbackFn |
Definition at line 87 of file GPU_material.hh.
| using GPUMaterialPassReplacementCallbackFn = GPUPass *(*)(void *thunk, GPUMaterial *mat) |
Should return an already compiled pass if it's functionally equivalent to the one being compiled.
Definition at line 94 of file GPU_material.hh.
| enum eGPUDefaultValue |
| Enumerator | |
|---|---|
| GPU_DEFAULT_0 | |
| GPU_DEFAULT_1 | |
Definition at line 204 of file GPU_material.hh.
| enum eGPUMaterialEngine |
High level functions to create and use GPU materials.
| Enumerator | |
|---|---|
| GPU_MAT_EEVEE | |
| GPU_MAT_COMPOSITOR | |
| GPU_MAT_ENGINE_MAX | |
Definition at line 40 of file GPU_material.hh.
| enum eGPUMaterialFlag |
Definition at line 60 of file GPU_material.hh.
| Enumerator | |
|---|---|
| GPU_MAT_OPTIMIZATION_SKIP | |
| GPU_MAT_OPTIMIZATION_QUEUED | |
| GPU_MAT_OPTIMIZATION_SUCCESS | |
Definition at line 54 of file GPU_material.hh.
| enum eGPUMaterialStatus |
| Enumerator | |
|---|---|
| GPU_MAT_FAILED | |
| GPU_MAT_QUEUED | |
| GPU_MAT_SUCCESS | |
Definition at line 46 of file GPU_material.hh.
| enum eGPUType |
| Enumerator | |
|---|---|
| GPU_NONE | |
| GPU_FLOAT | |
| GPU_VEC2 | |
| GPU_VEC3 | |
| GPU_VEC4 | |
| GPU_MAT3 | |
| GPU_MAT4 | |
| GPU_MAX_CONSTANT_DATA | |
| GPU_TEX1D_ARRAY | |
| GPU_TEX2D | |
| GPU_TEX2D_ARRAY | |
| GPU_TEX3D | |
| GPU_CLOSURE | |
| GPU_ATTR | |
Definition at line 179 of file GPU_material.hh.
| ENUM_OPERATORS | ( | eGPUMaterialFlag | , |
| GPU_MATFLAG_UPDATED | ) |
References GPU_MATFLAG_UPDATED.
| GPUNodeLink * GPU_attribute | ( | GPUMaterial * | mat, |
| eCustomDataType | type, | ||
| const char * | name ) |
Definition at line 530 of file gpu_node_graph.cc.
References GPUNodeLink::attr, CD_ORCO, GPU_constant(), GPU_material_flag_set(), gpu_material_node_graph(), GPU_MATFLAG_OBJECT_INFO, GPU_MAX_CONSTANT_DATA, gpu_node_graph_add_attribute(), GPU_NODE_LINK_ATTR, gpu_node_link_create(), and GPUNodeLink::link_type.
Referenced by GPU_attribute_with_default(), blender::nodes::node_shader_normal_map_cc::gpu_shader_normal_map(), blender::nodes::node_shader_vector_displacement_cc::gpu_shader_vector_displacement(), blender::nodes::node_shader_attribute_cc::node_shader_gpu_attribute(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), node_shader_gpu_default_tex_coord(), blender::nodes::node_shader_geometry_cc::node_shader_gpu_geometry(), 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_image_cc::node_shader_gpu_tex_image(), 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_info_cc::node_shader_gpu_volume_info(), and blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled().
| 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 552 of file gpu_node_graph.cc.
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(), GPUMaterialAttribute::is_default_color, and GPUNodeLink::link_type.
Referenced by blender::nodes::node_shader_vertex_color_cc::node_shader_gpu_vertex_color().
| GPUNodeLink * GPU_attribute_hair_length | ( | GPUMaterial * | mat | ) |
Add a GPU attribute that refers to the approximate length of curves/hairs.
Definition at line 568 of file gpu_node_graph.cc.
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(), and GPUNodeLink::link_type.
Referenced by blender::nodes::node_shader_hair_info_cc::node_shader_gpu_hair_info().
| GPUNodeLink * GPU_attribute_with_default | ( | GPUMaterial * | mat, |
| eCustomDataType | type, | ||
| const char * | name, | ||
| eGPUDefaultValue | default_value ) |
Definition at line 583 of file gpu_node_graph.cc.
References GPUNodeLink::attr, GPUMaterialAttribute::default_value, GPU_attribute(), GPU_NODE_LINK_ATTR, and GPUNodeLink::link_type.
Referenced by blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled().
| GPUNodeLink * GPU_color_band | ( | GPUMaterial * | mat, |
| int | size, | ||
| float * | pixels, | ||
| float * | r_row ) |
Definition at line 703 of file gpu_node_graph.cc.
References gpu_material_node_graph(), gpu_material_ramp_texture_row_set(), gpu_node_graph_add_texture(), GPU_NODE_LINK_COLORBAND, gpu_node_link_create(), GPUSamplerState::internal_sampler(), GPUNodeLink::link_type, MEM_freeN(), size(), and GPUNodeLink::texture.
Referenced by blender::nodes::node_shader_curves_cc::flt::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::vec::gpu_shader_curve_vec(), blender::nodes::node_shader_color_ramp_cc::gpu_shader_valtorgb(), blender::nodes::node_composite_color_ramp_cc::node_gpu_material(), blender::nodes::node_composite_huecorrect_cc::node_gpu_material(), blender::nodes::node_composite_rgb_curves_cc::node_gpu_material(), blender::nodes::node_composite_vector_curves_cc::node_gpu_material(), blender::nodes::node_shader_blackbody_cc::node_shader_gpu_blackbody(), blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled(), and blender::nodes::node_shader_wavelength_cc::node_shader_gpu_wavelength().
| GPUNodeLink * GPU_constant | ( | const float * | num | ) |
Definition at line 628 of file gpu_node_graph.cc.
References GPUNodeLink::data, GPU_NODE_LINK_CONSTANT, gpu_node_link_create(), GPUNodeLink::link_type, and num.
Referenced by GPU_attribute(), GPU_attribute_default_color(), GPU_attribute_hair_length(), gpu_node_input_socket(), blender::nodes::node_shader_bump_cc::gpu_shader_bump(), blender::nodes::node_shader_curves_cc::flt::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::vec::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_sh_mix_cc::gpu_shader_mix(), 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_rgb_to_bw_cc::gpu_shader_rgbtobw(), 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_composite_channel_matte_cc::node_gpu_material(), blender::nodes::node_composite_color_ramp_cc::node_gpu_material(), blender::nodes::node_composite_color_spill_cc::node_gpu_material(), blender::nodes::node_composite_colorcorrection_cc::node_gpu_material(), blender::nodes::node_composite_huecorrect_cc::node_gpu_material(), blender::nodes::node_composite_luma_matte_cc::node_gpu_material(), blender::nodes::node_composite_map_range_cc::node_gpu_material(), blender::nodes::node_composite_map_value_cc::node_gpu_material(), blender::nodes::node_composite_math_cc::node_gpu_material(), blender::nodes::node_composite_mixrgb_cc::node_gpu_material(), blender::nodes::node_composite_rgb_curves_cc::node_gpu_material(), blender::nodes::node_composite_rgb_to_bw_cc::node_gpu_material(), blender::nodes::node_composite_vector_curves_cc::node_gpu_material(), 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_blackbody_cc::node_shader_gpu_blackbody(), 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_metallic_cc::node_shader_gpu_bsdf_metallic(), 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_gabor_cc::node_shader_gpu_tex_gabor(), 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_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_volume_principled_cc::node_shader_gpu_volume_principled(), and blender::nodes::node_shader_wavelength_cc::node_shader_gpu_wavelength().
| GPUNodeLink * GPU_differentiate_float_function | ( | const char * | function_name, |
| const float | filter_width ) |
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 644 of file gpu_node_graph.cc.
References GPUNodeLink::differentiate_float, GPUNodeLink::filter_width, 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().
| GPUNodeLink * GPU_image | ( | GPUMaterial * | mat, |
| Image * | ima, | ||
| ImageUser * | iuser, | ||
| GPUSamplerState | sampler_state ) |
Definition at line 653 of file gpu_node_graph.cc.
References gpu_material_node_graph(), gpu_node_graph_add_texture(), gpu_node_link_create(), GPU_NODE_LINK_IMAGE, GPUNodeLink::link_type, and GPUNodeLink::texture.
Referenced by blender::nodes::node_shader_tex_environment_cc::node_shader_gpu_tex_environment(), and blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image().
| GPUNodeLink * GPU_image_sky | ( | GPUMaterial * | mat, |
| int | width, | ||
| int | height, | ||
| const float * | pixels, | ||
| float * | layer, | ||
| GPUSamplerState | sampler_state ) |
Definition at line 666 of file gpu_node_graph.cc.
References gpu_material_node_graph(), gpu_material_sky_texture_layer_set(), gpu_node_graph_add_texture(), gpu_node_link_create(), GPU_NODE_LINK_IMAGE_SKY, GPUNodeLink::link_type, and GPUNodeLink::texture.
Referenced by blender::nodes::node_shader_tex_sky_cc::node_shader_gpu_tex_sky().
| void GPU_image_tiled | ( | GPUMaterial * | mat, |
| Image * | ima, | ||
| ImageUser * | iuser, | ||
| GPUSamplerState | sampler_state, | ||
| GPUNodeLink ** | r_image_tiled_link, | ||
| GPUNodeLink ** | r_image_tiled_mapping_link ) |
Definition at line 683 of file gpu_node_graph.cc.
References gpu_material_node_graph(), gpu_node_graph_add_texture(), gpu_node_link_create(), GPU_NODE_LINK_IMAGE_TILED, GPU_NODE_LINK_IMAGE_TILED_MAPPING, and texture().
Referenced by blender::nodes::node_shader_tex_image_cc::node_shader_gpu_tex_image().
| GPUNodeLink * GPU_layer_attribute | ( | GPUMaterial * | mat, |
| const char * | name ) |
Definition at line 617 of file gpu_node_graph.cc.
References gpu_material_node_graph(), gpu_node_graph_add_layer_attribute(), gpu_node_link_create(), GPU_NODE_LINK_LAYER_ATTR, GPUNodeLink::layer_attr, and GPUNodeLink::link_type.
Referenced by blender::nodes::node_shader_attribute_cc::node_shader_gpu_attribute().
| bool GPU_link | ( | GPUMaterial * | mat, |
| const char * | name, | ||
| ... ) |
Definition at line 718 of file gpu_node_graph.cc.
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(), i, GPUNodeGraph::nodes, GPUFunction::paramqual, params, GPUFunction::paramtype, GPUFunction::totparam, and GPUNodeGraph::used_libraries.
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_sh_mix_cc::gpu_shader_mix(), 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_rgb_cc::gpu_shader_rgb(), blender::nodes::node_shader_color_ramp_cc::gpu_shader_valtorgb(), blender::nodes::node_shader_value_cc::gpu_shader_value(), blender::nodes::node_shader_vector_transform_cc::gpu_shader_vect_transform(), gpu_uniformbuffer_link(), blender::nodes::node_composite_math_cc::node_gpu_material(), blender::nodes::node_composite_mixrgb_cc::node_gpu_material(), blender::nodes::node_composite_rgb_curves_cc::node_gpu_material(), 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_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_metallic_cc::node_shader_gpu_bsdf_metallic(), 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_sheen_cc::node_shader_gpu_bsdf_sheen(), blender::nodes::node_shader_bsdf_toon_cc::node_shader_gpu_bsdf_toon(), blender::nodes::node_shader_bsdf_translucent_cc::node_shader_gpu_bsdf_translucent(), 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().
| void GPU_material_add_output_link_aov | ( | GPUMaterial * | material, |
| GPUNodeLink * | link, | ||
| int | hash ) |
Definition at line 542 of file gpu/intern/gpu_material.cc.
References BLI_addtail(), GPUMaterial::graph, GPUNodeGraphOutputLink::hash, hash, MEM_callocN(), GPUNodeGraphOutputLink::outlink, and GPUNodeGraph::outlink_aovs.
Referenced by blender::nodes::node_shader_output_aov_cc::node_shader_gpu_output_aov().
| void GPU_material_add_output_link_composite | ( | GPUMaterial * | material, |
| GPUNodeLink * | link ) |
Definition at line 550 of file gpu/intern/gpu_material.cc.
References BLI_addtail(), GPUMaterial::graph, MEM_callocN(), GPUNodeGraphOutputLink::outlink, and GPUNodeGraph::outlink_compositor.
| ListBase GPU_material_attributes | ( | const GPUMaterial * | material | ) |
Definition at line 382 of file gpu/intern/gpu_material.cc.
References GPUNodeGraph::attributes, and GPUMaterial::graph.
Referenced by blender::draw::attribute_index_in_material(), blender::draw::curves_sub_pass_setup_implementation(), blender::draw::ensure_attributes(), blender::draw::hair_sub_pass_setup_implementation(), blender::draw::mesh_cd_calc_used_gpu_layers(), blender::draw::pointcloud_sub_pass_setup_implementation(), blender::draw::pointcloud_surface_shaded_get(), blender::eevee::SyncModule::sync_volume(), and blender::draw::volume_sub_pass_implementation().
| uint64_t GPU_material_compilation_timestamp | ( | GPUMaterial * | mat | ) |
Definition at line 333 of file gpu/intern/gpu_material.cc.
References GPU_pass_compilation_timestamp(), and GPUMaterial::pass.
| eGPUMaterialFlag GPU_material_flag | ( | const GPUMaterial * | mat | ) |
Definition at line 358 of file gpu/intern/gpu_material.cc.
References GPUMaterial::flag.
Referenced by blender::gpu::shader::GPUCodegen::GPUCodegen().
| bool GPU_material_flag_get | ( | const GPUMaterial * | mat, |
| eGPUMaterialFlag | flag ) |
Definition at line 353 of file gpu/intern/gpu_material.cc.
References flag, and GPUMaterial::flag.
Referenced by blender::eevee::VolumeLayer::material_add(), blender::eevee::ShaderModule::material_create_info_amend(), blender::eevee::ForwardPipeline::material_opaque_add(), blender::eevee::pass_replacement_cb(), blender::eevee::ForwardPipeline::prepass_opaque_add(), and blender::eevee::shader_closure_bits_from_flag().
| void GPU_material_flag_set | ( | GPUMaterial * | mat, |
| eGPUMaterialFlag | flag ) |
Definition at line 363 of file gpu/intern/gpu_material.cc.
References flag, GPUMaterial::flag, GPU_MATFLAG_COAT, and GPU_MATFLAG_GLOSSY.
Referenced by GPU_attribute(), blender::nodes::node_shader_normal_map_cc::gpu_shader_normal_map(), blender::nodes::node_shader_particle_info_cc::gpu_shader_particle_info(), blender::nodes::node_shader_ambient_occlusion_cc::node_shader_gpu_ambient_occlusion(), 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_metallic_cc::node_shader_gpu_bsdf_metallic(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), blender::nodes::node_shader_bsdf_ray_portal_cc::node_shader_gpu_bsdf_ray_portal(), blender::nodes::node_shader_bsdf_refraction_cc::node_shader_gpu_bsdf_refraction(), blender::nodes::node_shader_bsdf_sheen_cc::node_shader_gpu_bsdf_sheen(), 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_eevee_specular_cc::node_shader_gpu_eevee_specular(), blender::nodes::node_shader_emission_cc::node_shader_gpu_emission(), blender::nodes::node_shader_geometry_cc::node_shader_gpu_geometry(), blender::nodes::node_shader_bsdf_hair_principled_cc::node_shader_gpu_hair_principled(), 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_shader_to_rgb_cc::node_shader_gpu_shadertorgb(), blender::nodes::node_shader_subsurface_scattering_cc::node_shader_gpu_subsurface_scattering(), blender::nodes::node_shader_volume_absorption_cc::node_shader_gpu_volume_absorption(), blender::nodes::node_shader_volume_coefficients_cc::node_shader_gpu_volume_coefficients(), blender::nodes::node_shader_volume_principled_cc::node_shader_gpu_volume_principled(), blender::nodes::node_shader_volume_scatter_cc::node_shader_gpu_volume_scatter(), and blender::nodes::node_shader_wireframe_cc::node_shader_gpu_wireframe().
| void GPU_material_free | ( | ListBase * | gpumaterial | ) |
Definition at line 253 of file gpu/intern/gpu_material.cc.
References BLI_freelistN(), GPU_material_free_single(), and LISTBASE_FOREACH.
Referenced by BKE_material_defaults_free_gpu(), BKE_material_eval(), BKE_world_eval(), ED_node_set_active(), GPU_materials_free(), material_free_data(), blender::eevee::LookdevWorld::sync(), and world_free_data().
| void GPU_material_free_single | ( | GPUMaterial * | material | ) |
Definition at line 248 of file gpu/intern/gpu_material.cc.
Referenced by GPU_material_free(), and blender::compositor::ShaderOperation::~ShaderOperation().
| GPUMaterial * GPU_material_from_callbacks | ( | eGPUMaterialEngine | engine, |
| ConstructGPUMaterialFn | construct_function_cb, | ||
| GPUCodegenCallbackFn | generate_code_function_cb, | ||
| void * | thunk ) |
Definition at line 206 of file gpu/intern/gpu_material.cc.
References GPU_generate_pass(), gpu_material_ramp_texture_build(), gpu_node_graph_free_nodes(), GPU_pass_should_optimize(), GPUMaterial::graph, GPUMaterial::optimized_pass, and GPUMaterial::pass.
Referenced by blender::compositor::ShaderOperation::ShaderOperation().
| GPUMaterial * GPU_material_from_nodetree | ( | Material * | ma, |
| bNodeTree * | ntree, | ||
| ListBase * | gpumaterials, | ||
| const char * | name, | ||
| eGPUMaterialEngine | engine, | ||
| uint64_t | shader_uuid, | ||
| bool | deferred_compilation, | ||
| GPUCodegenCallbackFn | callback, | ||
| void * | thunk, | ||
| GPUMaterialPassReplacementCallbackFn | pass_replacement_cb = nullptr ) |
WARNING: gpumaterials thread safety must be ensured by the caller.
WORKAROUND: The node tree code is never executed in default replaced passes, but the GPU validation will still complain if the node tree UBO is not bound. So we create a dummy UBO with (at least) the size of the default material one (192 bytes). We allocate 256 bytes to leave some room for future changes.
Definition at line 132 of file gpu/intern/gpu_material.cc.
References BLI_addtail(), BLI_assert, LinkData::data, GPUMaterial::engine, GPU_generate_pass(), gpu_material_ramp_texture_build(), gpu_material_sky_texture_build(), gpu_node_graph_free_nodes(), GPU_pass_acquire(), GPU_pass_ensure_its_ready(), GPU_pass_should_optimize(), GPU_uniformbuf_create_ex(), GPUMaterial::graph, bNodeTree::id, LISTBASE_FOREACH, MEM_callocN(), MEM_freeN(), GPUMaterial::name, blender::bke::node_tree_free_local_tree(), blender::bke::node_tree_localize(), ntreeGPUMaterialNodes, GPUMaterial::optimized_pass, GPUMaterial::pass, ID::py_instance, GPUMaterial::source_material, GPUMaterial::ubo, and GPUMaterial::uuid.
Referenced by blender::eevee::ShaderModule::material_shader_get(), and blender::eevee::ShaderModule::world_shader_get().
| Material * GPU_material_get_material | ( | GPUMaterial * | material | ) |
Return can be null if it's a world material.
Definition at line 285 of file gpu/intern/gpu_material.cc.
References GPUMaterial::source_material.
Referenced by blender::gpu::shader::GPUCodegen::generate_cryptomatte(), blender::nodes::node_shader_object_info_cc::node_shader_gpu_object_info(), blender::eevee::pass_replacement_cb(), blender::eevee::SyncModule::sync_curves(), blender::eevee::SyncModule::sync_mesh(), blender::eevee::SyncModule::sync_pointcloud(), and blender::eevee::SyncModule::sync_sculpt().
| const char * GPU_material_get_name | ( | GPUMaterial * | material | ) |
Definition at line 275 of file gpu/intern/gpu_material.cc.
References GPUMaterial::name.
Referenced by blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), blender::eevee::PlanarProbePipeline::material_add(), blender::eevee::VolumeLayer::material_add(), blender::eevee::ForwardPipeline::material_opaque_add(), blender::eevee::ForwardPipeline::material_transparent_add(), blender::eevee::VolumeLayer::occupancy_add(), blender::eevee::DeferredLayer::prepass_add(), blender::eevee::DeferredProbePipeline::prepass_add(), blender::eevee::PlanarProbePipeline::prepass_add(), blender::eevee::ForwardPipeline::prepass_opaque_add(), blender::eevee::ForwardPipeline::prepass_transparent_add(), blender::eevee::CapturePipeline::surface_material_add(), and blender::eevee::ShadowPipeline::surface_material_add().
| GPUPass * GPU_material_get_pass | ( | GPUMaterial * | material | ) |
Definition at line 290 of file gpu/intern/gpu_material.cc.
References GPU_MAT_OPTIMIZATION_SUCCESS, GPU_material_optimization_status(), GPUMaterial::optimized_pass, and GPUMaterial::pass.
Referenced by GPU_material_get_shader(), blender::draw::detail::PassBase< DrawCommandBufType >::material_set(), blender::eevee::pass_replacement_cb(), and blender::eevee::CapturePipeline::surface_material_add().
| GPUShader * GPU_material_get_shader | ( | GPUMaterial * | material | ) |
Return the most optimal shader configuration for the given material.
Definition at line 299 of file gpu/intern/gpu_material.cc.
References GPU_material_get_pass(), and GPU_pass_shader_get().
Referenced by blender::compositor::ShaderOperation::execute(), and blender::eevee::ShaderKey::ShaderKey().
| bool GPU_material_has_displacement_output | ( | GPUMaterial * | mat | ) |
Definition at line 348 of file gpu/intern/gpu_material.cc.
References GPUMaterial::has_displacement_output.
Referenced by blender::eevee::pass_replacement_cb(), blender::eevee::SyncModule::sync_curves(), blender::eevee::SyncModule::sync_mesh(), blender::eevee::SyncModule::sync_pointcloud(), and blender::eevee::SyncModule::sync_sculpt().
| bool GPU_material_has_surface_output | ( | GPUMaterial * | mat | ) |
Definition at line 338 of file gpu/intern/gpu_material.cc.
References GPUMaterial::has_surface_output.
| bool GPU_material_has_volume_output | ( | GPUMaterial * | mat | ) |
Definition at line 343 of file gpu/intern/gpu_material.cc.
References GPUMaterial::has_volume_output.
Referenced by blender::eevee::VolumeLayer::material_add(), blender::eevee::VolumeLayer::occupancy_add(), blender::eevee::WorldVolumePipeline::sync(), and blender::eevee::SyncModule::sync_volume().
| const ListBase * GPU_material_layer_attributes | ( | const GPUMaterial * | material | ) |
Definition at line 398 of file gpu/intern/gpu_material.cc.
References BLI_listbase_is_empty(), GPUMaterial::graph, and GPUNodeGraph::layer_attrs.
Referenced by blender::draw::Manager::register_layer_attributes().
| eGPUMaterialOptimizationStatus GPU_material_optimization_status | ( | GPUMaterial * | mat | ) |
Return status for asynchronous optimization jobs.
Definition at line 316 of file gpu/intern/gpu_material.cc.
References BLI_assert_unreachable, GPU_MAT_OPTIMIZATION_QUEUED, GPU_MAT_OPTIMIZATION_SKIP, GPU_MAT_OPTIMIZATION_SUCCESS, GPU_PASS_QUEUED, GPU_pass_should_optimize(), GPU_pass_status(), GPU_PASS_SUCCESS, GPUMaterial::optimized_pass, and GPUMaterial::pass.
Referenced by GPU_material_get_pass().
| void GPU_material_output_displacement | ( | GPUMaterial * | material, |
| GPUNodeLink * | link ) |
Definition at line 527 of file gpu/intern/gpu_material.cc.
References GPUMaterial::graph, GPUMaterial::has_displacement_output, and GPUNodeGraph::outlink_displacement.
Referenced by blender::nodes::node_shader_output_material_cc::node_shader_gpu_output_material().
| void GPU_material_output_surface | ( | GPUMaterial * | material, |
| GPUNodeLink * | link ) |
Definition at line 511 of file gpu/intern/gpu_material.cc.
References GPUMaterial::graph, GPUMaterial::has_surface_output, and GPUNodeGraph::outlink_surface.
Referenced by blender::nodes::node_shader_output_light_cc::node_shader_gpu_output_light(), blender::nodes::node_shader_output_material_cc::node_shader_gpu_output_material(), and blender::nodes::node_shader_output_world_cc::node_shader_gpu_output_world().
| void GPU_material_output_thickness | ( | GPUMaterial * | material, |
| GPUNodeLink * | link ) |
Definition at line 535 of file gpu/intern/gpu_material.cc.
References GPUMaterial::graph, and GPUNodeGraph::outlink_thickness.
Referenced by blender::nodes::node_shader_output_material_cc::node_shader_gpu_output_material().
| void GPU_material_output_volume | ( | GPUMaterial * | material, |
| GPUNodeLink * | link ) |
Definition at line 519 of file gpu/intern/gpu_material.cc.
References GPUMaterial::graph, GPUMaterial::has_volume_output, and GPUNodeGraph::outlink_volume.
Referenced by blender::nodes::node_shader_output_material_cc::node_shader_gpu_output_material(), and blender::nodes::node_shader_output_world_cc::node_shader_gpu_output_world().
| char * GPU_material_split_sub_function | ( | GPUMaterial * | material, |
| eGPUType | return_type, | ||
| GPUNodeLink ** | link ) |
Wrap a part of the material graph into a function. You need then need to call the function by using something like GPU_differentiate_float_function.
| return_type | sub function return type. Output is cast to this type. |
| link | link to use as the sub function output. |
Definition at line 557 of file gpu/intern/gpu_material.cc.
References BLI_addtail(), BLI_assert, GPUMaterial::generated_function_len, GPU_FLOAT, GPU_link(), GPU_VEC3, GPU_VEC4, GPUMaterial::graph, GPUNodeGraph::material_functions, MEM_callocN(), GPUNodeGraphFunctionLink::name, GPUNodeGraphFunctionLink::outlink, and SNPRINTF.
Referenced by blender::nodes::node_shader_bump_cc::gpu_shader_bump().
| eGPUMaterialStatus GPU_material_status | ( | GPUMaterial * | mat | ) |
Return true if the material compilation has not yet begin or begin.
Definition at line 304 of file gpu/intern/gpu_material.cc.
References GPU_MAT_FAILED, GPU_MAT_QUEUED, GPU_MAT_SUCCESS, GPU_PASS_QUEUED, GPU_pass_status(), GPU_PASS_SUCCESS, and GPUMaterial::pass.
Referenced by blender::eevee::World::sync(), and blender::eevee::WorldVolumePipeline::sync().
| ListBase GPU_material_textures | ( | GPUMaterial * | material | ) |
Definition at line 387 of file gpu/intern/gpu_material.cc.
References GPUMaterial::graph, and GPUNodeGraph::textures.
Referenced by image_walk_gpu_materials(), and blender::draw::detail::PassBase< DrawCommandBufType >::material_set().
| const GPUUniformAttrList * GPU_material_uniform_attributes | ( | const GPUMaterial * | material | ) |
Definition at line 392 of file gpu/intern/gpu_material.cc.
References GPUUniformAttrList::count, GPUMaterial::graph, and GPUNodeGraph::uniform_attrs.
Referenced by blender::draw::Manager::extract_object_attributes(), blender::draw::Manager::extract_object_attributes(), and blender::eevee::ShaderModule::material_create_info_amend().
| void GPU_material_uniform_buffer_create | ( | GPUMaterial * | material, |
| ListBase * | inputs ) |
Create dynamic UBO from parameters
Definition at line 372 of file gpu/intern/gpu_material.cc.
References GPU_uniformbuf_create_from_list(), inputs, GPUMaterial::name, and GPUMaterial::ubo.
Referenced by blender::gpu::shader::GPUCodegen::generate_uniform_buffer().
| GPUUniformBuf * GPU_material_uniform_buffer_get | ( | GPUMaterial * | material | ) |
Definition at line 377 of file gpu/intern/gpu_material.cc.
References GPUMaterial::ubo.
Referenced by blender::draw::detail::PassBase< DrawCommandBufType >::material_set().
| uint64_t GPU_material_uuid_get | ( | GPUMaterial * | mat | ) |
Definition at line 280 of file gpu/intern/gpu_material.cc.
References GPUMaterial::uuid.
Referenced by blender::gpu::shader::GPUCodegen::GPUCodegen(), blender::eevee::ShaderModule::material_create_info_amend(), and blender::eevee::pass_replacement_cb().
| void GPU_materials_free | ( | Main * | bmain | ) |
Definition at line 262 of file gpu/intern/gpu_material.cc.
References BKE_material_defaults_free_gpu(), GPU_material_free(), LISTBASE_FOREACH, Main::materials, and Main::worlds.
Referenced by blender::ed::outliner::outliner_id_remap_exec().
| bool GPU_stack_link | ( | GPUMaterial * | mat, |
| const bNode * | node, | ||
| const char * | name, | ||
| GPUNodeStack * | in, | ||
| GPUNodeStack * | out, | ||
| ... ) |
Definition at line 825 of file gpu_node_graph.cc.
References gpu_stack_link_v(), in, 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::comb::gpu_shader_combxyz(), blender::nodes::node_shader_curves_cc::flt::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::vec::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_sh_mix_cc::gpu_shader_mix(), 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_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::sep::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_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_composite_alpha_over_cc::node_gpu_material(), blender::nodes::node_composite_brightness_cc::node_gpu_material(), blender::nodes::node_composite_channel_matte_cc::node_gpu_material(), blender::nodes::node_composite_chroma_matte_cc::node_gpu_material(), blender::nodes::node_composite_color_matte_cc::node_gpu_material(), blender::nodes::node_composite_color_ramp_cc::node_gpu_material(), blender::nodes::node_composite_color_spill_cc::node_gpu_material(), blender::nodes::node_composite_colorbalance_cc::node_gpu_material(), blender::nodes::node_composite_colorcorrection_cc::node_gpu_material(), blender::nodes::node_composite_combine_color_cc::node_gpu_material(), blender::nodes::node_composite_combine_hsva_cc::node_gpu_material(), blender::nodes::node_composite_combine_rgba_cc::node_gpu_material(), blender::nodes::node_composite_combine_xyz_cc::node_gpu_material(), blender::nodes::node_composite_combine_ycca_cc::node_gpu_material(), blender::nodes::node_composite_combine_yuva_cc::node_gpu_material(), blender::nodes::node_composite_diff_matte_cc::node_gpu_material(), blender::nodes::node_composite_distance_matte_cc::node_gpu_material(), blender::nodes::node_composite_exposure_cc::node_gpu_material(), blender::nodes::node_composite_gamma_cc::node_gpu_material(), blender::nodes::node_composite_hue_sat_val_cc::node_gpu_material(), blender::nodes::node_composite_huecorrect_cc::node_gpu_material(), blender::nodes::node_composite_invert_cc::node_gpu_material(), blender::nodes::node_composite_luma_matte_cc::node_gpu_material(), blender::nodes::node_composite_map_range_cc::node_gpu_material(), blender::nodes::node_composite_map_value_cc::node_gpu_material(), blender::nodes::node_composite_math_cc::node_gpu_material(), blender::nodes::node_composite_mixrgb_cc::node_gpu_material(), blender::nodes::node_composite_normal_cc::node_gpu_material(), blender::nodes::node_composite_posterize_cc::node_gpu_material(), blender::nodes::node_composite_premulkey_cc::node_gpu_material(), blender::nodes::node_composite_rgb_curves_cc::node_gpu_material(), blender::nodes::node_composite_rgb_to_bw_cc::node_gpu_material(), blender::nodes::node_composite_separate_color_cc::node_gpu_material(), blender::nodes::node_composite_separate_hsva_cc::node_gpu_material(), blender::nodes::node_composite_separate_rgba_cc::node_gpu_material(), blender::nodes::node_composite_separate_xyz_cc::node_gpu_material(), blender::nodes::node_composite_separate_ycca_cc::node_gpu_material(), blender::nodes::node_composite_separate_yuva_cc::node_gpu_material(), blender::nodes::node_composite_setalpha_cc::node_gpu_material(), blender::nodes::node_composite_vector_curves_cc::node_gpu_material(), 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_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_metallic_cc::node_shader_gpu_bsdf_metallic(), blender::nodes::node_shader_bsdf_principled_cc::node_shader_gpu_bsdf_principled(), blender::nodes::node_shader_bsdf_ray_portal_cc::node_shader_gpu_bsdf_ray_portal(), blender::nodes::node_shader_bsdf_refraction_cc::node_shader_gpu_bsdf_refraction(), blender::nodes::node_shader_bsdf_sheen_cc::node_shader_gpu_bsdf_sheen(), 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_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_gabor_cc::node_shader_gpu_tex_gabor(), 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_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_coefficients_cc::node_shader_gpu_volume_coefficients(), 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().
| GPUNodeLink * GPU_uniform | ( | const float * | num | ) |
Definition at line 636 of file gpu_node_graph.cc.
References GPUNodeLink::data, gpu_node_link_create(), GPU_NODE_LINK_UNIFORM, GPUNodeLink::link_type, and num.
Referenced by blender::compositor::get_shader_node_input_link(), blender::nodes::node_shader_curves_cc::flt::gpu_shader_curve_float(), blender::nodes::node_shader_curves_cc::rgb::gpu_shader_curve_rgb(), blender::nodes::node_shader_curves_cc::vec::gpu_shader_curve_vec(), blender::nodes::node_sh_mix_cc::gpu_shader_mix(), blender::nodes::node_shader_mix_rgb_cc::gpu_shader_mix_rgb(), blender::nodes::node_shader_normal_cc::gpu_shader_normal(), blender::nodes::node_shader_normal_map_cc::gpu_shader_normal_map(), blender::nodes::node_shader_rgb_cc::gpu_shader_rgb(), blender::nodes::node_shader_color_ramp_cc::gpu_shader_valtorgb(), blender::nodes::node_shader_value_cc::gpu_shader_value(), gpu_uniformbuffer_link(), blender::nodes::node_composite_color_ramp_cc::node_gpu_material(), blender::nodes::node_composite_colorbalance_cc::node_gpu_material(), blender::nodes::node_composite_huecorrect_cc::node_gpu_material(), blender::nodes::node_composite_map_value_cc::node_gpu_material(), blender::nodes::node_composite_normal_cc::node_gpu_material(), blender::nodes::node_composite_rgb_curves_cc::node_gpu_material(), blender::nodes::node_composite_vector_curves_cc::node_gpu_material(), 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_image_cc::node_shader_gpu_tex_image(), node_shader_gpu_tex_mapping(), and blender::nodes::node_shader_tex_sky_cc::node_shader_gpu_tex_sky().
| void GPU_uniform_attr_list_copy | ( | GPUUniformAttrList * | dest, |
| const GPUUniformAttrList * | src ) |
Definition at line 316 of file gpu_node_graph.cc.
References BLI_duplicatelist(), GPUUniformAttrList::count, GPUUniformAttrList::hash_code, and GPUUniformAttrList::list.
| void GPU_uniform_attr_list_free | ( | GPUUniformAttrList * | set | ) |
Definition at line 323 of file gpu_node_graph.cc.
References BLI_freelistN(), GPUUniformAttrList::count, GPUUniformAttrList::hash_code, and GPUUniformAttrList::list.
Referenced by gpu_node_graph_free().
| GHash * GPU_uniform_attr_list_hash_new | ( | const char * | info | ) |
Definition at line 311 of file gpu_node_graph.cc.
References BLI_ghash_new(), uniform_attr_list_cmp(), and uniform_attr_list_hash().
| GPUNodeLink * GPU_uniform_attribute | ( | GPUMaterial * | mat, |
| const char * | name, | ||
| bool | use_dupli, | ||
| uint32_t * | r_hash ) |
Definition at line 595 of file gpu_node_graph.cc.
References GPU_constant(), gpu_material_node_graph(), GPU_MAX_CONSTANT_DATA, gpu_node_graph_add_uniform_attribute(), gpu_node_link_create(), GPU_NODE_LINK_UNIFORM_ATTR, GPUUniformAttr::hash_code, GPUNodeLink::link_type, and GPUNodeLink::uniform_attr.
Referenced by blender::nodes::node_shader_attribute_cc::node_shader_gpu_attribute().