mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-27 04:35:34 +08:00
[feat] add fps display in net traffic stats window
This commit is contained in:
@@ -314,6 +314,11 @@ int Render::NetTrafficStats(std::shared_ptr<SubStreamWindowProperties>& props) {
|
|||||||
ImGui::TableNextColumn();
|
ImGui::TableNextColumn();
|
||||||
LossRateDisplay(props->net_traffic_stats_.total_inbound_stats.loss_rate);
|
LossRateDisplay(props->net_traffic_stats_.total_inbound_stats.loss_rate);
|
||||||
|
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::Text("FPS");
|
||||||
|
ImGui::TableNextColumn();
|
||||||
|
ImGui::Text("%d", props->fps_);
|
||||||
|
|
||||||
ImGui::EndTable();
|
ImGui::EndTable();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ class Render {
|
|||||||
float control_window_min_width_ = 20;
|
float control_window_min_width_ = 20;
|
||||||
float control_window_max_width_ = 230;
|
float control_window_max_width_ = 230;
|
||||||
float control_window_min_height_ = 40;
|
float control_window_min_height_ = 40;
|
||||||
float control_window_max_height_ = 150;
|
float control_window_max_height_ = 170;
|
||||||
float control_window_width_ = 230;
|
float control_window_width_ = 230;
|
||||||
float control_window_height_ = 40;
|
float control_window_height_ = 40;
|
||||||
float control_bar_pos_x_ = 0;
|
float control_bar_pos_x_ = 0;
|
||||||
@@ -110,6 +110,9 @@ class Render {
|
|||||||
ImVec2 control_window_pos_;
|
ImVec2 control_window_pos_;
|
||||||
ConnectionStatus connection_status_ = ConnectionStatus::Closed;
|
ConnectionStatus connection_status_ = ConnectionStatus::Closed;
|
||||||
TraversalMode traversal_mode_ = TraversalMode::UnknownMode;
|
TraversalMode traversal_mode_ = TraversalMode::UnknownMode;
|
||||||
|
int fps_ = 0;
|
||||||
|
int frame_count_ = 0;
|
||||||
|
std::chrono::steady_clock::time_point last_time_;
|
||||||
XNetTrafficStats net_traffic_stats_;
|
XNetTrafficStats net_traffic_stats_;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -233,6 +233,20 @@ void Render::OnReceiveVideoBufferCb(const XVideoFrame* video_frame,
|
|||||||
event.user.data1 = props;
|
event.user.data1 = props;
|
||||||
SDL_PushEvent(&event);
|
SDL_PushEvent(&event);
|
||||||
props->streaming_ = true;
|
props->streaming_ = true;
|
||||||
|
|
||||||
|
if (props->net_traffic_stats_button_pressed_) {
|
||||||
|
props->frame_count_++;
|
||||||
|
auto now = std::chrono::steady_clock::now();
|
||||||
|
auto elapsed = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
|
now - props->last_time_)
|
||||||
|
.count();
|
||||||
|
|
||||||
|
if (elapsed >= 1000) {
|
||||||
|
props->fps_ = props->frame_count_ * 1000 / elapsed;
|
||||||
|
props->frame_count_ = 0;
|
||||||
|
props->last_time_ = now;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user