1#ifndef LIBSBX_GRAPHICS_DRAW_LIST_HPP_
2#define LIBSBX_GRAPHICS_DRAW_LIST_HPP_
7#include <libsbx/utility/hashed_string.hpp>
8#include <libsbx/utility/logger.hpp>
10#include <libsbx/math/uuid.hpp>
12#include <libsbx/graphics/buffers/storage_buffer.hpp>
13#include <libsbx/graphics/images/image2d.hpp>
14#include <libsbx/graphics/images/separate_sampler.hpp>
15#include <libsbx/graphics/images/separate_image2d_array.hpp>
17namespace sbx::graphics {
28 using storage_buffer_container = std::unordered_map<std::size_t, storage_buffer_handle>;
29 using draw_command_range_container = std::unordered_map<math::uuid, draw_command_range>;
35 virtual auto update() ->
void = 0;
37 auto buffers()
const noexcept ->
const storage_buffer_container&;
45 auto draw_ranges(
const utility::hashed_string& name)
const noexcept ->
const draw_command_range_container&;
47 auto draw_ranges(
const std::size_t hash)
const noexcept ->
const draw_command_range_container&;
51 auto create_buffer(
const utility::hashed_string& name, VkDeviceSize size, VkBufferUsageFlags additional_usage = 0) -> void;
53 template<
typename Type>
70 storage_buffer_container _buffers;
73 std::unordered_map<std::size_t, draw_command_range_container> _draw_ranges;
79#include <libsbx/graphics/draw_list.ipp>
Definition: buffer.hpp:20
Definition: draw_list.hpp:24
Definition: resource_storage.hpp:17
Definition: separate_image2d_array.hpp:15
Definition: separate_sampler.hpp:8
Definition: storage_buffer.hpp:16
Definition: hashed_string.hpp:15
Definition: draw_list.hpp:19