2#ifndef LIBSBX_GRAPHICS_BUFFERS_UNIFORM_HANDLER_HPP_
3#define LIBSBX_GRAPHICS_BUFFERS_UNIFORM_HANDLER_HPP_
8#include <libsbx/memory/observer_ptr.hpp>
10#include <libsbx/graphics/pipeline/shader.hpp>
12#include <libsbx/graphics/buffers/uniform_buffer.hpp>
14namespace sbx::graphics {
20 uniform_handler(
const std::optional<shader::uniform_block>& uniform_block = std::nullopt);
22 template<
typename Type>
23 auto push(
const Type&
object, std::size_t size, std::size_t offset) -> void;
25 template<
typename Type>
26 auto push(
const std::string& uniform_name,
const Type&
object, std::size_t size = 0) -> void;
30 auto update(
const std::optional<shader::uniform_block>& uniform_block) -> bool;
34 auto _push(std::span<const std::uint8_t>
buffer, std::size_t offset) -> void;
36 std::optional<shader::uniform_block> _uniform_block;
44#include <libsbx/graphics/buffers/uniform_handler.ipp>
Definition: buffer.hpp:21