Blender
V3.3
|
#include <eevee_shader.hh>
Public Member Functions | |
GPU Materials | |
GPUMaterial * | material_shader_get (::Material *blender_mat, struct bNodeTree *nodetree, eMaterialPipeline pipeline_type, eMaterialGeometry geometry_type, bool deferred_compilation) |
GPUMaterial * | world_shader_get (::World *blender_world, struct bNodeTree *nodetree) |
GPUMaterial * | material_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 ShaderModule * | module_get () |
static void | module_free () |
Static shaders | |
GPUShader * | static_shader_get (eShaderType shader_type) |
Shader module. shared between instances.
Definition at line 38 of file eevee_shader.hh.
blender::eevee::ShaderModule::ShaderModule | ( | ) |
Definition at line 43 of file eevee_shader.cc.
References BLI_assert, BLI_assert_msg, GPU_shader_create_info_get(), and blender::eevee::MAX_SHADER_TYPE.
Referenced by module_get().
blender::eevee::ShaderModule::~ShaderModule | ( | ) |
Definition at line 64 of file eevee_shader.cc.
References DRW_SHADER_FREE_SAFE.
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().
GPUMaterial * blender::eevee::ShaderModule::material_shader_get | ( | ::Material * | blender_mat, |
struct bNodeTree * | nodetree, | ||
eMaterialPipeline | pipeline_type, | ||
eMaterialGeometry | geometry_type, | ||
bool | deferred_compilation | ||
) |
Definition at line 326 of file eevee_shader.cc.
References blender::eevee::codegen_callback(), DRW_shader_from_material(), blender::eevee::MAT_PIPE_VOLUME, and blender::eevee::shader_uuid_from_material_type().
GPUMaterial * blender::eevee::ShaderModule::material_shader_get | ( | const char * | name, |
ListBase & | materials, | ||
struct bNodeTree * | nodetree, | ||
eMaterialPipeline | pipeline_type, | ||
eMaterialGeometry | geometry_type, | ||
bool | is_lookdev | ||
) |
Definition at line 361 of file eevee_shader.cc.
References blender::eevee::codegen_callback(), GPU_MAT_QUEUED, GPU_material_compile(), GPU_material_from_nodetree(), GPU_material_status_set(), blender::eevee::MAT_PIPE_VOLUME, materials, and blender::eevee::shader_uuid_from_material_type().
|
static |
Definition at line 34 of file eevee_shader.cc.
Referenced by eevee_engine_free().
|
static |
Only to be used by Instance constructor.
Definition at line 25 of file eevee_shader.cc.
References ShaderModule().
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().
GPUMaterial * blender::eevee::ShaderModule::world_shader_get | ( | ::World * | blender_world, |
struct bNodeTree * | nodetree | ||
) |
Definition at line 340 of file eevee_shader.cc.
References blender::eevee::codegen_callback(), DRW_shader_from_world(), blender::eevee::MAT_GEOM_WORLD, blender::eevee::MAT_PIPE_DEFERRED, blender::eevee::MAT_PIPE_VOLUME, and blender::eevee::shader_uuid_from_material_type().
Referenced by blender::eevee::World::sync().