Blender  V3.3
Public Member Functions | List of all members
blender::gpu::GLShader Class Reference

#include <gl_shader.hh>

Inheritance diagram for blender::gpu::GLShader:
blender::gpu::Shader

Public Member Functions

bool is_compute () const
 
Creation / Destruction
 GLShader (const char *name)
 
 ~GLShader ()
 
Create Info
std::string resources_declare (const shader::ShaderCreateInfo &info) const override
 
std::string vertex_interface_declare (const shader::ShaderCreateInfo &info) const override
 
std::string fragment_interface_declare (const shader::ShaderCreateInfo &info) const override
 
std::string geometry_interface_declare (const shader::ShaderCreateInfo &info) const override
 
std::string geometry_layout_declare (const shader::ShaderCreateInfo &info) const override
 
std::string compute_layout_declare (const shader::ShaderCreateInfo &info) const override
 
Transform feedback

TODO(fclem): Should be replaced by compute shaders.

void transform_feedback_names_set (Span< const char * > name_list, eGPUShaderTFBType geom_type) override
 
bool transform_feedback_enable (GPUVertBuf *buf) override
 
void transform_feedback_disable () override
 
Binding
void bind () override
 
void unbind () override
 
Uniforms setters
void uniform_float (int location, int comp_len, int array_size, const float *data) override
 
void uniform_int (int location, int comp_len, int array_size, const int *data) override
 
GPUVertFormat from Shader
void vertformat_from_shader (GPUVertFormat *format) const override
 
int program_handle_get () const override
 
- Public Member Functions inherited from blender::gpu::Shader
std::string defines_declare (const shader::ShaderCreateInfo &info) const
 
const char *const name_get () const
 
 Shader (const char *name)
 
virtual ~Shader ()
 

Shader stage creation

void vertex_shader_from_glsl (MutableSpan< const char * > sources) override
 
void geometry_shader_from_glsl (MutableSpan< const char * > sources) override
 
void fragment_shader_from_glsl (MutableSpan< const char * > sources) override
 
void compute_shader_from_glsl (MutableSpan< const char * > sources) override
 
bool finalize (const shader::ShaderCreateInfo *info=nullptr) override
 

Additional Inherited Members

- Public Attributes inherited from blender::gpu::Shader
ShaderInterfaceinterface = nullptr
 
- Protected Member Functions inherited from blender::gpu::Shader
void print_log (Span< const char * > sources, char *log, const char *stage, bool error, GPULogParser *parser)
 
- Protected Attributes inherited from blender::gpu::Shader
char name [64]
 

Detailed Description

Implementation of shader compilation and uniforms handling using OpenGL.

Definition at line 23 of file gl_shader.hh.

Constructor & Destructor Documentation

◆ GLShader()

GLShader::GLShader ( const char *  name)

◆ ~GLShader()

GLShader::~GLShader ( )

Definition at line 43 of file gl_shader.cc.

References BLI_assert, and blender::gpu::GLContext::get().

Member Function Documentation

◆ bind()

void GLShader::bind ( )
overridevirtual

Implements blender::gpu::Shader.

Definition at line 1017 of file gl_shader.cc.

References BLI_assert.

◆ compute_layout_declare()

std::string GLShader::compute_layout_declare ( const shader::ShaderCreateInfo info) const
overridevirtual

◆ compute_shader_from_glsl()

void GLShader::compute_shader_from_glsl ( MutableSpan< const char * >  sources)
overridevirtual

Implements blender::gpu::Shader.

Definition at line 969 of file gl_shader.cc.

◆ finalize()

bool GLShader::finalize ( const shader::ShaderCreateInfo info = nullptr)
overridevirtual

◆ fragment_interface_declare()

std::string GLShader::fragment_interface_declare ( const shader::ShaderCreateInfo info) const
overridevirtual

◆ fragment_shader_from_glsl()

void GLShader::fragment_shader_from_glsl ( MutableSpan< const char * >  sources)
overridevirtual

Implements blender::gpu::Shader.

Definition at line 964 of file gl_shader.cc.

◆ geometry_interface_declare()

std::string GLShader::geometry_interface_declare ( const shader::ShaderCreateInfo info) const
overridevirtual

◆ geometry_layout_declare()

std::string GLShader::geometry_layout_declare ( const shader::ShaderCreateInfo info) const
overridevirtual

◆ geometry_shader_from_glsl()

void GLShader::geometry_shader_from_glsl ( MutableSpan< const char * >  sources)
overridevirtual

Implements blender::gpu::Shader.

Definition at line 959 of file gl_shader.cc.

Referenced by finalize().

◆ is_compute()

bool blender::gpu::GLShader::is_compute ( ) const
inline

Definition at line 75 of file gl_shader.hh.

◆ program_handle_get()

int GLShader::program_handle_get ( ) const
overridevirtual

DEPRECATED: Kept only because of BGL API.

Implements blender::gpu::Shader.

Definition at line 1241 of file gl_shader.cc.

◆ resources_declare()

std::string GLShader::resources_declare ( const shader::ShaderCreateInfo info) const
overridevirtual

◆ transform_feedback_disable()

void GLShader::transform_feedback_disable ( )
overridevirtual

Implements blender::gpu::Shader.

Definition at line 1074 of file gl_shader.cc.

◆ transform_feedback_enable()

bool GLShader::transform_feedback_enable ( GPUVertBuf buf)
overridevirtual

◆ transform_feedback_names_set()

void GLShader::transform_feedback_names_set ( Span< const char * >  name_list,
eGPUShaderTFBType  geom_type 
)
overridevirtual

Should be called before linking.

Implements blender::gpu::Shader.

Definition at line 1038 of file gl_shader.cc.

References blender::Span< T >::data(), and blender::Span< T >::size().

◆ unbind()

void GLShader::unbind ( )
overridevirtual

Implements blender::gpu::Shader.

Definition at line 1023 of file gl_shader.cc.

◆ uniform_float()

void GLShader::uniform_float ( int  location,
int  comp_len,
int  array_size,
const float data 
)
overridevirtual

Implements blender::gpu::Shader.

Definition at line 1085 of file gl_shader.cc.

References BLI_assert, and data.

◆ uniform_int()

void GLShader::uniform_int ( int  location,
int  comp_len,
int  array_size,
const int *  data 
)
overridevirtual

Implements blender::gpu::Shader.

Definition at line 1112 of file gl_shader.cc.

References BLI_assert, and data.

◆ vertex_interface_declare()

std::string GLShader::vertex_interface_declare ( const shader::ShaderCreateInfo info) const
overridevirtual

◆ vertex_shader_from_glsl()

void GLShader::vertex_shader_from_glsl ( MutableSpan< const char * >  sources)
overridevirtual

Return true on success.

Implements blender::gpu::Shader.

Definition at line 954 of file gl_shader.cc.

◆ vertformat_from_shader()

void GLShader::vertformat_from_shader ( GPUVertFormat format) const
overridevirtual

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