| 18172 | } |
| 18173 | |
| 18174 | static const char* DebugItemPathQuery_GetResultAsPath(ImGuiDebugItemPathQuery* query, bool hex_encode_non_ascii_chars) |
| 18175 | { |
| 18176 | ImGuiTextBuffer* buf = &query->ResultPathBuf; |
| 18177 | buf->resize(0); |
| 18178 | for (int stack_n = 0; stack_n < query->Results.Size; stack_n++) |
| 18179 | { |
| 18180 | char level_desc[256]; |
| 18181 | DebugItemPathQuery_FormatLevelInfo(query, stack_n, false, level_desc, IM_COUNTOF(level_desc)); |
| 18182 | buf->append(stack_n == 0 ? "//" : "/"); |
| 18183 | for (const char* p = level_desc; *p != 0; ) |
| 18184 | { |
| 18185 | unsigned int c; |
| 18186 | const char* p_next = p + ImTextCharFromUtf8(&c, p, NULL); |
| 18187 | if (c == '/') |
| 18188 | buf->append("\\"); |
| 18189 | if (c < 256 || !hex_encode_non_ascii_chars) |
| 18190 | buf->append(p, p_next); |
| 18191 | else for (; p < p_next; p++) |
| 18192 | buf->appendf("\\x%02x", (unsigned char)*p); |
| 18193 | p = p_next; |
| 18194 | } |
| 18195 | } |
| 18196 | return buf->c_str(); |
| 18197 | } |
| 18198 | |
| 18199 | // ID Stack Tool: Display UI |
| 18200 | void ImGui::ShowIDStackToolWindow(bool* p_open) |
no test coverage detected