|
@@ -405,6 +405,7 @@ void ImDrawList::_ResetForNewFrame()
|
|
|
_Path.resize(0);
|
|
|
_Splitter.Clear();
|
|
|
CmdBuffer.push_back(ImDrawCmd());
|
|
|
+ _FringeScale = 1.0f;
|
|
|
}
|
|
|
|
|
|
void ImDrawList::_ClearFreeMemory()
|
|
@@ -680,12 +681,12 @@ void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32
|
|
|
|
|
|
const ImVec2 opaque_uv = _Data->TexUvWhitePixel;
|
|
|
const int count = closed ? points_count : points_count - 1; // The number of line segments we need to draw
|
|
|
- const bool thick_line = (thickness > 1.0f);
|
|
|
+ const bool thick_line = (thickness > _FringeScale);
|
|
|
|
|
|
if (Flags & ImDrawListFlags_AntiAliasedLines)
|
|
|
{
|
|
|
// Anti-aliased stroke
|
|
|
- const float AA_SIZE = 1.0f;
|
|
|
+ const float AA_SIZE = _FringeScale;
|
|
|
const ImU32 col_trans = col & ~IM_COL32_A_MASK;
|
|
|
|
|
|
// Thicknesses <1.0 should behave like thickness 1.0
|
|
@@ -696,7 +697,7 @@ void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32
|
|
|
// Do we want to draw this line using a texture?
|
|
|
// - For now, only draw integer-width lines using textures to avoid issues with the way scaling occurs, could be improved.
|
|
|
// - If AA_SIZE is not 1.0f we cannot use the texture path.
|
|
|
- const bool use_texture = (Flags & ImDrawListFlags_AntiAliasedLinesUseTex) && (integer_thickness < IM_DRAWLIST_TEX_LINES_WIDTH_MAX) && (fractional_thickness <= 0.00001f);
|
|
|
+ const bool use_texture = (Flags & ImDrawListFlags_AntiAliasedLinesUseTex) && (integer_thickness < IM_DRAWLIST_TEX_LINES_WIDTH_MAX) && (fractional_thickness <= 0.00001f) && (AA_SIZE == 1.0f);
|
|
|
|
|
|
// We should never hit this, because NewFrame() doesn't set ImDrawListFlags_AntiAliasedLinesUseTex unless ImFontAtlasFlags_NoBakedLines is off
|
|
|
IM_ASSERT_PARANOID(!use_texture || !(_Data->Font->ContainerAtlas->Flags & ImFontAtlasFlags_NoBakedLines));
|
|
@@ -938,7 +939,7 @@ void ImDrawList::AddConvexPolyFilled(const ImVec2* points, const int points_coun
|
|
|
if (Flags & ImDrawListFlags_AntiAliasedFill)
|
|
|
{
|
|
|
// Anti-aliased Fill
|
|
|
- const float AA_SIZE = 1.0f;
|
|
|
+ const float AA_SIZE = _FringeScale;
|
|
|
const ImU32 col_trans = col & ~IM_COL32_A_MASK;
|
|
|
const int idx_count = (points_count - 2)*3 + points_count * 6;
|
|
|
const int vtx_count = (points_count * 2);
|