|
Blender V5.0
|
#include <gpu_codegen.hh>
Public Member Functions | |
| uint32_t | hash_get () const |
Public Attributes | |
| GPUMaterial & | mat |
| GPUNodeGraph & | graph |
| GPUCodegenOutput | output = {} |
| GPUCodegenCreateInfo * | create_info = nullptr |
GLSL code generation | |
| GPUCodegen (GPUMaterial *mat_, GPUNodeGraph *graph_, const char *debug_name) | |
| ~GPUCodegen () | |
| void | generate_graphs () |
| void | generate_cryptomatte () |
| void | generate_uniform_buffer () |
| void | generate_attribs () |
| void | generate_resources () |
| bool | should_optimize_heuristic () const |
Definition at line 59 of file gpu_codegen.hh.
| GPUCodegen::GPUCodegen | ( | GPUMaterial * | mat_, |
| GPUNodeGraph * | graph_, | ||
| const char * | debug_name ) |
Definition at line 124 of file gpu_codegen.cc.
References BLI_hash_mm2a_add_int(), BLI_hash_mm2a_init(), create_info, GPU_material_flag(), GPU_material_uuid_get(), graph, mat, and output.
| GPUCodegen::~GPUCodegen | ( | ) |
Definition at line 134 of file gpu_codegen.cc.
References BLI_freelistN(), create_info, and MEM_SAFE_FREE.
| void GPUCodegen::generate_attribs | ( | ) |
Definition at line 150 of file gpu_codegen.cc.
References blender::gpu::shader::GPUCodegenCreateInfo::NameBuffer::attr_names, BLI_assert_msg, BLI_listbase_is_empty(), CD_ORCO, CD_TANGENT, create_info, GPU_FLOAT, GPU_VEC3, GPU_VEC4, graph, blender::gpu::shader::GPUCodegenCreateInfo::interface_generated, LISTBASE_FOREACH, blender::gpu::shader::GPUCodegenCreateInfo::name_buffer, output, blender::gpu::shader::StageInterfaceInfo::smooth(), SNPRINTF, STRNCPY(), blender::gpu::shader::to_type(), blender::gpu::shader::GPUCodegenCreateInfo::NameBuffer::var_names, blender::gpu::shader::ShaderCreateInfo::vertex_in(), and blender::gpu::shader::ShaderCreateInfo::vertex_out().
Referenced by GPU_generate_pass().
| void GPUCodegen::generate_cryptomatte | ( | ) |
Definition at line 466 of file gpu_codegen.cc.
References BLI_addtail(), BLI_genericNodeN(), BLI_strnlen(), GPU_FLOAT, GPU_material_get_material(), GPU_SOURCE_CRYPTOMATTE, hash, Material::id, mat, MAX_NAME, MEM_callocN(), and ID::name.
Referenced by GPU_generate_pass().
| void GPUCodegen::generate_graphs | ( | ) |
Definition at line 552 of file gpu_codegen.cc.
References BLI_hash_mm2a_add(), BLI_hash_mm2a_end(), BLI_listbase_is_empty(), GPU_NODE_TAG_AOV, GPU_NODE_TAG_COMPOSITOR, GPU_NODE_TAG_DISPLACEMENT, GPU_NODE_TAG_FUNCTION, GPU_NODE_TAG_SURFACE, GPU_NODE_TAG_THICKNESS, GPU_NODE_TAG_VOLUME, gpu_nodes_tag(), graph, LISTBASE_FOREACH, output, and GPUNode::tag.
Referenced by GPU_generate_pass().
| void GPUCodegen::generate_resources | ( | ) |
Definition at line 216 of file gpu_codegen.cc.
References blender::gpu::shader::ShaderCreateInfo::additional_info(), blender::gpu::shader::GPUCodegenCreateInfo::NameBuffer::append_sampler_name(), blender::gpu::shader::BATCH, BLI_listbase_is_empty(), create_info, GPU_ATTRIBUTE_UBO_BLOCK_NAME, GPU_NODE_TREE_UBO_SLOT, GPU_SOURCE_CRYPTOMATTE, GPU_UBO_BLOCK_NAME, graph, input, LISTBASE_FOREACH, name, blender::gpu::shader::GPUCodegenCreateInfo::name_buffer, blender::gpu::shader::ShaderCreateInfo::sampler(), blender::gpu::shader::ShaderCreateInfo::typedef_source_generated, and blender::gpu::shader::ShaderCreateInfo::uniform_buf().
Referenced by GPU_generate_pass().
| void GPUCodegen::generate_uniform_buffer | ( | ) |
Definition at line 484 of file gpu_codegen.cc.
References BLI_addtail(), BLI_genericNodeN(), BLI_listbase_is_empty(), GPU_material_uniform_buffer_create(), GPU_SOURCE_UNIFORM, graph, input, GPUNode::inputs, LISTBASE_FOREACH, and mat.
Referenced by GPU_generate_pass().
|
inline |
Definition at line 87 of file gpu_codegen.hh.
Referenced by GPUPassCache::add(), and GPU_generate_pass().
| bool GPUCodegen::should_optimize_heuristic | ( | ) | const |
Definition at line 141 of file gpu_codegen.cc.
Referenced by GPUPassCache::add().
| GPUCodegenCreateInfo* blender::gpu::shader::GPUCodegen::create_info = nullptr |
Definition at line 64 of file gpu_codegen.hh.
Referenced by GPUPassCache::add(), generate_attribs(), generate_resources(), GPU_generate_pass(), GPUCodegen(), and ~GPUCodegen().
| GPUNodeGraph& blender::gpu::shader::GPUCodegen::graph |
Definition at line 62 of file gpu_codegen.hh.
Referenced by generate_attribs(), generate_graphs(), generate_resources(), generate_uniform_buffer(), and GPUCodegen().
| GPUMaterial& blender::gpu::shader::GPUCodegen::mat |
Definition at line 61 of file gpu_codegen.hh.
Referenced by generate_cryptomatte(), generate_uniform_buffer(), and GPUCodegen().
| GPUCodegenOutput blender::gpu::shader::GPUCodegen::output = {} |
Definition at line 63 of file gpu_codegen.hh.
Referenced by generate_attribs(), generate_graphs(), GPU_generate_pass(), and GPUCodegen().