// Copyright 2020 yuzu Emulator Project // Licensed under GPLv2 or any later version // Refer to the license.txt file included. #pragma once #include #include #include #include namespace VideoCommon { template class DelayedDestructionRing { public: void Tick() { index = (index + 1) % TICKS_TO_DESTROY; elements[index].clear(); } void Push(T&& object) { elements[index].push_back(std::move(object)); } private: size_t index = 0; std::array, TICKS_TO_DESTROY> elements; }; } // namespace VideoCommon