41 void set_bytes(
const std::vector<uint8_t>& bytes);
49 SliceId add_slice(
const std::vector<uint8_t>& bytes,
50 std::optional<Portal::Graphics::PrimitiveTopology>
topology = std::nullopt);
53 void update_slice(
SliceId id,
const std::vector<uint8_t>& bytes);
59 void set_slice_visible(
SliceId id,
bool visible);
62 void bring_slice_to_front(
SliceId id);
65 void send_slice_to_back(
SliceId id);
68 [[nodiscard]]
size_t slice_count() const noexcept {
return m_slices.size(); }
71 [[nodiscard]]
bool has_slice(
SliceId id)
const noexcept {
return m_slices.contains(
id); }
74 [[nodiscard]]
bool has_pending() const noexcept;
87 void set_texture(
std::shared_ptr<Core::VKImage>
image,
std::
string binding);
92 void processing_function(const
std::shared_ptr<
Buffer>&
buffer) override;
96 std::shared_ptr<Core::VKImage>
image;
101 uint32_t m_stride { 0 };
105 bool m_changed {
false };
113 [[nodiscard]] std::span<const uint8_t> whole_vertices(
const std::vector<uint8_t>& bytes)
const noexcept;
114 void apply_runs(
const std::shared_ptr<VKBuffer>&
buffer);