2#include "Rendering/ITextures.h"
37 std::vector<Slot> slots;
38 std::list<uint32_t> slotsLRU;
39 std::unordered_map<TileKey, uint32_t> slotsLUT;
49 unsigned checkTile(
const uint64_t tilekey,
const uint32_t nodeTimestamp,
const uint32_t currentTimestamp);
51 void enforceOrder(
const uint32_t currentTimestamp);
53 glm::uvec4 slotPosition(
const OctComponent& octComp,
const uint64_t tileKey)
const;
63 std::vector<Item> toCopy;
64 std::vector<Item> stagingUnused;
66 void handleStaging(
const DrawContext * renderingContext,
OctComponent& octComp,
OctData& octData,
const uint32_t currentTimestamp,
unsigned delay = 3);
68 void reset(
const DrawContext * renderingContext,
const OctData& octData,
const uint32_t tileSize,
const uint32_t gpuCacheSize,
const uint32_t currentTimestamp);
Contains all Cogs related functionality.
uint32_t timestampNeeded
Timestamp of last time this slot was needed (used for cache eviction).
uint32_t timestapUpdated
Timestamp of most recent update (i.e. age of contents).
@ Invalid
Set when the tile should be rebuilt.
@ NoData
Set when data is for a fresh tile when we don't even have outdated data.
@ InStaging
Set while the tile is in the staging queue. It has updated data, but it isn't available yet.