Blender V5.0
blender::gpu::GLShaderInterface Class Reference

#include <gl_shader_interface.hh>

Inherits blender::gpu::ShaderInterface.

Public Member Functions

 MEM_CXX_CLASS_ALLOC_FUNCS ("GLShaderInterface")
Creation / Destruction
 GLShaderInterface (GLuint program, const shader::ShaderCreateInfo &info)
 GLShaderInterface (GLuint program)
 ~GLShaderInterface ()
Batch Reference
void ref_add (GLVaoCache *ref)
void ref_remove (GLVaoCache *ref)
Public Member Functions inherited from blender::gpu::ShaderInterface
 ShaderInterface ()
virtual ~ShaderInterface ()
void debug_print () const
const ShaderInputattr_get (const StringRefNull name) const
const ShaderInputattr_get (const int binding) const
const ShaderInputubo_get (const StringRefNull name) const
const ShaderInputubo_get (const int binding) const
const ShaderInputuniform_get (const StringRefNull name) const
const ShaderInputtexture_get (const int binding) const
const ShaderInputssbo_get (const StringRefNull name) const
const ShaderInputssbo_get (const int binding) const
const ShaderInputconstant_get (const StringRefNull name) const
const char * input_name_get (const ShaderInput *input) const
int32_t uniform_builtin (const GPUUniformBuiltin builtin) const
int32_t ubo_builtin (const GPUUniformBlockBuiltin builtin) const
uint valid_bindings_get (const ShaderInput *const inputs, const uint inputs_len) const

Additional Inherited Members

Public Attributes inherited from blender::gpu::ShaderInterface
ShaderInputinputs_ = nullptr
char * name_buffer_ = nullptr
uint attr_len_ = 0
uint ubo_len_ = 0
uint uniform_len_ = 0
uint ssbo_len_ = 0
uint constant_len_ = 0
uint16_t enabled_attr_mask_ = 0
uint16_t enabled_ubo_mask_ = 0
uint8_t enabled_ima_mask_ = 0
uint64_t enabled_tex_mask_ = 0
uint16_t enabled_ssbo_mask_ = 0
uint16_t ssbo_attr_mask_ = 0
int32_t builtins_ [GPU_NUM_UNIFORMS]
int32_t builtin_blocks_ [GPU_NUM_UNIFORM_BLOCKS]
uint8_t attr_types_ [GPU_VERT_ATTR_MAX_LEN]
std::array< TextureWriteFormat, GPU_MAX_IMAGEimage_formats_
Protected Member Functions inherited from blender::gpu::ShaderInterface
uint32_t set_input_name (ShaderInput *input, char *name, uint32_t name_len) const
void copy_input_name (ShaderInput *input, const StringRefNull &name, char *name_buffer, uint32_t &name_buffer_offset) const
void sort_inputs ()
void set_image_formats_from_info (const shader::ShaderCreateInfo &info)
Static Protected Member Functions inherited from blender::gpu::ShaderInterface
static const char * builtin_uniform_name (GPUUniformBuiltin u)
static const char * builtin_uniform_block_name (GPUUniformBlockBuiltin u)

Detailed Description

Implementation of Shader interface using OpenGL.

Definition at line 30 of file gl_shader_interface.hh.

Constructor & Destructor Documentation

◆ GLShaderInterface() [1/2]

blender::gpu::GLShaderInterface::GLShaderInterface ( GLuint program,
const shader::ShaderCreateInfo & info )

Definition at line 387 of file gl_shader_interface.cc.

References blender::gpu::ShaderInterface::attr_len_, blender::gpu::ShaderInterface::attr_types_, ShaderCreateInfo::Resource::bind_type, blender::gpu::ShaderInput::binding, BLI_assert_msg, blender::gpu::ShaderInterface::builtin_blocks_, blender::gpu::ShaderInterface::builtin_uniform_block_name(), blender::gpu::ShaderInterface::builtin_uniform_name(), blender::gpu::ShaderInterface::builtins_, StringRefNull::c_str(), blender::gpu::ShaderInterface::constant_len_, blender::gpu::ShaderInterface::copy_input_name(), blender::gpu::ShaderInterface::enabled_attr_mask_, blender::gpu::ShaderInterface::enabled_ima_mask_, blender::gpu::ShaderInterface::enabled_ssbo_mask_, blender::gpu::ShaderInterface::enabled_tex_mask_, blender::gpu::ShaderInterface::enabled_ubo_mask_, blender::gpu::GLContext::explicit_location_support, blender::gpu::shader::ShaderCreateInfo::geometry_resources_, GPU_NUM_UNIFORM_BLOCKS, GPU_NUM_UNIFORMS, blender::gpu::shader::ShaderCreateInfo::Resource::IMAGE, ShaderCreateInfo::VertIn::index, input, blender::gpu::ShaderInterface::inputs_, blender::gpu::shader::ShaderCreateInfo::interface_names_size_, blender::gpu::ShaderInput::location, MEM_calloc_arrayN(), MEM_mallocN(), blender::gpu::shader::SpecializationConstant::name, ShaderCreateInfo::PushConst::name, ShaderCreateInfo::VertIn::name, blender::gpu::ShaderInterface::name_buffer_, blender::gpu::shader::ShaderCreateInfo::push_constants_, blender::gpu::shader::ShaderCreateInfo::resources_get_all_(), blender::gpu::shader::ShaderCreateInfo::Resource::SAMPLER, blender::gpu::ShaderInterface::set_image_formats_from_info(), ShaderCreateInfo::Resource::slot, blender::gpu::ShaderInterface::sort_inputs(), blender::gpu::shader::ShaderCreateInfo::specialization_constants_, blender::gpu::ShaderInterface::ssbo_attr_mask_, blender::gpu::ShaderInterface::ssbo_len_, blender::gpu::shader::ShaderCreateInfo::Resource::STORAGE_BUFFER, ShaderCreateInfo::VertIn::type, blender::gpu::ShaderInterface::ubo_get(), blender::gpu::ShaderInterface::ubo_len_, blender::gpu::shader::ShaderCreateInfo::Resource::UNIFORM_BUFFER, blender::gpu::ShaderInterface::uniform_get(), blender::gpu::ShaderInterface::uniform_len_, and blender::gpu::shader::ShaderCreateInfo::vertex_inputs_.

◆ GLShaderInterface() [2/2]

◆ ~GLShaderInterface()

blender::gpu::GLShaderInterface::~GLShaderInterface ( )

Definition at line 547 of file gl_shader_interface.cc.

Member Function Documentation

◆ MEM_CXX_CLASS_ALLOC_FUNCS()

blender::gpu::GLShaderInterface::MEM_CXX_CLASS_ALLOC_FUNCS ( "GLShaderInterface" )

◆ ref_add()

void blender::gpu::GLShaderInterface::ref_add ( GLVaoCache * ref)

Definition at line 562 of file gl_shader_interface.cc.

References i.

◆ ref_remove()

void blender::gpu::GLShaderInterface::ref_remove ( GLVaoCache * ref)

Definition at line 573 of file gl_shader_interface.cc.

References i.


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