|
@@ -933,7 +933,7 @@ static void SetClipboardTextFn_DefaultImpl(void* user_data, const ch
|
|
|
static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y);
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
-// Context
|
|
|
+// Context and Memory Allocators
|
|
|
//-----------------------------------------------------------------------------
|
|
|
|
|
|
// Current context pointer. Implicitly used by all ImGui functions. Always assumed to be != NULL.
|
|
@@ -960,7 +960,6 @@ static void FreeWrapper(void* ptr, void* user_data) { (void)user_data;
|
|
|
static void* (*GImAllocatorAllocFunc)(size_t size, void* user_data) = MallocWrapper;
|
|
|
static void (*GImAllocatorFreeFunc)(void* ptr, void* user_data) = FreeWrapper;
|
|
|
static void* GImAllocatorUserData = NULL;
|
|
|
-static size_t GImAllocatorActiveAllocationsCount = 0;
|
|
|
|
|
|
//-----------------------------------------------------------------------------
|
|
|
// User facing structures
|
|
@@ -2845,13 +2844,16 @@ float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x)
|
|
|
|
|
|
void* ImGui::MemAlloc(size_t size)
|
|
|
{
|
|
|
- GImAllocatorActiveAllocationsCount++;
|
|
|
+ if (ImGuiContext* ctx = GImGui)
|
|
|
+ ctx->IO.MetricsActiveAllocations++;
|
|
|
return GImAllocatorAllocFunc(size, GImAllocatorUserData);
|
|
|
}
|
|
|
|
|
|
void ImGui::MemFree(void* ptr)
|
|
|
{
|
|
|
- if (ptr) GImAllocatorActiveAllocationsCount--;
|
|
|
+ if (ptr)
|
|
|
+ if (ImGuiContext* ctx = GImGui)
|
|
|
+ ctx->IO.MetricsActiveAllocations--;
|
|
|
return GImAllocatorFreeFunc(ptr, GImAllocatorUserData);
|
|
|
}
|
|
|
|
|
@@ -14032,7 +14034,7 @@ void ImGui::ShowMetricsWindow(bool* p_open)
|
|
|
ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
|
|
|
ImGui::Text("%d vertices, %d indices (%d triangles)", io.MetricsRenderVertices, io.MetricsRenderIndices, io.MetricsRenderIndices / 3);
|
|
|
ImGui::Text("%d active windows (%d visible)", io.MetricsActiveWindows, io.MetricsRenderWindows);
|
|
|
- ImGui::Text("%d allocations", (int)GImAllocatorActiveAllocationsCount);
|
|
|
+ ImGui::Text("%d allocations", io.MetricsActiveAllocations);
|
|
|
ImGui::Checkbox("Show clipping rectangles when hovering draw commands", &show_draw_cmd_clip_rects);
|
|
|
ImGui::Checkbox("Ctrl shows window begin order", &show_window_begin_order);
|
|
|
|