#include #include #include namespace NXKit { std::vector CADisplayLink::activeLinks; CADisplayLink::CADisplayLink(std::function func): func(std::move(func)) { activeLinks.push_back(this); } CADisplayLink::~CADisplayLink() { invalidate(); } void CADisplayLink::invalidate() { if (!isRunning) return; isRunning = false; activeLinks.erase(std::remove(activeLinks.begin(), activeLinks.end(), this), activeLinks.end()); } }