ocornut
a547deed9b
DrawList: fixed AddRectFilled() path for minimum dimension.
2026-10-07 18:53:54 +02:00
ocornut
059017188d
DrawList: baking half-texel in TexUvLines[] now that AddPolylineLegacy() was removed.
2026-10-07 18:53:54 +02:00
ocornut
deb9c70ace
DrawList: ImDrawFlags_AALineEnds also requires ImDrawFlags_AALine, which makes it easier for widgets to opt-in AAEnds.
2026-10-07 18:53:54 +02:00
ocornut
20f17eeb6f
DrawList: fixed using ImDrawFlags_UseTexForRoundCorners when ImFontAtlasFlags_NoBakedRoundCorners has also been set.
2026-10-07 18:53:54 +02:00
ocornut
a597beaf95
DrawList: fixed dropping prim flags in some paths (most for ImDrawFlags_AAXXX flags).
2026-10-07 18:53:54 +02:00
Mikko Mononen
ba918bc45c
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-10-07 18:53:54 +02:00
ocornut
7a510274ce
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-10-07 18:53:54 +02:00
ocornut
ee66cfcdf3
TabBar: simpify TabItem rendering using stroke flags.
...
May tend toward using _StrokeInside more but _StrokeCenterBiased is closer to current behavior.
2026-10-07 18:53:54 +02:00
ocornut
b220bffdbb
Checkbox, Menus: check marks use anti-aliased ends.
...
Currently not a satisfying resolution.
2026-10-07 18:53:54 +02:00
ocornut
eb02a7f24c
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-10-07 18:53:53 +02:00
ocornut
46e4c26095
DrawList: removed AddPolylineLegacy(), AddConvexPolyFilledLegacy().
2026-10-07 18:53:53 +02:00
ocornut
5181e95a46
DrawList: removed g_LEGACY_STROKES.
2026-10-07 18:53:53 +02:00
ocornut
67bcd9d545
DrawList: moved no-AA handling into _SelectFringeTexture().
2026-10-07 18:53:53 +02:00
ocornut
f511ce18f9
DrawList: tweak _SelectFringeTexture(). move more-unlikely screen_thickness tests within already-unlikely block. re-add removed asserts.
2026-10-07 18:53:53 +02:00
ocornut
bd0f638d8b
Docs: update changelog.
2026-10-07 18:53:53 +02:00
ocornut
2fdcf895c8
DrawList: moved _GetStrokePos() to a local inline function.
2026-10-07 18:53:53 +02:00
ocornut
f2cd901be6
DrawList: added PushDrawFlag(), PopDrawFlag(), ImSmallStack_<>. ( #9504 )
2026-10-07 18:53:53 +02:00
ocornut
7e87cb984d
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-10-07 18:53:53 +02:00
ocornut
008e0990b3
DrawList: comment about ImFontAtlasFlags_NoBakedLines. Demo: amend test bed to exercices more flags.
2026-10-07 18:53:53 +02:00
ocornut
7ccc8348bc
(Breaking) Obsoleted style.AntiAliasedLinesUseTex which now only makes sense for legacy strokes. Added style.AntiAliasedLineEnds.
...
# Conflicts:
# imgui.cpp
2026-10-07 18:53:53 +02:00
ocornut
02adb46a9f
(Breaking) DrawList: removed ImDrawListFlags_in favor of using ImDrawFlags.
...
# Conflicts:
# imgui.cpp
2026-10-07 18:53:53 +02:00
ocornut
cf85b48e55
DrawList: new ImDrawFlags API (yet unused in this commit)
2026-10-07 18:53:52 +02:00
ocornut
eb75c8056e
DrawList: inverted ImDrawFlags_NoAAEnds into ImDrawFlags_AAEnds.
2026-10-07 18:53:52 +02:00
ocornut
9b608ba079
DrawList: fixed warnings, added macro to facilitate visualizing rounded corner texture usage.
2026-10-07 18:53:52 +02:00
Mikko Mononen
10aa5d92e6
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-10-07 18:53:52 +02:00
Mikko Mononen
145b838818
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-10-07 18:53:52 +02:00
Mikko Mononen
c5c76dcda5
DrawList: Optimize _SelectFringeTexture()
...
- store inverse line thickness in the spare texture uv component (same v was stord twice) to avoid division in _SelectFringeTexture
2026-10-07 18:53:52 +02:00
ocornut
d9378b71c5
DrawList: surround _GetStrokePos() in IM_MSVC_RUNTIME_CHECKS_OFF macro.
2026-10-07 18:53:52 +02:00
ocornut
230249ad58
ImFontAtlas: moved TexUv buffers and configurable defines to internals.
2026-10-07 18:53:52 +02:00
Mikko Mononen
efb5c0e1da
DrawList: Added some comments and amended existing ones
2026-10-07 18:53:52 +02:00
Mikko Mononen
b181739cea
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-10-07 18:53:52 +02:00
Mikko Mononen
d24d23fb40
DrawList: No AA ends when line AA is disabled
2026-10-07 18:53:52 +02:00
Mikko Mononen
f272141a4d
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-10-07 18:53:52 +02:00
Mikko Mononen
9be9c998d7
DrawList: removed vertex offset overflow (for 16-bit ImDrawIdx support) handling.
...
This seems unnecessary for now.
2026-10-07 18:53:52 +02:00
Mikko Mononen
478813c359
DrawList: restored non-AA rendering mode.
...
- the ImDrawListFlags_AntiAliasedFill and ImDrawListFlags_AntiAliasedLines flags work again
- added non-AA rendering for polyline and convex poly filled
- do not use corner textures when AA is not used
- Add missing no-AA for single line case
2026-10-07 18:53:52 +02:00
Mikko Mononen
a5d8450a0f
DrawList: fixed overdraw of transparent rounded rectangles
...
- transition earlier to _AddRectTinyRounding() to avoid overdraw issues
2026-10-07 18:53:52 +02:00
Mikko Mononen
2edac09d9f
DrawList: fixed baked corners to better match polyline corners
...
- added CalcArcStepAndCount() to calculate the step size consistently
- _AddRectTinyRounding: fixed stem placement with thin lines (clamping was needed for an older version of the function)
- _AddRectTinyRounding: fixed texture coordinates (uses if inner/outer were reversed)
- use polygon instead of circle when calculating baked corner rounds (the circle was more accurate but looked different size comparet to polyline)
2026-10-07 18:53:52 +02:00
Mikko Mononen
002e2a5f00
DrawList: added macro to have consistent check for rounding
...
- use macro to test if rounding value is worthy
- changed threshold to be a bit smaller (for smoother handling of small radius), and relative to fringe
2026-10-07 18:53:52 +02:00
Mikko Mononen
ed50e4790b
Demo: added rounding slider+animate to allow better test range of rounding values.
2026-10-07 18:53:52 +02:00
Mikko Mononen
ec510539c7
DrawList: increase detailed line textures from 3px to 4px to better hide the texture change.
...
+ amend: align #defines.
2026-10-07 18:53:52 +02:00
Mikko Mononen
f2055fe160
DrawList: fixed reserve counts in _AddPolyline().
2026-10-07 18:53:52 +02:00
ocornut
c6e5d8c85f
DrawList: Debug build optimizations: add non-template ImMin/ImMax/ImClamp for int/float to avoid missing out on IM_MSVC_RUNTIME_CHECKS_OFF.
2026-10-07 18:53:52 +02:00
ocornut
16860367b3
DrawList: Debug build optimizations: disable over zealous stack checks in PrimReserve, PrimUnreserve, PrimRect, PrimRectUV, PrimQuadUV, _CalculateCenterBiasedOffset, ImAlphaMultiply, _SelectFringeTexture
...
+ Undo inlined PrimRect() in AddRectFilled().
2026-10-07 18:53:52 +02:00
Mikko Mononen
ea638a4a11
DrawList: added vertex offset 16-bit ImDrawIdx support for _AddPolyline
2026-10-07 18:53:52 +02:00
Mikko Mononen
a5a4bed3ca
DrawList: improved worst case vertex count for AddConvexPolyFilled, convex polys can have only 2 bevels verts.
2026-10-07 18:53:51 +02:00
Mikko Mononen
fc8f5e66d4
DrawList: fixed indices when AllowVtxOffset is on
...
- fix shape closing indices for AddPolyline and _AddRectTinyRounding
2026-10-07 18:53:51 +02:00
Mikko Mononen
130be3be42
DrawList: Optimization: added specialized 2 point polyline _AddLine().
2026-10-07 18:53:51 +02:00
Mikko Mononen
6856b3e06b
DrawList: added _InvFringeScale to use in cases of 1/_FringeScale.
2026-10-07 18:53:51 +02:00
Mikko Mononen
b484a90846
DrawList: minor render optimizations.
...
- Use inline array + AddPolyline/AddConvexPolyFilled for triangle and quad
- do less computation for detecting small shape rendering
- add IM_UNLIKELY for very unlikely branches
2026-10-07 18:53:51 +02:00
Mikko Mononen
7ec1bc17fd
DrawList: debug build optimizations.
...
- changed truncated tests to use macro, and inline the computation in debug builds (~15% was spent on calling the functions)
- inlined the common rectangle cases in AddRect() for debug build speed up
2026-10-07 18:53:51 +02:00