diff options
author | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-02 00:36:34 +0200 |
---|---|---|
committer | Stanislaw Halik <sthalik@misaki.pl> | 2022-10-02 00:36:34 +0200 |
commit | 742579ca2fce1effe942928f5b94401e1e723f34 (patch) | |
tree | ba11651aecd68edc12d3f5c69c04b6c2f6c2ee79 /chunk.cpp | |
parent | 3dc6362599e85c9978ec4e9676ebcda3ab52beaf (diff) |
foo
Diffstat (limited to 'chunk.cpp')
-rw-r--r-- | chunk.cpp | 48 |
1 files changed, 0 insertions, 48 deletions
@@ -2,52 +2,4 @@ namespace Magnum::Examples { -chunk_sampler_array::chunk_sampler_array() -{ - samplers.reserve(MAX_SAMPLERS); - samplers.push_back(nullptr); -} - -void chunk_sampler_array::ensure_sampler(std::size_t tile_id, const shared_sampler& x) -{ - CORRADE_INTERNAL_ASSERT(x != nullptr); - CORRADE_INTERNAL_ASSERT(tile_id < TILE_COUNT); - if (std::size_t id = sampler_map[tile_id]; id != 0) - { - const shared_sampler& old_sampler = samplers[id]; - if (x == old_sampler) - return; - } - CORRADE_INTERNAL_ASSERT(samplers.size() < MAX_SAMPLERS); - const auto id = (std::uint8_t)samplers.size(); - samplers.push_back(x); - sampler_map[tile_id] = id; -} - -void chunk_sampler_array::clear() -{ - Magnum::GL::AbstractTexture::unbindImages(0, samplers.size()); - samplers.clear(); - samplers.push_back(nullptr); - sampler_map = {}; -} - -void chunk_sampler_array::bind() -{ - Magnum::GL::AbstractTexture::unbindImages(0, MAX_SAMPLERS); - for (std::size_t i = 1; i < samplers.size(); i++) - samplers[i]->texture().bind((int)i); -} - -std::shared_ptr<tile_atlas> chunk_sampler_array::operator[](std::size_t tile_id) const -{ - CORRADE_INTERNAL_ASSERT(tile_id < TILE_COUNT); - std::size_t sampler_id = sampler_map[tile_id]; - CORRADE_INTERNAL_ASSERT(sampler_id != 0); - CORRADE_INTERNAL_ASSERT(sampler_id < samplers.size()); - const auto& sampler = samplers[sampler_id]; - CORRADE_INTERNAL_ASSERT(sampler != nullptr); - return sampler; -} - } // namespace Magnum::Examples |