|
| | RenderProcessor (const ShaderConfig &config) |
| |
| | ~RenderProcessor () override |
| |
| void | set_geometry_shader (const std::string &geometry_path) |
| |
| void | set_tess_control_shader (const std::string &tess_control_path) |
| |
| void | set_tess_eval_shader (const std::string &tess_eval_path) |
| |
| void | set_fragment_shader (const std::string &fragment_path) |
| |
| void | set_target_window (const std::shared_ptr< Core::Window > &window, const std::shared_ptr< VKBuffer > &buffer) |
| |
| Portal::Graphics::RenderPipelineID | get_render_pipeline_id () const |
| |
| void | on_attach (const std::shared_ptr< Buffer > &buffer) override |
| | Called when this processor is attached to a buffer.
|
| |
| void | set_primitive_topology (Portal::Graphics::PrimitiveTopology topology) |
| | Set primitive topology (e.g., triangle list, line list, point list)
|
| |
| void | set_polygon_mode (Portal::Graphics::PolygonMode mode) |
| | Set polygon mode (e.g., fill, line, point)
|
| |
| void | set_cull_mode (Portal::Graphics::CullMode mode) |
| | Set cull mode (e.g., none, front, back)
|
| |
| void | bind_texture (uint32_t binding, const std::shared_ptr< Core::VKImage > &texture, vk::Sampler sampler=nullptr) |
| | Bind a texture to a descriptor binding point.
|
| |
| void | bind_texture (const std::string &descriptor_name, const std::shared_ptr< Core::VKImage > &texture, vk::Sampler sampler=nullptr) |
| | Bind a texture to a named descriptor.
|
| |
| bool | is_pipeline_ready () const |
| | Check if pipeline is created.
|
| |
| void | set_vertex_range (uint32_t first_vertex, uint32_t vertex_count) |
| | Set vertex range for drawing subset of buffer.
|
| |
| void | set_buffer_vertex_layout (const std::shared_ptr< VKBuffer > &buffer, const Kakshya::VertexLayout &layout) |
| | Override the vertex layout used when building the pipeline for buffer.
|
| |
| void | set_blend_attachment (const Portal::Graphics::BlendAttachmentConfig &config) |
| | Set blend mode for color attachment.
|
| |
| void | enable_alpha_blending () |
| | Enable standard alpha blending (src_alpha, one_minus_src_alpha)
|
| |
| void | enable_depth_test (Portal::Graphics::CompareOp compare_op=Portal::Graphics::CompareOp::LESS) |
| | Enable depth testing for this processor's pipeline.
|
| |
| void | set_view_transform (const Kinesis::ViewTransform &vt) |
| | Set static view transform (evaluated once)
|
| |
| void | set_view_transform_source (std::function< Kinesis::ViewTransform()> fn) |
| | Set dynamic view transform source (evaluated every frame)
|
| |
| | ShaderProcessor (const std::string &shader_path) |
| | Construct processor with shader path.
|
| |
| | ShaderProcessor (ShaderConfig config) |
| | Construct processor with full configuration.
|
| |
| | ~ShaderProcessor () override |
| |
| void | processing_function (const std::shared_ptr< Buffer > &buffer) override |
| | The core processing function that must be implemented by derived classes.
|
| |
| void | on_attach (const std::shared_ptr< Buffer > &buffer) override |
| | Called when this processor is attached to a buffer.
|
| |
| void | on_detach (const std::shared_ptr< Buffer > &buffer) override |
| | Called when this processor is detached from a buffer.
|
| |
| bool | is_compatible_with (const std::shared_ptr< Buffer > &buffer) const override |
| | Checks if this processor can handle the specified buffer type.
|
| |
| void | bind_buffer (const std::string &descriptor_name, const std::shared_ptr< VKBuffer > &buffer) |
| | Bind a VKBuffer to a named shader descriptor.
|
| |
| void | unbind_buffer (const std::string &descriptor_name) |
| | Unbind a buffer from a descriptor.
|
| |
| std::shared_ptr< VKBuffer > | get_bound_buffer (const std::string &descriptor_name) const |
| | Get bound buffer for a descriptor name.
|
| |
| void | auto_bind_buffer (const std::shared_ptr< VKBuffer > &buffer) |
| | Auto-bind buffer based on attachment order.
|
| |
| bool | hot_reload_shader () |
| | Hot-reload shader from ShaderFoundry.
|
| |
| void | set_shader (const std::string &shader_path) |
| | Update shader path and reload.
|
| |
| const std::string & | get_shader_path () const |
| | Get current shader path.
|
| |
| void | set_push_constant_size (size_t size) |
| | Set push constant size.
|
| |
| template<typename T > |
| void | set_push_constant_size () |
| | Set push constant size from type.
|
| |
| template<typename T > |
| void | set_push_constant_data (const T &data) |
| | Update push constant data (type-safe)
|
| |
| void | set_push_constant_data_raw (const void *data, size_t size) |
| | Update push constant data (raw bytes)
|
| |
| const std::vector< uint8_t > & | get_push_constant_data () const |
| | Get current push constant data.
|
| |
| std::vector< uint8_t > & | get_push_constant_data () |
| |
| void | set_specialization_constant (uint32_t constant_id, uint32_t value) |
| | Set specialization constant.
|
| |
| void | clear_specialization_constants () |
| | Clear all specialization constants.
|
| |
| void | set_config (const ShaderConfig &config) |
| | Update entire configuration.
|
| |
| const ShaderConfig & | get_config () const |
| | Get current configuration.
|
| |
| void | add_binding (const std::string &descriptor_name, const ShaderBinding &binding) |
| | Add descriptor binding configuration.
|
| |
| virtual BufferUsageHint | get_buffer_usage_hint (const std::string &descriptor_name) const |
| | Get buffer usage hint for a descriptor.
|
| |
| virtual bool | is_in_place_operation (const std::string &descriptor_name) const |
| | Check if shader modifies a specific buffer in-place.
|
| |
| bool | has_binding (const std::string &descriptor_name) const |
| | Check if a descriptor binding exists.
|
| |
| std::vector< std::string > | get_binding_names () const |
| | Get all configured descriptor names.
|
| |
| bool | are_bindings_complete () const |
| | Check if all required bindings are satisfied.
|
| |
| bool | is_shader_loaded () const |
| | Check if shader is loaded.
|
| |
| bool | are_descriptors_ready () const |
| | Check if descriptors are initialized.
|
| |
| size_t | get_bound_buffer_count () const |
| | Get number of bound buffers.
|
| |
| virtual std::shared_ptr< VKBuffer > | get_output_buffer () const |
| | Get the output buffer after compute dispatch.
|
| |
| virtual bool | has_executed () const |
| | Check if compute has been executed at least once.
|
| |
| virtual | ~BufferProcessor ()=default |
| | Virtual destructor for proper cleanup of derived classes.
|
| |
| void | process (const std::shared_ptr< Buffer > &buffer) |
| | Applies a computational transformation to the data in the provided buffer.
|
| |
| virtual void | set_processing_token (ProcessingToken token) |
| | Gets the preferred processing backend for this processor.
|
| |
| virtual ProcessingToken | get_processing_token () const |
| | Gets the current processing token for this buffer.
|
| |