修复 性能测试竞态bug
This commit is contained in:
@@ -20,18 +20,14 @@ namespace YSG {
|
||||
Global::instance()->renderScheduler().registerPlot(this);
|
||||
}
|
||||
bool Plot::usePerformanceShower() {
|
||||
return d->mShower;
|
||||
return d->mShower && d->mShower->enabled();
|
||||
}
|
||||
void Plot::set_usePerformanceShower(bool use) {
|
||||
if(!use) {
|
||||
PerformanceShower* t = d->mShower;
|
||||
d->mShower = nullptr;
|
||||
delete t;
|
||||
} else {
|
||||
if(d->mShower) return;
|
||||
d->mShower = new PerformanceShower(this);
|
||||
d->mShower->show();
|
||||
if(!d->mShower) {
|
||||
d->mShower = new PerformanceShower;
|
||||
d->mShower->init(this, "legend");
|
||||
}
|
||||
d->mShower->setEnabled(use);
|
||||
}
|
||||
|
||||
Plot::~Plot() {
|
||||
@@ -44,6 +40,8 @@ namespace YSG {
|
||||
return d->mActiveRenderTasks.load(std::memory_order_acquire) == 0;
|
||||
});
|
||||
}
|
||||
delete d->mShower;
|
||||
d->mShower = nullptr;
|
||||
delete d;
|
||||
}
|
||||
|
||||
@@ -195,7 +193,6 @@ namespace YSG {
|
||||
QRegion updateRegion = pipeline.publishRenderColor();
|
||||
pipeline.jobState = RenderAble::JobState::Idle;
|
||||
if(!updateRegion.isEmpty()) requestUpdate(updateRegion);
|
||||
if(d->mShower) d->mShower->refresh();
|
||||
if(pipeline.hasNewState()) submitRender();
|
||||
}
|
||||
void Plot::renderColor(RenderAble::ColorBuffer* color, QSize size, QColor background, std::uint64_t version) {
|
||||
|
||||
Reference in New Issue
Block a user