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
This commit is contained in:
Mikko Mononen
2026-06-04 10:30:04 +03:00
committed by ocornut
parent 589c83aab9
commit 34fdedfc53
3 changed files with 214 additions and 155 deletions

View File

@@ -10468,6 +10468,16 @@ static void ShowExampleAppCustomRendering(bool* p_open)
ImGui::Spacing();
const ImDrawFlags flags = stroke_flags | other_flags;
// FIXME: Clarify how this is exposed, consider changing Demo code to simply alter Style.s
static ImDrawListFlags draw_list_flags = ImDrawListFlags_AntiAliasedLines | ImDrawListFlags_AntiAliasedFill | ImDrawListFlags_RoundCornersUseTex;
ImGui::Text("DrawList Flags:");
ImGui::CheckboxFlags("AntiAliasedLines", &draw_list_flags, ImDrawListFlags_AntiAliasedLines); ImGui::SameLine();
ImGui::CheckboxFlags("AntiAliasedFill", &draw_list_flags, ImDrawListFlags_AntiAliasedFill); ImGui::SameLine();
ImGui::CheckboxFlags("RoundCornersUseTex", &draw_list_flags, ImDrawListFlags_RoundCornersUseTex);
ImDrawListFlags backup_draw_list_flags = draw_list->Flags;
draw_list->Flags &= ~(ImDrawListFlags_AntiAliasedLines | ImDrawListFlags_AntiAliasedFill | ImDrawListFlags_RoundCornersUseTex);
draw_list->Flags |= draw_list_flags;
ImVec2 start_pos = ImGui::GetCursorScreenPos();
const float pi = 3.141592f;
const float spacing = 10.0f;
@@ -10600,6 +10610,8 @@ static void ShowExampleAppCustomRendering(bool* p_open)
ImGui::PopItemFlag();
ImGui::PopItemWidth();
ImGui::EndTabItem();
draw_list->Flags = backup_draw_list_flags;
}
if (ImGui::BeginTabItem("Canvas"))