Skip to content

Commit

Permalink
ImDrawList: Fix texture-based anti-aliasing with RGBA textures (#5132,
Browse files Browse the repository at this point in the history
…#3245)

When using an Alpha8 font texture, GetTexDataAsRGBA32 converts 0x00 to transparent white.
When using a RGBA32 font texture, ImFontAtlasBuildRenderLinesTexData was writing transparent black.
  • Loading branch information
cfillion authored and ocornut committed Mar 23, 2022
1 parent 3c07879 commit 7d7bf99
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 2 deletions.
1 change: 1 addition & 0 deletions docs/CHANGELOG.txt
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ Other Changes:
- ColorEdit: Fixed text baseline alignment after a SameLine() after a ColorEdit() with visible label.
- Stack Tool: Added option to copy item path to clipboard. (#4631)
- Drawlist: Fixed PathArcTo() emitting terminating vertices too close to arc vertices. (#4993) [@thedmd]
- DrawList: Fixed texture-based anti-aliasing path with RGBA textures (#5132, #3245) [@cfillion]
- Misc: Fixed IsAnyItemHovered() returning false when using navigation.
- Misc: Added IMGUI_STB_SPRINTF_FILENAME to support custom path to stb_sprintf. (#5068, #2954) [@jakubtomsu]
- Misc: Added constexpr to ImVec2/ImVec4 inline constructors. (#4995) [@Myriachan]
Expand Down
4 changes: 2 additions & 2 deletions imgui_draw.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2738,13 +2738,13 @@ static void ImFontAtlasBuildRenderLinesTexData(ImFontAtlas* atlas)
{
unsigned int* write_ptr = &atlas->TexPixelsRGBA32[r->X + ((r->Y + y) * atlas->TexWidth)];
for (unsigned int i = 0; i < pad_left; i++)
*(write_ptr + i) = IM_COL32_BLACK_TRANS;
*(write_ptr + i) = IM_COL32(255, 255, 255, 0);

for (unsigned int i = 0; i < line_width; i++)
*(write_ptr + pad_left + i) = IM_COL32_WHITE;

for (unsigned int i = 0; i < pad_right; i++)
*(write_ptr + pad_left + line_width + i) = IM_COL32_BLACK_TRANS;
*(write_ptr + pad_left + line_width + i) = IM_COL32(255, 255, 255, 0);
}

// Calculate UVs for this line
Expand Down

0 comments on commit 7d7bf99

Please sign in to comment.