DisplaySafeAreaPadding=ImVec2(3,3);// If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows.
MouseCursorScale=1.0f;// Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
AntiAliasedLines=true;// Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU.
TexturedAntiAliasedLines=true;// Draw anti-aliased lines using textures where possible.
CurveTessellationTol=1.25f;// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
CircleSegmentMaxError=1.60f;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
ImVec2DisplaySafeAreaPadding;// If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly!
floatMouseCursorScale;// Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later.
boolAntiAliasedLines;// Enable anti-aliased lines/borders. Disable if you are really tight on CPU/GPU.
boolTexturedAntiAliasedLines;// Draw anti-aliased lines using textures where possible.
boolAntiAliasedFill;// Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). Disable if you are really tight on CPU/GPU.
floatCurveTessellationTol;// Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality.
floatCircleSegmentMaxError;// Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry.
@ -1997,7 +1998,8 @@ enum ImDrawListFlags_
ImDrawListFlags_None=0,
ImDrawListFlags_AntiAliasedLines=1<<0,// Enable anti-aliased lines/borders (*2 the number of triangles for 1.0f wide line or lines thin enough to be drawn using textures, otherwise *3 the number of triangles)
ImDrawListFlags_AntiAliasedFill=1<<1,// Enable anti-aliased edge around filled shapes (rounded rectangles, circles).
ImDrawListFlags_AllowVtxOffset=1<<2// Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.
ImDrawListFlags_AllowVtxOffset=1<<2,// Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled.
ImDrawListFlags_TexturedAALines=1<<3// Should anti-aliased lines be drawn using textures where possible?
};
// Draw command list
@ -2216,7 +2218,8 @@ enum ImFontAtlasFlags_
{
ImFontAtlasFlags_None=0,
ImFontAtlasFlags_NoPowerOfTwoHeight=1<<0,// Don't round the height to next power of two
ImFontAtlasFlags_NoMouseCursors=1<<1// Don't build software mouse cursors into the atlas (save a little texture memory)
ImFontAtlasFlags_NoMouseCursors=1<<1,// Don't build software mouse cursors into the atlas (save a little texture memory)
ImFontAtlasFlags_NoAALines=1<<2// Don't build anti-aliased line textures into the atlas
};
// Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding:
@ -2320,6 +2323,9 @@ struct ImFontAtlas
// [Internal] Packing data
intPackIdMouseCursors;// Custom texture rectangle ID for white pixel and mouse cursors
intAALineMaxWidth;// Maximum line width to build anti-aliased textures for
ImVector<int>AALineRectIds;// Custom texture rectangle IDs for anti-aliased lines
ImVector<ImVec4>TexUvAALines;// UVs for anti-aliased line textures
#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
typedefImFontAtlasCustomRectCustomRect;// OBSOLETED in 1.72+
// This is called/shared by both the stb_truetype and the FreeType builder.
constunsignedintFONT_ATLAS_AA_LINE_TEX_HEIGHT=1;// Technically we only need 1 pixel in the ideal case but this can be increased if necessary to give a border to avoid sampling artifacts
constintwidth=n+1;// The line width this entry corresponds to
// The "width + 3" here is interesting - +2 is to give space for the end caps, but the remaining +1 is because (empirically) to match the behaviour of the untextured render path we need to draw lines one pixel wider
// Each line consists of two empty pixels at the ends, with a line of solid pixels in the middle
*(write_ptr++)=0;
for(unsignedshortx=0;x<(r.Width-2U);x++)
{
*(write_ptr++)=0xFF;
}
*(write_ptr++)=0;
}
ImVec2uv0,uv1;
atlas->CalcCustomRectUV(&r,&uv0,&uv1);
floathalfV=(uv0.y+uv1.y)*0.5f;// Calculate a constant V in the middle of the texture as we want a horizontal slice (with some padding either side to avoid sampling artifacts)
ImVec2ArcFastVtx[12*IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER];// FIXME: Bake rounded corners fill/borders in atlas
ImU8CircleSegmentCounts[64];// Precomputed segment count for given radius (array index + 1) before we calculate it dynamically (to avoid calculation overhead)
ImVector<ImVec4>*TexUvAALines;// UV of anti-aliased lines in the atlas