浏览代码

FindWindowByName() comparing hashes.

ocornut 10 年之前
父节点
当前提交
0faf0e6948
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4 3
      imgui.cpp

+ 4 - 3
imgui.cpp

@@ -2615,10 +2615,11 @@ void ImGui::EndChildFrame()
 
 static ImGuiWindow* FindWindowByName(const char* name)
 {
-    // FIXME-OPT: Consider optimizing this (e.g. sorted hashes to window pointers)
+    // FIXME-OPT: Store sorted hashes -> pointers.
+    ImGuiID id = ImCrc32(name, 0, 0);
     ImGuiState& g = *GImGui;
-    for (size_t i = 0; i != g.Windows.size(); i++)
-        if (strcmp(g.Windows[i]->Name, name) == 0)
+    for (size_t i = 0; i < g.Windows.size(); i++)
+        if (g.Windows[i]->ID == id)
             return g.Windows[i];
     return NULL;
 }