重构出Core2

This commit is contained in:
2026-08-10 19:55:29 +08:00
parent db099e16ea
commit ffc96741db
6 changed files with 24 additions and 31 deletions
+1 -1
View File
@@ -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");
+12 -22
View File
@@ -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
View File
@@ -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()),
-1
View File
@@ -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();
}