重构出Core2
This commit is contained in:
@@ -53,7 +53,7 @@ std::pmr::vector<double> make_random_data(renderive::Range range, int size, rend
|
||||
if (range.origin > range.target)
|
||||
std::swap(range.origin, range.target);
|
||||
std::pmr::vector<double> data(renderive::memory_resource(domain));
|
||||
data.resize(size);
|
||||
data.resize(static_cast<std::size_t>(std::max(0, size)));
|
||||
renderive::fill_data(range, data);
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ QWidget* Intermediate_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
object_name = "Spectrum_Plot";
|
||||
setObjectName("Spectrum_Plot");
|
||||
auto data = create_renderable_node(root_renderable(), "Data_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(root_renderable(), "Frequency_Axis_Cache");
|
||||
auto power_axis_cache = create_renderable_node(root_renderable(), "Power_Axis_Cache");
|
||||
@@ -91,7 +91,7 @@ QWidget* Intermediate_Frequency_Widget::create_Afterglow_Plot() {
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
object_name = "Afterglow_Plot";
|
||||
setObjectName("Afterglow_Plot");
|
||||
auto data = create_renderable_node(root_renderable(), "Data_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(root_renderable(), "Frequency_Axis_Cache");
|
||||
auto power_axis_cache = create_renderable_node(root_renderable(), "Power_Axis_Cache");
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "../menu/BaseWidgetMenu.h"
|
||||
#include "BackEnd.h"
|
||||
#include "../BackEnd/MainWidget.h"
|
||||
#include "Core/plottable/export.h"
|
||||
#include "Core2/export.h"
|
||||
#include "module/radio/Tool.h"
|
||||
static double max = 160;
|
||||
static renderive::Range frequent_range = {-12000, 12000};
|
||||
@@ -30,17 +30,11 @@ static void configure_radio_plot_perf(renderive::Latency_Eager_Plot* plot) {
|
||||
}
|
||||
static renderive::Performance_Overlay_Options radio_performance_options() {
|
||||
renderive::Performance_Overlay_Options options;
|
||||
options.font.size = 11.0;
|
||||
options.background = renderive::Color{20, 20, 20, 255};
|
||||
options.foreground = renderive::Color::white();
|
||||
options.section_color = renderive::Color{80, 160, 255, 255};
|
||||
options.label_color = renderive::Color{190, 196, 205, 255};
|
||||
options.value_color = renderive::Color{238, 220, 138, 255};
|
||||
options.unit_color = renderive::Color{150, 156, 165, 255};
|
||||
options.warning_color = renderive::Color{255, 96, 96, 255};
|
||||
options.muted_color = renderive::Color{96, 102, 112, 255};
|
||||
options.scroll_track = renderive::Color{55, 55, 55, 220};
|
||||
options.scroll_thumb = renderive::Color{190, 190, 190, 240};
|
||||
options.style.font.size = 11.0;
|
||||
options.style.background = renderive::Color{20, 20, 20, 255};
|
||||
options.style.section_color = renderive::Color{80, 160, 255, 255};
|
||||
options.style.label_color = renderive::Color{190, 196, 205, 255};
|
||||
options.style.value_color = renderive::Color{238, 220, 138, 255};
|
||||
options.log.enabled = true;
|
||||
options.log.directory = "performance";
|
||||
options.log.session_name = "radio_latency";
|
||||
@@ -55,13 +49,9 @@ static void apply_radio_performance_overlay(renderive::Latency_Eager_Plot* plot,
|
||||
}
|
||||
if (!plot || !plot->core())
|
||||
return;
|
||||
renderive::attach_performance_overlay(*plot->core(), radio_performance_options());
|
||||
renderive::set_performance_plot_name(*plot->core(), plot_name);
|
||||
auto shower = renderive::attach_performance_overlay(*plot->core(), radio_performance_options());
|
||||
if (!shower)
|
||||
return;
|
||||
shower->set_enabled(enabled);
|
||||
if (enabled)
|
||||
renderive::notify_performance_overlay_viewport_changed(*plot->core());
|
||||
renderive::set_performance_overlay_enabled(*plot->core(), enabled);
|
||||
}
|
||||
struct Radio_Plot_Layout {
|
||||
int left_axis_width{};
|
||||
@@ -105,7 +95,7 @@ QWidget* Radio_Widget::create_spectrogram_power_plot() {
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Spectrum_Plot";
|
||||
setObjectName("Spectrum_Plot");
|
||||
auto data = create_renderable_node(root_renderable(), "Data_Renderable");
|
||||
// auto frequency_axis_cache = create_renderable_node(get_root_renderable(), "Frequency_Axis_Cache");
|
||||
// auto power_axis_cache = create_renderable_node(get_root_renderable(), "Power_Axis_Cache");
|
||||
@@ -172,7 +162,7 @@ QWidget* Radio_Widget::create_water_fall_plot() {
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Water_Fall_Plot";
|
||||
setObjectName("Water_Fall_Plot");
|
||||
auto stream_cache = create_renderable_node(root_renderable(), "Waterfall_Stream_Cache");
|
||||
auto data = create_renderable_node(stream_cache, "Data_Renderable");
|
||||
auto time_axis = create_renderable_node(stream_cache, "Time_Axis_Renderable");
|
||||
@@ -230,7 +220,7 @@ QWidget* Radio_Widget::create_audio_spectrogram_plot() {
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Spectrum_Plot";
|
||||
setObjectName("Spectrum_Plot");
|
||||
auto data = create_renderable_node(root_renderable(), "Data_Renderable");
|
||||
auto frequency_axis_cache = create_renderable_node(root_renderable(), "Frequency_Axis_Cache");
|
||||
auto power_axis_cache = create_renderable_node(root_renderable(), "Power_Axis_Cache");
|
||||
@@ -286,7 +276,7 @@ QWidget* Radio_Widget::create_time_power_plot() {
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
configure_radio_plot_perf(this);
|
||||
object_name = "Audio_Plot";
|
||||
setObjectName("Audio_Plot");
|
||||
auto stream_cache = create_renderable_node(root_renderable(), "Audio_Stream_Cache");
|
||||
auto data = create_renderable_node(stream_cache, "Data_Renderable");
|
||||
auto time_axis = create_renderable_node(stream_cache, "Time_Axis_Renderable");
|
||||
|
||||
@@ -20,7 +20,7 @@ QWidget* Sweep_Frequency_Widget::create_spectrogram_power_plot() {
|
||||
QMenu* menu{};
|
||||
void init() override {
|
||||
Latency_Eager_Plot::init();
|
||||
object_name = "Axis_Test_Plot";
|
||||
setObjectName("Axis_Test_Plot");
|
||||
auto data = create_renderable_node(root_renderable(), "Data_Renderable");
|
||||
auto x_axis_cache = create_renderable_node(root_renderable(), "X_Axis_Cache");
|
||||
auto y_axis_cache = create_renderable_node(root_renderable(), "Y_Axis_Cache");
|
||||
|
||||
+8
-4
@@ -272,12 +272,16 @@ static QWidget* create_control(renderive::Abs_Plot* plot, const std::vector<QWid
|
||||
l->setAlignment(Qt::AlignTop);
|
||||
l->setContentsMargins({0, 0, 0, 0});
|
||||
l->setSpacing(0);
|
||||
auto* core = renderive::plot_core(plot);
|
||||
auto* core = plot ? plot->core() : nullptr;
|
||||
const auto overlay = core ? core->performance_overlay() : nullptr;
|
||||
std::vector<QWidget*> ws = {
|
||||
renderive::create_toggle_button("停止性能测试", "启动性能测试", [plot]() {
|
||||
if (auto* current_core = renderive::plot_core(plot))
|
||||
renderive::set_performance_overlay_enabled(*current_core, !renderive::performance_overlay_enabled(*current_core));
|
||||
}, core ? renderive::performance_overlay_enabled(*core) : false),
|
||||
if (auto* current_core = plot ? plot->core() : nullptr) {
|
||||
const auto current_overlay = current_core->performance_overlay();
|
||||
renderive::set_performance_overlay_enabled(
|
||||
*current_core, !(current_overlay && current_overlay->enabled()));
|
||||
}
|
||||
}, overlay && overlay->enabled()),
|
||||
renderive::create_select_color("更改背景色", [plot](const QColor& color) {
|
||||
plot->set_background_color(color);
|
||||
}, plot->background_color()),
|
||||
|
||||
@@ -22,7 +22,6 @@ int main(int argc, char* argv[]) {
|
||||
#endif
|
||||
Main_Widget w;
|
||||
app.main_widget = &w;
|
||||
renderive::start_render_scheduler();
|
||||
w.show();
|
||||
return QApplication::exec();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user