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.
CircleTessellationMaxError=0.30f;// 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.
WindowShadowSize=100.0f;// Size (in pixels) of window shadows.
WindowShadowOffsetDist=0.0f;// Offset distance (in pixels) of window shadows from casting window.
ImGuiCol_NavWindowingHighlight,// Highlight window when using CTRL+TAB
ImGuiCol_NavWindowingDimBg,// Darken/colorize entire screen behind the CTRL+TAB window list, when active
ImGuiCol_ModalWindowDimBg,// Darken/colorize entire screen behind a modal window, when one is active
ImGuiCol_WindowShadow,// Window shadows
ImGuiCol_COUNT
};
@ -2088,6 +2089,9 @@ struct ImGuiStyle
boolAntiAliasedFill;// Enable anti-aliased edges around filled shapes (rounded rectangles, circles, etc.). Disable if you are really tight on CPU/GPU. Latched at the beginning of the frame (copied to ImDrawList).
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.
floatCircleTessellationMaxError;// 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.
floatWindowShadowSize;// Size (in pixels) of window shadows. Set this to zero to disable shadows.
floatWindowShadowOffsetDist;// Offset distance (in pixels) of window shadows from casting window.
ImDrawFlags_ShadowCutOutShapeBackground=1<<9,// Do not render the shadow shape under the objects to be shadowed to save on fill-rate or facilitate blending. Slower on CPU.
};
// Flags for ImDrawList instance. Those are set automatically by ImGui:: functions from ImGuiIO settings, and generally not manipulated directly.
// - Add shadow for a object, with min/max or center/radius describing the object extents, and offset shifting the shadow.
// - Rounding parameters refer to the object itself, not the shadow!
// - By default, the area under the object is filled, because this is simpler to process.
// Using the ImDrawFlags_ShadowCutOutShapeBackground flag makes the function not render this area and leave a hole under the object.
// - Shadows w/ fill under the object: a bit faster for CPU, more pixels rendered, visible/darkening if used behind a transparent shape.
// Typically used by: small, frequent objects, opaque objects, transparent objects if shadow darkening isn't an issue.
// - Shadows w/ hole under the object: a bit slower for CPU, less pixels rendered, no difference if used behind a transparent shape.
// Typically used by: large, infrequent objects, transparent objects if exact blending/color matter.
// - FIXME-SHADOWS: 'offset' + ImDrawFlags_ShadowCutOutShapeBackground are not currently supported together with AddShadowCircle(), AddShadowConvexPoly(), AddShadowNGon().
// Stateful path API, add points then finish with PathFillConvex() or PathStroke()
// - Important: filled shapes must always use clockwise winding order! The anti-aliasing fringe depends on it. Counter-clockwise shapes will have "inward" anti-aliasing.
// so e.g. 'PathArcTo(center, radius, PI * -0.5f, PI)' is ok, whereas 'PathArcTo(center, radius, PI, PI * -0.5f)' won't have correct anti-aliasing when followed by PathFillConvex().
@ -2934,6 +2956,24 @@ struct ImDrawData
// [SECTION] Font API (ImFontConfig, ImFontGlyph, ImFontAtlasFlags, ImFontAtlas, ImFontGlyphRangesBuilder, ImFont)
intTexEdgeSize;// Size of the edge areas (and by extension the center). Changing this is normally unnecessary.
floatTexFalloffPower;// The power factor for the shadow falloff curve.
floatTexDistanceFieldOffset;// How much to offset the distance field by (allows over/under-shadowing, potentially useful for accommodating rounded corners on the "casting" shape).
boolTexBlur;// Do we want to Gaussian blur the shadow texture?
intGetRectTexPadding()const{return2;}// Number of pixels of padding to add to the rectangular texture to avoid sampling artifacts at the edges.
intCalcRectTexSize()const{returnTexCornerSize+TexEdgeSize+GetRectTexPadding();}// The size of the texture area required for the actual 2x2 rectangle shadow texture (after the redundant corners have been removed). Padding is required here to avoid sampling artifacts at the edge adjoining the removed corners. int CalcConvexTexWidth() const; // The width of the texture area required for the convex shape shadow texture.
intGetConvexTexPadding()const{return8;}// Number of pixels of padding to add to the convex shape texture to avoid sampling artifacts at the edges. This also acts as padding for the expanded corner triangles.
intCalcConvexTexWidth()const;// The width of the texture area required for the convex shape shadow texture.
intCalcConvexTexHeight()const;// The height of the texture area required for the convex shape shadow texture.
};
structImFontConfig
{
void*FontData;// // TTF/OTF data
@ -3126,6 +3166,11 @@ struct ImFontAtlas
intPackIdMouseCursors;// Custom texture rectangle ID for white pixel and mouse cursors
intPackIdLines;// Custom texture rectangle ID for baked anti-aliased lines
// [Internal] Shadow data
intShadowRectIds[2];// IDs of rect for shadow textures
ImVec4ShadowRectUvs[10];// UV coordinates for shadow textures, 9 for the rectangle shadows and the final entry for the convex shape shadows