// Clamp into visible area while not overlapping the cursor. Safety padding is optional if our popup size won't fit without it.
// r_avoid = the rectangle to avoid (e.g. for tooltip it is a rectangle around the mouse cursor which we want to avoid. for popups it's a small point around the cursor.)
// r_outer = the visible area rectangle, minus safe area padding. If our popup size won't fit because of safe area padding we ignore it.
ImRectrect_to_avoid(ref_pos.x-16,ref_pos.y-8,ref_pos.x+24,ref_pos.y+24);// FIXME: Completely hard-coded. Perhaps center on cursor hit-point instead?
ImRectrect_to_avoid(ref_pos.x-16,ref_pos.y-8,ref_pos.x+24,ref_pos.y+24);// FIXME: Completely hard-coded. Store boxes in mouse cursor data? Scale? Center on cursor hit-point?
window->PosFloat=ref_pos+ImVec2(2,2);// If there's not enough room, for tooltip we prefer avoiding the cursor at all cost even if it means that part of the tooltip won't be visible.
IMGUI_APIboolIsRectVisible(constImVec2&rect_min,constImVec2&rect_max);// test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side.
IMGUI_APIfloatGetTime();
IMGUI_APIintGetFrameCount();
IMGUI_APIImDrawList*GetOverlayDrawList();// this draw list will be the last rendered one, useful to quickly draw overlays shapes/text
IMGUI_APIImVec2CalcItemRectClosestPoint(constImVec2&pos,boolon_edge=false,floatoutward=+0.0f);// utility to find the closest point the last item bounding rectangle edge. useful to visually link items
ImGui::SameLine();ShowHelpMarker("Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. If software cursor rendering (io.MouseDrawCursor) is set ImGui will draw the right cursor for you, otherwise your backend needs to handle it.");