Blender  V3.3
List of all members
blender::eevee::ShaderModule Class Reference

#include <eevee_shader.hh>

Public Member Functions

GPU Materials
GPUMaterialmaterial_shader_get (::Material *blender_mat, struct bNodeTree *nodetree, eMaterialPipeline pipeline_type, eMaterialGeometry geometry_type, bool deferred_compilation)
 
GPUMaterialworld_shader_get (::World *blender_world, struct bNodeTree *nodetree)
 
GPUMaterialmaterial_shader_get (const char *name, ListBase &materials, struct bNodeTree *nodetree, eMaterialPipeline pipeline_type, eMaterialGeometry geometry_type, bool is_lookdev)
 
void material_create_info_ammend (GPUMaterial *mat, GPUCodegenOutput *codegen)
 

Module

 ShaderModule ()
 
 ~ShaderModule ()
 
static ShaderModulemodule_get ()
 
static void module_free ()
 

Static shaders

GPUShaderstatic_shader_get (eShaderType shader_type)
 

Detailed Description

Shader module. shared between instances.

Definition at line 38 of file eevee_shader.hh.

Constructor & Destructor Documentation

◆ ShaderModule()

blender::eevee::ShaderModule::ShaderModule ( )

◆ ~ShaderModule()

blender::eevee::ShaderModule::~ShaderModule ( )

Definition at line 64 of file eevee_shader.cc.

References DRW_SHADER_FREE_SAFE.

Member Function Documentation

◆ material_create_info_ammend()

void blender::eevee::ShaderModule::material_create_info_ammend ( GPUMaterial mat,
GPUCodegenOutput codegen 
)

Noop.

Hair attributes come from sampler buffer. Transfer attributes to sampler.

NOTE: Orco is generated from strand position for now.

Only orco layer is supported by world and it is procedurally generated. These are here to make the attribs_load function calls valid.

Only one uv and one color attribute layer are supported by gpencil objects and they are already declared in another createInfo. These are here to make the attribs_load function calls valid.

No attributes supported.

Definition at line 114 of file eevee_shader.cc.

References blender::gpu::shader::ShaderCreateInfo::additional_info(), ATTR_FALLTHROUGH, GPUCodegenOutput::attr_load, blender::gpu::shader::ShaderCreateInfo::auto_resource_location(), BLI_assert, blender::gpu::shader::ShaderCreateInfo::builtins(), GPUCodegenOutput::create_info, blender::gpu::shader::ShaderCreateInfo::define(), GPUCodegenOutput::displacement, ELEM, blender::gpu::shader::ShaderCreateInfo::fragment_source_generated, GPU_material_flag_get(), GPU_material_uuid_get(), GPU_MATFLAG_BARYCENTRIC, GPU_MATFLAG_TRANSPARENT, blender::gpu::shader::StageInterfaceInfo::inouts, input, blender::gpu::shader::StageInterfaceInfo::instance_name, blender::eevee::MAT_GEOM_CURVES, blender::eevee::MAT_GEOM_GPENCIL, blender::eevee::MAT_GEOM_MESH, blender::eevee::MAT_GEOM_VOLUME, blender::eevee::MAT_GEOM_WORLD, blender::eevee::MAT_PIPE_DEFERRED, blender::eevee::MAT_PIPE_DEFERRED_PREPASS, blender::eevee::MAT_PIPE_DEFERRED_PREPASS_VELOCITY, blender::eevee::MAT_PIPE_FORWARD, blender::eevee::MAT_PIPE_FORWARD_PREPASS, blender::eevee::MAT_PIPE_FORWARD_PREPASS_VELOCITY, blender::eevee::MAT_PIPE_SHADOW, GPUCodegenOutput::material_functions, blender::eevee::material_type_from_shader_uuid(), blender::gpu::shader::StageInterfaceInfo::name, blender::gpu::shader::ShaderCreateInfo::sampler(), GPUCodegenOutput::surface, GPUCodegenOutput::thickness, blender::gpu::shader::ShaderCreateInfo::vertex_inputs_, blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_, blender::gpu::shader::ShaderCreateInfo::vertex_source_generated, and GPUCodegenOutput::volume.

Referenced by blender::eevee::codegen_callback().

◆ material_shader_get() [1/2]

GPUMaterial * blender::eevee::ShaderModule::material_shader_get ( ::Material blender_mat,
struct bNodeTree nodetree,
eMaterialPipeline  pipeline_type,
eMaterialGeometry  geometry_type,
bool  deferred_compilation 
)

◆ material_shader_get() [2/2]

GPUMaterial * blender::eevee::ShaderModule::material_shader_get ( const char *  name,
ListBase materials,
struct bNodeTree nodetree,
eMaterialPipeline  pipeline_type,
eMaterialGeometry  geometry_type,
bool  is_lookdev 
)

◆ module_free()

void blender::eevee::ShaderModule::module_free ( )
static

Definition at line 34 of file eevee_shader.cc.

Referenced by eevee_engine_free().

◆ module_get()

ShaderModule * blender::eevee::ShaderModule::module_get ( )
static

Only to be used by Instance constructor.

Definition at line 25 of file eevee_shader.cc.

References ShaderModule().

◆ static_shader_get()

GPUShader * blender::eevee::ShaderModule::static_shader_get ( eShaderType  shader_type)

Definition at line 92 of file eevee_shader.cc.

References BLI_assert, and GPU_shader_create_from_info_name().

Referenced by blender::eevee::Film::sync().

◆ world_shader_get()

GPUMaterial * blender::eevee::ShaderModule::world_shader_get ( ::World blender_world,
struct bNodeTree nodetree 
)

The documentation for this class was generated from the following files: