scene/tables/regions.h
| Line | Branch | Exec | Source |
|---|---|---|---|
| 1 | // SPDX-License-Identifier: BSD-3-Clause | ||
| 2 | #pragma once | ||
| 3 | |||
| 4 | #include <cstdint> | ||
| 5 | #include <span> | ||
| 6 | #include <vector> | ||
| 7 | |||
| 8 | namespace chrono::batch_render { | ||
| 9 | |||
| 10 | 769 | class Regions { | |
| 11 | public: | ||
| 12 | void Assign(std::vector<std::vector<uint32_t>> lists); | ||
| 13 | bool Replace(uint32_t region, std::span<const uint32_t> items); | ||
| 14 | |||
| 15 | 6960 | uint32_t Size() const { | |
| 16 | 6960 | return uint32_t(m_counts.size()); | |
| 17 | } | ||
| 18 | |||
| 19 | 2291 | std::span<const uint32_t> Items() const { | |
| 20 | 2152 | return m_items; | |
| 21 | } | ||
| 22 | |||
| 23 | 1583 | std::span<const uint32_t> Starts() const { | |
| 24 | 1583 | return m_starts; | |
| 25 | } | ||
| 26 | |||
| 27 | 6750 | std::span<const uint32_t> Counts() const { | |
| 28 | 6680 | return m_counts; | |
| 29 | } | ||
| 30 | |||
| 31 | 1896 | uint32_t Capacity(uint32_t region) const { | |
| 32 | 1896 | return m_starts[region + 1] - m_starts[region]; | |
| 33 | } | ||
| 34 | |||
| 35 | 143 | std::span<const uint32_t> Items(uint32_t region) const { | |
| 36 | 143 | return std::span(m_items).subspan(m_starts[region], m_counts[region]); | |
| 37 | } | ||
| 38 | |||
| 39 | private: | ||
| 40 | std::vector<uint32_t> m_items; | ||
| 41 | std::vector<uint32_t> m_starts; | ||
| 42 | std::vector<uint32_t> m_counts; | ||
| 43 | }; | ||
| 44 | |||
| 45 | } | ||
| 46 |