DrawList: amend PushDrawFlag() to report reaching capacity.

This commit is contained in:
ocornut
2026-07-31 21:47:46 +02:00
parent 8688cab452
commit bc2ce848a1
2 changed files with 2 additions and 0 deletions

View File

@@ -3012,6 +3012,7 @@ struct ImSmallStack_
inline T& back() { IM_ASSERT(Size > 0); return LocalData[Size - 1]; }
inline void push_back(const T& v) { IM_ASSERT(Size < Capacity); memcpy(&LocalData[Size], &v, sizeof(v)); Size++; }
inline void pop_back() { IM_ASSERT(Size > 0); Size--; }
inline int capacity() const { return Capacity; }
};
// Flags for ImGuiListClipper (currently not fully exposed in function calls: a future refactor will likely add this to ImGuiListClipper::Begin function equivalent)

View File

@@ -724,6 +724,7 @@ void ImDrawList::PushDrawFlag(ImDrawFlags flags, bool enabled)
{
IM_ASSERT((flags & ~ImDrawFlags_AllowInPushScope_) == 0);
IM_ASSERT((flags & ImDrawFlags_StrokeMask_) == 0 || (flags & ImDrawFlags_StrokeMask_) == ImDrawFlags_StrokeLegacy);
IM_ASSERT_USER_ERROR_RET(_DrawFlagsStack.Size < _DrawFlagsStack.capacity(), "PushDrawFlag() has a depth limit. Contact us.");
_DrawFlagsStack.push_back(Flags);
if (enabled)
Flags |= flags;