@ -4551,7 +4551,7 @@ void ImGui::Render()
ImGui : : EndFrame ( ) ;
g . FrameCountRendered = g . FrameCount ;
// Gather window s to render
// Gather ImDra wL ist to render (for each active window)
g . IO . MetricsRenderVertices = g . IO . MetricsRenderIndices = g . IO . MetricsRenderWindows = 0 ;
g . DrawDataBuilder . Clear ( ) ;
ImGuiWindow * windows_to_render_front_most [ 2 ] ;
@ -4569,19 +4569,9 @@ void ImGui::Render()
g . DrawDataBuilder . FlattenIntoSingleLayer ( ) ;
// Draw software mouse cursor if requested
ImVec2 offset , size , uv [ 4 ] ;
if ( g . IO . MouseDrawCursor & & g . IO . Fonts - > GetMouseCursorTexData ( g . MouseCursor , & offset , & size , & uv [ 0 ] , & uv [ 2 ] ) )
{
const ImVec2 pos = g . IO . MousePos - offset ;
const ImTextureID tex_id = g . IO . Fonts - > TexID ;
const float sc = g . Style . MouseCursorScale ;
g . OverlayDrawList . PushTextureID ( tex_id ) ;
g . OverlayDrawList . AddImage ( tex_id , pos + ImVec2 ( 1 , 0 ) * sc , pos + ImVec2 ( 1 , 0 ) * sc + size * sc , uv [ 2 ] , uv [ 3 ] , IM_COL32 ( 0 , 0 , 0 , 48 ) ) ; // Shadow
g . OverlayDrawList . AddImage ( tex_id , pos + ImVec2 ( 2 , 0 ) * sc , pos + ImVec2 ( 2 , 0 ) * sc + size * sc , uv [ 2 ] , uv [ 3 ] , IM_COL32 ( 0 , 0 , 0 , 48 ) ) ; // Shadow
g . OverlayDrawList . AddImage ( tex_id , pos , pos + size * sc , uv [ 2 ] , uv [ 3 ] , IM_COL32 ( 0 , 0 , 0 , 255 ) ) ; // Black border
g . OverlayDrawList . AddImage ( tex_id , pos , pos + size * sc , uv [ 0 ] , uv [ 1 ] , IM_COL32 ( 255 , 255 , 255 , 255 ) ) ; // White fill
g . OverlayDrawList . PopTextureID ( ) ;
}
if ( g . IO . MouseDrawCursor )
RenderMouseCursor ( & g . OverlayDrawList , g . IO . MousePos , g . Style . MouseCursorScale , g . MouseCursor ) ;
if ( ! g . OverlayDrawList . VtxBuffer . empty ( ) )
AddDrawListToDrawData ( & g . DrawDataBuilder . Layers [ 0 ] , & g . OverlayDrawList ) ;
@ -4787,19 +4777,6 @@ void ImGui::RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding)
}
}
// Render an arrow. 'pos' is position of the arrow tip. half_sz.x is length from base to tip. half_sz.y is length on each side.
void ImGui : : RenderArrowPointingAt ( ImDrawList * draw_list , ImVec2 pos , ImVec2 half_sz , ImGuiDir direction , ImU32 col )
{
switch ( direction )
{
case ImGuiDir_Left : draw_list - > AddTriangleFilled ( ImVec2 ( pos . x + half_sz . x , pos . y - half_sz . y ) , ImVec2 ( pos . x + half_sz . x , pos . y + half_sz . y ) , pos , col ) ; return ;
case ImGuiDir_Right : draw_list - > AddTriangleFilled ( ImVec2 ( pos . x - half_sz . x , pos . y + half_sz . y ) , ImVec2 ( pos . x - half_sz . x , pos . y - half_sz . y ) , pos , col ) ; return ;
case ImGuiDir_Up : draw_list - > AddTriangleFilled ( ImVec2 ( pos . x + half_sz . x , pos . y + half_sz . y ) , ImVec2 ( pos . x - half_sz . x , pos . y + half_sz . y ) , pos , col ) ; return ;
case ImGuiDir_Down : draw_list - > AddTriangleFilled ( ImVec2 ( pos . x - half_sz . x , pos . y - half_sz . y ) , ImVec2 ( pos . x + half_sz . x , pos . y - half_sz . y ) , pos , col ) ; return ;
case ImGuiDir_None : case ImGuiDir_COUNT : break ; // Fix warnings
}
}
// Render an arrow aimed to be aligned with text (p_min is a position in the same space text would be positioned). To e.g. denote expanded/collapsed state
void ImGui : : RenderArrow ( ImVec2 p_min , ImGuiDir dir , float scale )
{