Blender
V3.3
|
#include <gpu_shader_private.hh>
Public Member Functions | |
virtual void | vertex_shader_from_glsl (MutableSpan< const char * > sources)=0 |
virtual void | geometry_shader_from_glsl (MutableSpan< const char * > sources)=0 |
virtual void | fragment_shader_from_glsl (MutableSpan< const char * > sources)=0 |
virtual void | compute_shader_from_glsl (MutableSpan< const char * > sources)=0 |
virtual bool | finalize (const shader::ShaderCreateInfo *info=nullptr)=0 |
virtual void | transform_feedback_names_set (Span< const char * > name_list, eGPUShaderTFBType geom_type)=0 |
virtual bool | transform_feedback_enable (GPUVertBuf *)=0 |
virtual void | transform_feedback_disable ()=0 |
virtual void | bind ()=0 |
virtual void | unbind ()=0 |
virtual void | uniform_float (int location, int comp_len, int array_size, const float *data)=0 |
virtual void | uniform_int (int location, int comp_len, int array_size, const int *data)=0 |
virtual void | vertformat_from_shader (GPUVertFormat *) const =0 |
std::string | defines_declare (const shader::ShaderCreateInfo &info) const |
virtual std::string | resources_declare (const shader::ShaderCreateInfo &info) const =0 |
virtual std::string | vertex_interface_declare (const shader::ShaderCreateInfo &info) const =0 |
virtual std::string | fragment_interface_declare (const shader::ShaderCreateInfo &info) const =0 |
virtual std::string | geometry_interface_declare (const shader::ShaderCreateInfo &info) const =0 |
virtual std::string | geometry_layout_declare (const shader::ShaderCreateInfo &info) const =0 |
virtual std::string | compute_layout_declare (const shader::ShaderCreateInfo &info) const =0 |
virtual int | program_handle_get () const =0 |
const char *const | name_get () const |
Creation / Destruction | |
Shader (const char *name) | |
virtual | ~Shader () |
Public Attributes | |
ShaderInterface * | interface = nullptr |
Protected Member Functions | |
Debug functions | |
void | print_log (Span< const char * > sources, char *log, const char *stage, bool error, GPULogParser *parser) |
Protected Attributes | |
char | name [64] |
Implementation of shader compilation and uniforms handling. Base class which is then specialized for each implementation (GL, VK, ...).
Definition at line 28 of file gpu_shader_private.hh.
Shader::Shader | ( | const char * | name | ) |
Definition at line 54 of file gpu_shader.cc.
References BLI_strncpy(), and name.
|
virtual |
Definition at line 59 of file gpu_shader.cc.
References interface.
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_bind().
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_ex(), and GPU_shader_create_from_info().
std::string Shader::defines_declare | ( | const shader::ShaderCreateInfo & | info | ) | const |
Definition at line 30 of file gpu_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::defines_.
Referenced by GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_ex(), and GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_ex(), and GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_ex(), and GPU_shader_create_from_info().
|
inline |
Definition at line 71 of file gpu_shader_private.hh.
References name.
Referenced by blender::gpu::debug::check_gl_resources().
|
protected |
Definition at line 36 of file gpu_shader_log.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_dynstr_append(), BLI_dynstr_appendf(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_nappend(), BLI_dynstr_new(), BLI_string_join_arrayN(), blender::StringRefNull::c_str(), CLG_color_support_get(), CLG_FLAG_USE, CLG_log_str(), CLG_SEVERITY_ERROR, CLG_SEVERITY_WARN, blender::gpu::LogCursor::column, blender::gpu::GPULogItem::cursor, blender::Span< T >::data(), DEBUG_CONTEXT_LINES, blender::StringRefBase::endswith(), error(), blender::gpu::Error, CLG_LogType::flag, blender::gpu::shader::gpu_shader_dependency_get_filename_from_source_string(), blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), blender::StringRefBase::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::last(), CLG_LogType::level, log(), LOG, MEM_freeN, blender::gpu::GPULogParser::parse_line(), blender::gpu::LogCursor::row, blender::gpu::GPULogItem::severity, blender::Span< T >::size(), blender::Vector< T, InlineBufferCapacity, Allocator >::size(), blender::gpu::LogCursor::source, blender::gpu::GPULogItem::source_base_row, src, stage, blender::StringRefBase::substr(), and CLG_LogRef::type.
Referenced by blender::gpu::GLShader::finalize().
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_ex().
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_unbind().
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_shader_create_ex(), and GPU_shader_create_from_info().
|
pure virtual |
Implemented in blender::gpu::GLShader.
Referenced by GPU_vertformat_from_shader().
ShaderInterface* blender::gpu::Shader::interface = nullptr |
Uniform & attribute locations for shader.
Definition at line 31 of file gpu_shader_private.hh.
Referenced by blender::gpu::GLVaoCache::base_instance_vao_get(), blender::gpu::GLVaoCache::vao_get(), and ~Shader().
|
protected |
For debugging purpose.
Definition at line 35 of file gpu_shader_private.hh.
Referenced by blender::gpu::GLShader::GLShader(), name_get(), Shader(), and blender::gpu::GLShader::vertformat_from_shader().