Mikko Mononen
108bc3b060
DrawList: added explanation for IM_POLYLINE_CONVEX_POLY_MAX_BEVELS.
2026-08-06 18:58:10 +02:00
ocornut
a38ce24427
Demo: Custom Rendering: added zig-zag concave shape, tweak color, tidy up section.
2026-08-06 18:18:19 +02:00
ocornut
ff42226394
DrawList: changed _GetStrokePos() to a macro.
2026-08-06 18:18:00 +02:00
ocornut
b8516b3292
DrawList: rename ImDrawFlags_MiterOnly->ImDrawFlags_JoinMiter, ImDrawFlags_SquareCap->ImDrawFlags_CapSquare.
2026-08-06 18:12:11 +02:00
ocornut
32b4600ca2
DrawList: AddCircle, AddCircleFilled: fixed large circles being under-tessellated (when above ~140 with default CircleTessellationMaxError).
2026-08-06 18:12:11 +02:00
ocornut
3741affa6d
Docs: reworked Changelog, comments.
2026-08-06 18:12:11 +02:00
ocornut
c5bc3ba9fe
DrawList: rework _SelectFringeTexture() for use by third-party extensions + rename to _SelectLineTexture().
2026-08-06 18:12:10 +02:00
ocornut
56a3017210
DrawList: fixed ImFontAtlasBuildUpdateTexDataCorners() packing vs render to match.
2026-08-06 18:12:10 +02:00
ocornut
bc2ce848a1
DrawList: amend PushDrawFlag() to report reaching capacity.
2026-08-06 18:12:10 +02:00
ocornut
8688cab452
DrawList: removed ImDrawFlags_UseTexForStrokeLegacy as it doesn't have any use now that legacy code is out of the way.
2026-08-06 18:12:10 +02:00
ocornut
63a36bfcc8
DrawList: simplify ImFontAtlasBuildUpdateTexDataCorners() by merging fill/strokes loops.
2026-08-06 18:12:10 +02:00
Mikko Mononen
65f176ef74
DrawList: fixed PathArcTo to not emit small segments.
...
- Changed PathArcTo to select start/end sample in quatized multiples of arc fast sample count
- This is done in order to avoid small segments at the start and end of the path, which causes issues with line AA ends
- Renamed CalcArcStepAndCount to CalcCornerArcStepAndCount to make it more clear that it returns the values for 90 degree arc
2026-08-06 18:12:09 +02:00
Mikko Mononen
d75d11cd2b
DrawList: fixed too many detailed line textures being created.
...
Fixed issue where were creating detailed line textures up to detailed witdh + 1
Changed IM_DRAWLIST_TEX_LINES_DETAILED_WIDTH_MAX to IM_DRAWLIST_TEX_LINES_DETAILED_WIDTH_COUNT which no accounts for all the detailed line textures.
2026-08-06 18:12:09 +02:00
Mikko Mononen
30f70ac19c
DrawList: fixed rendering issues on small and degenerate shapes.
...
The "does stroke cover the whole shape" used to be overly pessimistic to stroking artifacts. This was due to the fringe, where the geometry would mess up before visually closing the shape.
Fixed the issue by adding max inner offest for the AddPolyline(), which limits the inner offset and also adjusts the texture coords.
Second part of the fix was to calculate the pass the max inner offset from the common shapes (circle, ngon, ellipse, rect).
While this does not fix all the ellipse rendering issues, it limits the issue a lot.
e.g. AddRect() w/ size=5, thickness=2 used to trigger AddRectFilled() fallback because threshold was pessimistic to prevent the AddPolyline() issues.
2026-08-06 18:12:09 +02:00
Mikko Mononen
04efdebb14
DrawList: fixed overdraw issue for filled baked corner rendering.
...
Require all corners to fit inside the rect to avoid overdraw (or fallback to path rendering).
eg. AddRectFilled() w/ size=10, rounding=8 or 10 would break.
2026-08-06 18:12:09 +02:00
thedmd
9695af5162
DrawList: fixed passing large thickness value (e.g. 1e20f) to thickness crashing the code.
2026-08-06 18:12:09 +02:00
ocornut
d9711abaa0
DrawList: fixed AddRectFilled() path for minimum dimension.
2026-08-06 18:12:09 +02:00
ocornut
58f055a9f3
DrawList: baking half-texel in TexUvLines[] now that AddPolylineLegacy() was removed.
2026-08-06 18:12:08 +02:00
ocornut
06313c01ef
DrawList: ImDrawFlags_AALineEnds also requires ImDrawFlags_AALine, which makes it easier for widgets to opt-in AAEnds.
2026-08-06 18:12:08 +02:00
ocornut
4fa220d168
DrawList: fixed using ImDrawFlags_UseTexForRoundCorners when ImFontAtlasFlags_NoBakedRoundCorners has also been set.
2026-08-06 18:12:08 +02:00
ocornut
ca9305e304
DrawList: fixed dropping prim flags in some paths (most for ImDrawFlags_AAXXX flags).
2026-08-06 18:12:08 +02:00
Mikko Mononen
3bce489b7a
DrawList: fixed filled rect baked AA.
...
Always add 1px to the fill side of the rounded corner to prevent the corner AA to bleed into the rectangle edges.
2026-08-06 18:12:08 +02:00
ocornut
b5ef1d837d
DrawList: Comments. Atlas's NoBakedLines automatically disable AA at Style level. Fix passing non-Legacy stroke mask to PushDrawFlag(). Demo: Custom Rendering: use LiveEdit everywhere.
2026-08-06 18:12:07 +02:00
ocornut
1c71e07fa0
TabBar: simpify TabItem rendering using stroke flags.
...
May tend toward using _StrokeInside more but _StrokeCenterBiased is closer to current behavior.
2026-08-06 18:12:07 +02:00
ocornut
9aec6df4fd
Checkbox, Menus: check marks use anti-aliased ends.
...
Currently not a satisfying resolution.
2026-08-06 18:12:07 +02:00
ocornut
b67ced86c0
DrawList: support altering RoundCorners flags in scope as an undocumented trick/hack. (9489)
...
Not documented because it could become troublesome if treated as a guaranteed styling feature.
2026-08-06 18:12:07 +02:00
ocornut
691ea3ff6d
DrawList: removed AddPolylineLegacy(), AddConvexPolyFilledLegacy().
2026-08-06 18:12:07 +02:00
ocornut
5f7012f7ac
DrawList: removed g_LEGACY_STROKES.
2026-08-06 18:12:07 +02:00
ocornut
fe8acacdde
DrawList: moved no-AA handling into _SelectFringeTexture().
2026-08-06 18:12:06 +02:00
ocornut
4110aa1184
DrawList: tweak _SelectFringeTexture(). move more-unlikely screen_thickness tests within already-unlikely block. re-add removed asserts.
2026-08-06 18:12:06 +02:00
ocornut
b3aee2d810
Docs: update changelog.
2026-08-06 18:12:06 +02:00
ocornut
4694b50924
DrawList: moved _GetStrokePos() to a local inline function.
2026-08-06 18:12:06 +02:00
ocornut
fb9fd9a250
DrawList: added PushDrawFlag(), PopDrawFlag(), ImSmallStack_<>
2026-08-06 18:12:06 +02:00
ocornut
59014d15e7
DrawList: consistently support scope flags (ImDrawFlags::Flags) + primitive flags.
...
ImDrawFlags_AAEnds and ImDrawFlags_StrokeLegacy ok. (the most important ones).
ImDrawFlags_UseTexForRoundCorners ok.
ImDrawFlags_AAFill, ImDrawFlags_AAStrokes: for primitives: only for selected ones taking flags params. Haven't added the flag to all functions because it feels like a fringe use case.
ImDrawFlags_TextNoPixelSnap supported in RenderText(), per-prim (9417)
2026-08-06 18:12:05 +02:00
ocornut
e925e453ee
Demo: amend test bed to exercices more flags.
2026-08-06 18:12:05 +02:00
ocornut
7a54e76cd1
DrawList: comment about ImFontAtlasFlags_NoBakedLines.
2026-08-06 18:12:05 +02:00
ocornut
d482fe328e
(Breaking) Obsoleted style.AntiAliasedLinesUseTex which now only makes sense for legacy strokes. Added style.AntiAliasedLineEnds.
2026-08-06 18:12:05 +02:00
ocornut
c52b050489
(Breaking) DrawList: removed ImDrawListFlags_in favor of using ImDrawFlags.
2026-08-06 18:12:05 +02:00
ocornut
2c5adecc11
DrawList: new ImDrawFlags API (yet unused in this commit)
2026-08-06 18:12:04 +02:00
ocornut
873afffd8f
DrawList: inverted ImDrawFlags_NoAAEnds into ImDrawFlags_AAEnds.
2026-08-06 18:12:04 +02:00
ocornut
f474f9cced
DrawList: fixed warnings, added macro to facilitate visualizing rounded corner texture usage.
2026-08-06 18:12:04 +02:00
Mikko Mononen
b35777c58d
DrawList: Optimize AddNgon()
...
- test overestimate before testing more expensive details when testing if stroked ngon is actualy filled
- Note: not a common function, but the test harness is using this to draw a triangle, which makes it show up in profiling
2026-08-06 18:12:04 +02:00
Mikko Mononen
c8867c72dc
DrawList: Optimize AddRectFilled()
...
- detect and draw non-rounded non-AA rect with less branches and calculations
- improves new AddRectFilled() overhead from 30% to 5-10%
2026-08-06 18:12:04 +02:00
Mikko Mononen
9549b6ff7e
DrawList: Optimize _SelectFringeTexture()
...
- store inverse line thickness in the spare texture uv component (same v was stord twice) to avoid division in _SelectFringeTexture
2026-08-06 18:12:04 +02:00
ocornut
9e2b8914c9
DrawList: surround _GetStrokePos() in IM_MSVC_RUNTIME_CHECKS_OFF macro.
2026-08-06 18:12:04 +02:00
ocornut
f9030f92af
ImFontAtlas: moved TexUv buffers and configurable defines to internals.
2026-08-06 18:12:03 +02:00
Mikko Mononen
8c2d1befc6
DrawList: Added some comments and amended existing ones
2026-08-06 18:12:02 +02:00
Mikko Mononen
21930ad65c
DrawList: Revert texture selection to simple round() in _SelectFringeTexture
...
- revert texture selection to use just (inlined) round()
- the values were tuned to hide texture selection pops on small thickness
- since we're using super sampling for the problematic range, the tweaks are not necessayr anymore
2026-08-05 21:24:56 +02:00
Mikko Mononen
fe6094886f
DrawList: No AA ends when line AA is disabled
2026-08-05 21:24:56 +02:00
Mikko Mononen
4da24b1283
DrawList: merged _AddPolyline back into AddPolyline.
...
- AddPolyline used to call different versions of _AddPolyline, the separation is not needed anymore, one less function call in debug mode
2026-08-05 21:24:56 +02:00