展示优化
This commit is contained in:
+3
-20
@@ -123,7 +123,7 @@ void Abs_Plot::paintEvent(QPaintEvent* event) {
|
||||
|
||||
bool Abs_Plot::event(QEvent* event) {
|
||||
bool base_result = QWidget::event(event);
|
||||
return d->event(this, event, base_result);
|
||||
return d->event(event, base_result);
|
||||
}
|
||||
|
||||
void Abs_Plot_Private::paint_event(Abs_Plot* plot, QPaintEvent* event) {
|
||||
@@ -155,19 +155,7 @@ void Abs_Plot_Private::paint_event(Abs_Plot* plot, QPaintEvent* event) {
|
||||
core->end_present(std::move(frame), paint_begin_time, steady_now_ns());
|
||||
}
|
||||
|
||||
void Abs_Plot_Private::request_performance_overlay_update(Abs_Plot* plot) {
|
||||
if (!plot || performance_update_pending->exchange(true, std::memory_order_acq_rel))
|
||||
return;
|
||||
QPointer<Abs_Plot> guarded_plot(plot);
|
||||
auto pending = performance_update_pending;
|
||||
QTimer::singleShot(0, plot, [guarded_plot, pending]() mutable {
|
||||
pending->store(false, std::memory_order_release);
|
||||
if (guarded_plot)
|
||||
guarded_plot->update();
|
||||
});
|
||||
}
|
||||
|
||||
bool Abs_Plot_Private::event(Abs_Plot* plot, QEvent* event, bool base_result) {
|
||||
bool Abs_Plot_Private::event(QEvent* event, bool base_result) {
|
||||
switch (event->type()) {
|
||||
case QEvent::Resize: {
|
||||
auto* resize_event = static_cast<QResizeEvent*>(event);
|
||||
@@ -190,8 +178,7 @@ bool Abs_Plot_Private::event(Abs_Plot* plot, QEvent* event, bool base_result) {
|
||||
break;
|
||||
}
|
||||
case QEvent::Leave: {
|
||||
if (performance_overlay_handle_pointer_leave(*core))
|
||||
request_performance_overlay_update(plot);
|
||||
performance_overlay_handle_pointer_leave(*core);
|
||||
Event leave_event(Event_Type::Leave);
|
||||
core->dispatch_event(leave_event);
|
||||
break;
|
||||
@@ -200,7 +187,6 @@ bool Abs_Plot_Private::event(Abs_Plot* plot, QEvent* event, bool base_result) {
|
||||
auto wheel_event = Qt_Event_Adapter::to_wheel_event(static_cast<QWheelEvent*>(event));
|
||||
if (performance_overlay_handle_wheel(*core, wheel_event.position, wheel_event.angle_delta_y, wheel_event.pixel_delta_y)) {
|
||||
event->accept();
|
||||
request_performance_overlay_update(plot);
|
||||
return true;
|
||||
}
|
||||
core->dispatch_event(wheel_event);
|
||||
@@ -210,7 +196,6 @@ bool Abs_Plot_Private::event(Abs_Plot* plot, QEvent* event, bool base_result) {
|
||||
auto pointer_event = Qt_Event_Adapter::to_pointer_event(static_cast<QMouseEvent*>(event), Event_Type::Pointer_Move);
|
||||
if (performance_overlay_handle_pointer_move(*core, pointer_event.position)) {
|
||||
event->accept();
|
||||
request_performance_overlay_update(plot);
|
||||
return true;
|
||||
}
|
||||
core->dispatch_event(pointer_event);
|
||||
@@ -221,7 +206,6 @@ bool Abs_Plot_Private::event(Abs_Plot* plot, QEvent* event, bool base_result) {
|
||||
auto pointer_event = Qt_Event_Adapter::to_pointer_event(mouse_event, Event_Type::Pointer_Press);
|
||||
if (mouse_event->button() == Qt::LeftButton && performance_overlay_handle_pointer_press(*core, pointer_event.position)) {
|
||||
event->accept();
|
||||
request_performance_overlay_update(plot);
|
||||
return true;
|
||||
}
|
||||
core->dispatch_event(pointer_event);
|
||||
@@ -232,7 +216,6 @@ bool Abs_Plot_Private::event(Abs_Plot* plot, QEvent* event, bool base_result) {
|
||||
auto pointer_event = Qt_Event_Adapter::to_pointer_event(mouse_event, Event_Type::Pointer_Release);
|
||||
if (mouse_event->button() == Qt::LeftButton && performance_overlay_handle_pointer_release(*core, pointer_event.position)) {
|
||||
event->accept();
|
||||
request_performance_overlay_update(plot);
|
||||
return true;
|
||||
}
|
||||
core->dispatch_event(pointer_event);
|
||||
|
||||
Reference in New Issue
Block a user