29 lines
713 B
C++
29 lines
713 B
C++
#pragma once
|
|
#include "Refresh_Strategy.h"
|
|
#include <atomic>
|
|
#include <cstdint>
|
|
#include <memory>
|
|
|
|
namespace renderive {
|
|
|
|
class Latency_Eager_Refresh_Strategy final : public Refresh_Strategy {
|
|
public:
|
|
Latency_Eager_Refresh_Strategy();
|
|
~Latency_Eager_Refresh_Strategy() override;
|
|
|
|
[[nodiscard]] double max_render_fps() const;
|
|
void set_max_render_fps(double fps);
|
|
[[nodiscard]] Refresh_Control_Snapshot feedback_state() const;
|
|
|
|
private:
|
|
[[nodiscard]] Refresh_Action on_trigger(
|
|
Refresh_Trigger trigger,
|
|
const Refresh_Runtime_Snapshot& runtime,
|
|
Frame_Lifecycle_Record* frame) override;
|
|
|
|
struct Private;
|
|
std::unique_ptr<Private> d;
|
|
};
|
|
|
|
} // namespace renderive
|