升级
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <cmath>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <numbers>
|
||||
#include <span>
|
||||
@@ -94,6 +95,20 @@ public:
|
||||
|
||||
void set_client_metrics(Gallery_Client_Performance metrics) noexcept override {
|
||||
client_ = metrics;
|
||||
constexpr double maximum_interval_ms =
|
||||
static_cast<double>(std::numeric_limits<std::uint64_t>::max()) /
|
||||
1'000'000.0;
|
||||
if (metrics.display_interval_latest_ms <= 0.0 ||
|
||||
metrics.display_interval_latest_ms > maximum_interval_ms) return;
|
||||
const auto observed_interval_ns = static_cast<std::uint64_t>(
|
||||
metrics.display_interval_latest_ms * 1'000'000.0);
|
||||
if (observed_interval_ns == 0) return;
|
||||
const auto strategy = scene_->frame_control_strategy();
|
||||
if (auto* low_latency =
|
||||
dynamic_cast<Low_Latency_Render_Scene_2D_Strategy*>(strategy.get())) {
|
||||
static_cast<void>(low_latency->set_consumer_feedback(
|
||||
Frame_Consumer_Feedback{observed_interval_ns}));
|
||||
}
|
||||
}
|
||||
|
||||
adminive::Update_Result apply_patch(
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
|
||||
#include <algorithm>
|
||||
#include <chrono>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -87,6 +88,20 @@ public:
|
||||
void reset_monitoring() override { render_count_ = 0; }
|
||||
void set_client_metrics(Gallery_Client_Performance metrics) noexcept override {
|
||||
client_ = metrics;
|
||||
constexpr double maximum_interval_ms =
|
||||
static_cast<double>(std::numeric_limits<std::uint64_t>::max()) /
|
||||
1'000'000.0;
|
||||
if (metrics.display_interval_latest_ms <= 0.0 ||
|
||||
metrics.display_interval_latest_ms > maximum_interval_ms) return;
|
||||
const auto observed_interval_ns = static_cast<std::uint64_t>(
|
||||
metrics.display_interval_latest_ms * 1'000'000.0);
|
||||
if (observed_interval_ns == 0) return;
|
||||
const auto strategy = scene_->frame_control_strategy();
|
||||
if (auto* low_latency =
|
||||
dynamic_cast<Low_Latency_Render_Scene_3D_Strategy*>(strategy.get())) {
|
||||
static_cast<void>(low_latency->set_consumer_feedback(
|
||||
Frame_Consumer_Feedback{observed_interval_ns}));
|
||||
}
|
||||
}
|
||||
adminive::Update_Result apply_patch(
|
||||
std::string_view, const nlohmann::json&) override {
|
||||
|
||||
Reference in New Issue
Block a user