|
Blender V5.0
|
#include <gl_shader.hh>
Inherits blender::gpu::Shader.
Public Member Functions | |
| void | warm_cache (int) override |
| bool | is_compute () const |
Creation / Destruction | |
| GLShader (const char *name) | |
| ~GLShader () | |
| void | init (const shader::ShaderCreateInfo &info, bool is_batch_compilation) override |
Create Info | |
| std::string | resources_declare (const shader::ShaderCreateInfo &info) const override |
| std::string | constants_declare (const shader::SpecializationConstants &constants_state) const |
| 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 |
Binding | |
| void | bind (const shader::SpecializationConstants *constants_state) 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 |
| Public Member Functions inherited from blender::gpu::Shader | |
| std::string | defines_declare (const shader::ShaderCreateInfo &info) const |
| StringRefNull | name_get () const |
| void | parent_set (Shader *parent) |
| Shader * | parent_get () const |
| Shader (const char *name) | |
| virtual | ~Shader () |
| void | specialization_constants_init (const shader::ShaderCreateInfo &info) |
Friends | |
| class | GLSubprocessShaderCompiler |
| class | GLShaderCompiler |
Shader stage creation | |
| void | vertex_shader_from_glsl (MutableSpan< StringRefNull > sources) override |
| void | geometry_shader_from_glsl (MutableSpan< StringRefNull > sources) override |
| void | fragment_shader_from_glsl (MutableSpan< StringRefNull > sources) override |
| void | compute_shader_from_glsl (MutableSpan< StringRefNull > sources) override |
| bool | finalize (const shader::ShaderCreateInfo *info=nullptr) override |
| bool | post_finalize (const shader::ShaderCreateInfo *info=nullptr) |
Specialization Constants | |
| GLSourcesBaked | get_sources () |
Additional Inherited Members | |
| Static Public Member Functions inherited from blender::gpu::Shader | |
| static void | set_scene_linear_to_xyz_uniform (gpu::Shader *shader) |
| static void | set_srgb_uniform (Context *ctx, gpu::Shader *shader) |
| static void | set_framebuffer_srgb_target (int use_srgb_to_linear) |
| Public Attributes inherited from blender::gpu::Shader | |
| ShaderInterface * | interface = nullptr |
| uint16_t | fragment_output_bits = 0 |
| std::unique_ptr< const shader::SpecializationConstants > | constants |
| bool | is_polyline = false |
| Protected Member Functions inherited from blender::gpu::Shader | |
| void | print_log (Span< StringRefNull > 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 69 of file gl_shader.hh.
| GLShader::GLShader | ( | const char * | name | ) |
Definition at line 60 of file gl_shader.cc.
References BLI_assert, blender::gpu::GLContext::get(), blender::gpu::Shader::name, and blender::gpu::Shader::Shader().
| GLShader::~GLShader | ( | ) |
Definition at line 68 of file gl_shader.cc.
References BLI_assert, and blender::gpu::GLContext::get().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1420 of file gl_shader.cc.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 962 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 1358 of file gl_shader.cc.
References blender::gpu::Shader::constants.
| std::string GLShader::constants_declare | ( | const shader::SpecializationConstants & | constants_state | ) | const |
Definition at line 668 of file gl_shader.cc.
References BLI_assert_unreachable, blender::gpu::shader::bool_t, blender::gpu::shader::float_t, blender::gpu::shader::SpecializationConstant::Value::i, blender::gpu::shader::int_t, blender::gpu::Shader::name, Vector< T, InlineBufferCapacity, Allocator >::size(), blender::gpu::shader::SpecializationConstants::types, blender::gpu::shader::SpecializationConstant::Value::u, blender::gpu::shader::uint_t, and blender::gpu::shader::SpecializationConstants::values.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1365 of file gl_shader.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), geometry_shader_from_glsl(), blender::gpu::Shader::name, and post_finalize().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 786 of file gl_shader.cc.
References blender::gpu::shader::BARYCENTRIC_COORD, blender::gpu::shader::ShaderCreateInfo::builtins_, GPUSamplerState::default_sampler(), blender::gpu::shader::ShaderCreateInfo::depth_write_, blender::gpu::shader::ShaderCreateInfo::early_fragment_test_, ELEM, 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_, input, blender::StringRefBase::is_empty(), blender::gpu::shader::LAYER, blender::gpu::main_function_wrapper(), blender::gpu::GLContext::native_barycentric_support, output, blender::gpu::print_interface(), blender::gpu::print_resource(), blender::gpu::shader::SRC_0, blender::gpu::shader::SRC_1, blender::gpu::shader::ShaderCreateInfo::subpass_inputs_, blender::gpu::shader::to_component_count(), blender::gpu::to_string(), blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_, and blender::gpu::shader::VIEWPORT_INDEX.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1351 of file gl_shader.cc.
References blender::gpu::Shader::constants.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 940 of file gl_shader.cc.
References blender::gpu::find_interface_by_name(), blender::gpu::shader::ShaderCreateInfo::geometry_out_interfaces_, blender::gpu::shader::StageInterfaceInfo::instance_name, blender::gpu::print_interface(), and blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 910 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 1344 of file gl_shader.cc.
References blender::gpu::Shader::constants.
Referenced by finalize().
| GLSourcesBaked GLShader::get_sources | ( | ) |
Definition at line 1668 of file gl_shader.cc.
References result.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 76 of file gl_shader.cc.
References blender::StringRefNull::c_str(), blender::gpu::Shader::constants, blender::gpu::Shader::name, blender::gpu::shader::SpecializationConstant::name, blender::gpu::debug::object_label(), and blender::gpu::shader::ShaderCreateInfo::specialization_constants_.
|
inline |
Definition at line 160 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 1388 of file gl_shader.cc.
References log, new(), blender::gpu::Shader::print_log(), and status.
Referenced by finalize().
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 593 of file gl_shader.cc.
References ShaderCreateInfo::PushConst::array_size, blender::gpu::shader::ShaderCreateInfo::auto_resource_location_, blender::gpu::shader::ShaderCreateInfo::batch_resources_, BLI_assert_unreachable, blender::gpu::shader::bool_t, blender::gpu::shader::ShaderCreateInfo::compilation_constants_, blender::gpu::shader::ShaderCreateInfo::geometry_resources_, blender::gpu::shader::SpecializationConstant::Value::i, blender::gpu::shader::int_t, blender::gpu::shader::CompilationConstant::name, ShaderCreateInfo::PushConst::name, ShaderCreateInfo::SharedVariable::name, blender::gpu::shader::ShaderCreateInfo::pass_resources_, blender::gpu::print_resource(), print_resource_alias(), blender::gpu::shader::ShaderCreateInfo::push_constants_, blender::gpu::shader::ShaderCreateInfo::shared_variables_, blender::gpu::shader::ShaderCreateInfo::specialization_constants_, blender::gpu::to_string(), blender::gpu::shader::CompilationConstant::type, ShaderCreateInfo::PushConst::type, ShaderCreateInfo::SharedVariable::type, blender::gpu::shader::SpecializationConstant::Value::u, blender::gpu::shader::uint_t, and blender::gpu::shader::CompilationConstant::value.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1426 of file gl_shader.cc.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1439 of file gl_shader.cc.
References BLI_assert, and data.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 1466 of file gl_shader.cc.
References BLI_assert, and data.
|
overridevirtual |
Implements blender::gpu::Shader.
Definition at line 719 of file gl_shader.cc.
References blender::gpu::shader::BARYCENTRIC_COORD, blender::gpu::shader::ShaderCreateInfo::builtins_, blender::gpu::shader::CLIP_CONTROL, blender::gpu::GLContext::explicit_location_support, blender::gpu::shader::ShaderCreateInfo::geometry_source_, GPU_DEVICE_ATI, GPU_DRIVER_OFFICIAL, GPU_OS_ANY, GPU_type_matches(), ShaderCreateInfo::VertIn::index, blender::StringRefBase::is_empty(), blender::gpu::shader::LAYER, blender::gpu::main_function_wrapper(), ShaderCreateInfo::VertIn::name, blender::gpu::GLContext::native_barycentric_support, blender::gpu::print_interface(), blender::gpu::to_string(), ShaderCreateInfo::VertIn::type, blender::gpu::shader::ShaderCreateInfo::vertex_inputs_, blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_, and blender::gpu::shader::VIEWPORT_INDEX.
|
overridevirtual |
Return true on success.
Implements blender::gpu::Shader.
Definition at line 1337 of file gl_shader.cc.
References blender::gpu::Shader::constants.
|
inlineoverridevirtual |
Implements blender::gpu::Shader.
Definition at line 144 of file gl_shader.hh.
|
friend |
Definition at line 73 of file gl_shader.hh.
References GLShaderCompiler.
Referenced by GLShaderCompiler.
|
friend |
Definition at line 72 of file gl_shader.hh.
References GLSubprocessShaderCompiler.
Referenced by GLSubprocessShaderCompiler.