17namespace render_graph {
22#if (defined(__GNUC__) && __GNUC__ >= 14 && !defined(__clang__))
23# pragma GCC diagnostic push
26# pragma GCC diagnostic ignored "-Wtemplate-id-cdtor"
87 return id_ == other.id_;
92 return id_ != other.id_;
121 : submission_tracker_(other.submission_tracker_),
122 tracked_resources_(std::move(other.tracked_resources_))
128 submission_tracker_ = other.submission_tracker_;
129 tracked_resources_ = std::move(other.tracked_resources_);
135 free_tracked_resources();
156 if (submission_tracker_.
is_changed(context)) {
157 free_tracked_resources();
160 else if (is_dirty || tracked_resources_.
is_empty()) {
176 return !tracked_resources_.
is_empty();
185 return tracked_resources_.
last();
189 void free_tracked_resources()
191 tracked_resources_.
clear();
195#if (defined(__GNUC__) && __GNUC__ >= 14 && !defined(__clang__))
196# pragma GCC diagnostic pop
void reset()
clear internal cached data and reset random seed
void append(const T &value)
const T & last(const int64_t n=0) const
VKResourceTracker()=default
std::unique_ptr< Resource > & tracked_resource_for(VKContext &context, const bool is_dirty)
virtual ~VKResourceTracker()
std::unique_ptr< Resource > & active_resource()
bool has_active_resource()
VKResourceTracker< Resource > & operator=(VKResourceTracker< Resource > &&other)
virtual std::unique_ptr< Resource > create_resource(VKContext &context)=0
bool is_changed(const VKContext &context)
const VKSubmissionID & operator=(const VKSubmissionID &other)
bool operator==(const VKSubmissionID &other)
bool operator!=(const VKSubmissionID &other)