| 18217 | } |
| 18218 | |
| 18219 | static const char* DebugItemPathQuery_GetResultAsPath(ImGuiDebugItemPathQuery* query, bool hex_encode_non_ascii_chars) |
| 18220 | { |
| 18221 | ImGuiTextBuffer* buf = &query->ResultPathBuf; |
| 18222 | buf->resize(0); |
| 18223 | for (int stack_n = 0; stack_n < query->Results.Size; stack_n++) |
| 18224 | { |
| 18225 | char level_desc[256]; |
| 18226 | DebugItemPathQuery_FormatLevelInfo(query, stack_n, false, level_desc, IM_COUNTOF(level_desc)); |
| 18227 | buf->append(stack_n == 0 ? "//" : "/"); |
| 18228 | for (const char* p = level_desc; *p != 0; ) |
| 18229 | { |
| 18230 | unsigned int c; |
| 18231 | const char* p_next = p + ImTextCharFromUtf8(&c, p, NULL); |
| 18232 | if (c == '/') |
| 18233 | buf->append("\\"); |
| 18234 | if (c < 256 || !hex_encode_non_ascii_chars) |
| 18235 | buf->append(p, p_next); |
| 18236 | else for (; p < p_next; p++) |
| 18237 | buf->appendf("\\x%02x", (unsigned char)*p); |
| 18238 | p = p_next; |
| 18239 | } |
| 18240 | } |
| 18241 | return buf->c_str(); |
| 18242 | } |
| 18243 | |
| 18244 | // ID Stack Tool: Display UI |
| 18245 | void ImGui::ShowIDStackToolWindow(bool* p_open) |
no test coverage detected