|
Blender V4.3
|
#include <gl_shader.hh>
Inherits blender::gpu::Shader.
Friends | |
| class | GLShaderCompiler |
Specialization Constants | |
| GLSourcesBaked | get_sources () |
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 |
| bool | post_finalize (const shader::ShaderCreateInfo *info=nullptr) |
Additional Inherited Members | |
Static Public Member Functions inherited from blender::gpu::Shader | |
| static bool | srgb_uniform_dirty_get () |
| static void | set_srgb_uniform (GPUShader *shader) |
| static void | set_framebuffer_srgb_target (int use_srgb_to_linear) |
Public Attributes inherited from blender::gpu::Shader | |
| ShaderInterface * | interface = nullptr |
| struct blender::gpu::Shader::Constants | constants |
Protected Member Functions inherited from blender::gpu::Shader | |
| void | print_log (Span< const char * > sources, const char *log, const char *stage, bool error, GPULogParser *parser) |
Protected Attributes inherited from blender::gpu::Shader | |
| char | name [64] |
| Shader * | parent_shader_ = nullptr |
Implementation of shader compilation and uniforms handling using OpenGL.
Definition at line 67 of file gl_shader.hh.
| GLShader::GLShader | ( | const char * | name | ) |
Definition at line 50 of file gl_shader.cc.
References BLI_assert, and blender::gpu::GLContext::get().
| GLShader::~GLShader | ( | ) |
Definition at line 58 of file gl_shader.cc.
References BLI_assert, and blender::gpu::GLContext::get().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1288 of file gl_shader.cc.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 901 of file gl_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::compute_layout_, blender::gpu::shader::ShaderCreateInfo::ComputeStageLayout::local_size_x, blender::gpu::shader::ShaderCreateInfo::ComputeStageLayout::local_size_y, and blender::gpu::shader::ShaderCreateInfo::ComputeStageLayout::local_size_z.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1232 of file gl_shader.cc.
| std::string GLShader::constants_declare | ( | ) | const |
Definition at line 619 of file gl_shader.cc.
References BLI_assert_unreachable, blender::gpu::Shader::constants, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), blender::gpu::Shader::Constants::types, and blender::gpu::Shader::Constants::values.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1239 of file gl_shader.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), geometry_shader_from_glsl(), and post_finalize().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 716 of file gl_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::builtins_, GPUSamplerState::default_sampler(), blender::gpu::shader::ShaderCreateInfo::depth_write_, blender::gpu::shader::ShaderCreateInfo::early_fragment_test_, blender::gpu::shader::ShaderCreateInfo::fragment_outputs_, blender::gpu::GLContext::framebuffer_fetch_support, blender::gpu::shader::ShaderCreateInfo::geometry_out_interfaces_, blender::gpu::shader::ShaderCreateInfo::geometry_source_, blender::StringRefBase::is_empty(), blender::gpu::GLContext::layered_rendering_support, blender::gpu::main_function_wrapper(), blender::gpu::GLContext::native_barycentric_support, blender::gpu::print_interface(), blender::gpu::print_resource(), blender::gpu::shader::ShaderCreateInfo::subpass_inputs_, blender::gpu::shader::to_component_count(), blender::gpu::to_component_type(), blender::gpu::to_string(), and blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1225 of file gl_shader.cc.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 879 of file gl_shader.cc.
References blender::gpu::find_interface_by_name(), blender::gpu::shader::ShaderCreateInfo::geometry_out_interfaces_, blender::gpu::print_interface(), and blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 849 of file gl_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::geometry_layout_, blender::gpu::shader::ShaderCreateInfo::GeometryStageLayout::invocations, blender::gpu::shader::ShaderCreateInfo::GeometryStageLayout::max_vertices, blender::gpu::shader::ShaderCreateInfo::GeometryStageLayout::primitive_in, blender::gpu::shader::ShaderCreateInfo::GeometryStageLayout::primitive_out, and blender::gpu::to_string().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1218 of file gl_shader.cc.
Referenced by finalize().
| GLSourcesBaked GLShader::get_sources | ( | ) |
Definition at line 1610 of file gl_shader.cc.
References blender::gpu::GLSourcesBaked::comp, result, and blender::gpu::GLSources::to_string().
|
inlineoverridevirtual |
Implements blender::gpu::Shader.
Definition at line 195 of file gl_shader.hh.
|
inlineoverridevirtual |
Implements blender::gpu::Shader.
Definition at line 191 of file gl_shader.hh.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 66 of file gl_shader.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), and blender::gpu::shader::ShaderCreateInfo::specialization_constants_.
|
inline |
Definition at line 203 of file gl_shader.hh.
Referenced by blender::gpu::GLTexture::check_feedback_loop().
| bool GLShader::post_finalize | ( | const shader::ShaderCreateInfo * | info = nullptr | ) |
Definition at line 1262 of file gl_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::legacy_resource_location_.
Referenced by finalize().
|
overridevirtual |
DEPRECATED: Kept only because of BGL API.
Implements blender::gpu::Shader.
Definition at line 1414 of file gl_shader.cc.
References BLI_assert.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 572 of file gl_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::auto_resource_location_, blender::gpu::shader::ShaderCreateInfo::batch_resources_, blender::gpu::shader::ShaderCreateInfo::geometry_resources_, blender::gpu::shader::ShaderCreateInfo::pass_resources_, blender::gpu::print_resource(), print_resource_alias(), blender::gpu::shader::ShaderCreateInfo::push_constants_, and blender::gpu::to_string().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1349 of file gl_shader.cc.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1317 of file gl_shader.cc.
References blender::gpu::GLVertBuf::bind(), BLI_assert, GPU_SHADER_TFB_LINES, GPU_SHADER_TFB_NONE, GPU_SHADER_TFB_POINTS, and GPU_SHADER_TFB_TRIANGLES.
|
overridevirtual |
Should be called before linking.
Implements blender::gpu::Shader.
Definition at line 1309 of file gl_shader.cc.
References blender::Span< T >::data(), and blender::Span< T >::size().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1294 of file gl_shader.cc.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1360 of file gl_shader.cc.
References BLI_assert.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1387 of file gl_shader.cc.
References BLI_assert.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 669 of file gl_shader.cc.
References blender::gpu::shader::ShaderCreateInfo::builtins_, blender::gpu::GLContext::explicit_location_support, GPU_DEVICE_ATI, GPU_DRIVER_OFFICIAL, GPU_OS_ANY, GPU_type_matches(), blender::gpu::GLContext::layered_rendering_support, blender::gpu::main_function_wrapper(), blender::gpu::GLContext::native_barycentric_support, blender::gpu::print_interface(), blender::gpu::to_string(), blender::gpu::shader::ShaderCreateInfo::vertex_inputs_, and blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_.
|
overridevirtual |
Return true on success.
Implements blender::gpu::Shader.
Definition at line 1211 of file gl_shader.cc.
|
inlineoverridevirtual |
Implements blender::gpu::Shader.
Definition at line 168 of file gl_shader.hh.
|
friend |
Definition at line 70 of file gl_shader.hh.