improve file selector performance (20% in my extreme case)
Some checks failed
ContinuousDelivery / windows (push) Waiting to run
ContinuousDelivery / windows-asan (push) Waiting to run
ContinuousDelivery / release (push) Blocked by required conditions
ContinuousIntegration / macos (push) Waiting to run
ContinuousIntegration / windows (push) Waiting to run
ContinuousDelivery / linux-ubuntu (push) Failing after 5m28s
ContinuousDelivery / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android]) (push) Failing after 6m33s
ContinuousDelivery / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android]) (push) Failing after 6m30s
ContinuousIntegration / linux (push) Successful in 4m25s
ContinuousIntegration / android (map[ndk_abi:arm64-v8a vcpkg_toolkit:arm64-android]) (push) Failing after 6m33s
ContinuousIntegration / android (map[ndk_abi:x86_64 vcpkg_toolkit:x64-android]) (push) Failing after 6m13s

This commit is contained in:
Green Sky 2024-08-13 12:30:42 +02:00
parent 08c9ba3983
commit 73afcfaaeb
No known key found for this signature in database

View File

@ -199,7 +199,11 @@ void FileSelector::render(void) {
} }
// files // files
for (auto const& dir_entry : files) { ImGuiListClipper files_clipper;
files_clipper.Begin(files.size());
while (files_clipper.Step()) {
for (int row = files_clipper.DisplayStart; row < files_clipper.DisplayEnd; row++) {
const auto& dir_entry = files.at(row);
if (ImGui::TableNextColumn()) { if (ImGui::TableNextColumn()) {
ImGui::PushID(tmp_id++); ImGui::PushID(tmp_id++);
if (ImGui::Selectable("F", false, ImGuiSelectableFlags_SpanAllColumns | ImGuiSelectableFlags_AllowItemOverlap)) { if (ImGui::Selectable("F", false, ImGuiSelectableFlags_SpanAllColumns | ImGuiSelectableFlags_AllowItemOverlap)) {
@ -228,6 +232,7 @@ void FileSelector::render(void) {
ImGui::TextDisabled("%2d.%2d.%2d - %2d:%2d", ltime->tm_mday, ltime->tm_mon, ltime->tm_year + 1900, ltime->tm_hour, ltime->tm_min); ImGui::TextDisabled("%2d.%2d.%2d - %2d:%2d", ltime->tm_mday, ltime->tm_mon, ltime->tm_year + 1900, ltime->tm_hour, ltime->tm_min);
} }
} }
}
ImGui::EndTable(); ImGui::EndTable();
} }