mirror of
https://github.com/OpenSpace/OpenSpace.git
synced 2026-02-25 06:19:02 -06:00
Make performance widget graphs fill from right to left instead of circular
This commit is contained in:
Submodule ext/ghoul updated: 3034cb3d3e...111c53c94c
@@ -43,10 +43,6 @@ struct PerformanceLayout {
|
||||
float renderTime[NumberValues];
|
||||
float updateRenderable[NumberValues];
|
||||
float updateEphemeris[NumberValues];
|
||||
|
||||
int32_t currentRenderTime;
|
||||
int32_t currentUpdateRenderable;
|
||||
int32_t currentUpdateEphemeris;
|
||||
};
|
||||
SceneGraphPerformanceLayout sceneGraphEntries[MaxValues];
|
||||
int16_t nScaleGraphEntries;
|
||||
@@ -54,7 +50,6 @@ struct PerformanceLayout {
|
||||
struct FunctionPerformanceLayout {
|
||||
char name[LengthName];
|
||||
float time[NumberValues];
|
||||
int32_t currentTime;
|
||||
};
|
||||
FunctionPerformanceLayout functionEntries[MaxValues];
|
||||
int16_t nFunctionEntries;
|
||||
|
||||
@@ -175,7 +175,7 @@ void GuiPerformanceComponent::render() {
|
||||
const PerformanceLayout::SceneGraphPerformanceLayout& entry = layout->sceneGraphEntries[indices[i]];
|
||||
|
||||
if (ImGui::CollapsingHeader(entry.name)) {
|
||||
std::string updateEphemerisTime = std::to_string(entry.updateEphemeris[entry.currentUpdateEphemeris - 1]) + "us";
|
||||
std::string updateEphemerisTime = std::to_string(entry.updateEphemeris[PerformanceLayout::NumberValues - 1]) + "us";
|
||||
;
|
||||
ImGui::PlotLines(
|
||||
fmt::format("UpdateEphemeris\nAverage: {}us", averages[indices[i]][0]).c_str(),
|
||||
@@ -188,7 +188,7 @@ void GuiPerformanceComponent::render() {
|
||||
ImVec2(0, 40)
|
||||
);
|
||||
|
||||
std::string updateRenderableTime = std::to_string(entry.updateRenderable[entry.currentUpdateRenderable - 1]) + "us";
|
||||
std::string updateRenderableTime = std::to_string(entry.updateRenderable[PerformanceLayout::NumberValues - 1]) + "us";
|
||||
ImGui::PlotLines(
|
||||
fmt::format("UpdateRender\nAverage: {}us", averages[indices[i]][1]).c_str(),
|
||||
&entry.updateRenderable[0],
|
||||
@@ -200,7 +200,7 @@ void GuiPerformanceComponent::render() {
|
||||
ImVec2(0, 40)
|
||||
);
|
||||
|
||||
std::string renderTime = std::to_string(entry.renderTime[entry.currentRenderTime - 1]) + "us";
|
||||
std::string renderTime = std::to_string(entry.renderTime[PerformanceLayout::NumberValues - 1]) + "us";
|
||||
ImGui::PlotLines(
|
||||
fmt::format("RenderTime\nAverage: {}us", averages[indices[i]][2]).c_str(),
|
||||
&entry.renderTime[0],
|
||||
@@ -246,7 +246,7 @@ void GuiPerformanceComponent::render() {
|
||||
|
||||
const PerformanceLayout::FunctionPerformanceLayout& f = layout->functionEntries[i];
|
||||
|
||||
std::string renderTime = std::to_string(entry.time[entry.currentTime - 1]) + "us";
|
||||
std::string renderTime = std::to_string(entry.time[PerformanceLayout::NumberValues - 1]) + "us";
|
||||
ImGui::PlotLines(
|
||||
fmt::format("{}\nAverage: {}us", entry.name, avg).c_str(),
|
||||
&entry.time[0],
|
||||
|
||||
@@ -104,8 +104,13 @@ void PerformanceManager::storeIndividualPerformanceMeasurement
|
||||
strcpy(p->name, identifier.c_str());
|
||||
#endif
|
||||
|
||||
p->time[p->currentTime] = static_cast<float>(microseconds);
|
||||
p->currentTime = (p->currentTime + 1) % PerformanceLayout::NumberValues;
|
||||
std::rotate(
|
||||
std::begin(p->time),
|
||||
std::next(std::begin(p->time)),
|
||||
std::end(p->time)
|
||||
);
|
||||
p->time[PerformanceLayout::NumberValues - 1] =
|
||||
static_cast<float>(microseconds);
|
||||
|
||||
_performanceMemory->releaseLock();
|
||||
}
|
||||
@@ -134,13 +139,26 @@ void PerformanceManager::storeScenePerformanceMeasurements(
|
||||
SceneGraphNode::PerformanceRecord r = node->performanceRecord();
|
||||
PerformanceLayout::SceneGraphPerformanceLayout& entry = layout->sceneGraphEntries[i];
|
||||
|
||||
entry.renderTime[entry.currentRenderTime] = r.renderTime / 1000.f;
|
||||
entry.updateEphemeris[entry.currentUpdateEphemeris] = r.updateTimeEphemeris / 1000.f;
|
||||
entry.updateRenderable[entry.currentUpdateRenderable] = r.updateTimeRenderable / 1000.f;
|
||||
|
||||
entry.currentRenderTime = (entry.currentRenderTime + 1) % PerformanceLayout::NumberValues;
|
||||
entry.currentUpdateEphemeris = (entry.currentUpdateEphemeris + 1) % PerformanceLayout::NumberValues;
|
||||
entry.currentUpdateRenderable = (entry.currentUpdateRenderable + 1) % PerformanceLayout::NumberValues;
|
||||
std::rotate(
|
||||
std::begin(entry.renderTime),
|
||||
std::next(std::begin(entry.renderTime)),
|
||||
std::end(entry.renderTime)
|
||||
);
|
||||
entry.renderTime[PerformanceLayout::NumberValues - 1] = r.renderTime / 1000.f;
|
||||
|
||||
std::rotate(
|
||||
std::begin(entry.updateEphemeris),
|
||||
std::next(std::begin(entry.updateEphemeris)),
|
||||
std::end(entry.updateEphemeris)
|
||||
);
|
||||
entry.updateEphemeris[PerformanceLayout::NumberValues - 1] = r.updateTimeEphemeris / 1000.f;
|
||||
|
||||
std::rotate(
|
||||
std::begin(entry.updateRenderable),
|
||||
std::next(std::begin(entry.updateRenderable)),
|
||||
std::end(entry.updateRenderable)
|
||||
);
|
||||
entry.updateRenderable[PerformanceLayout::NumberValues - 1] = r.updateTimeRenderable / 1000.f;
|
||||
}
|
||||
_performanceMemory->releaseLock();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user