Skip to content

Commit

Permalink
Merge pull request #43171 from Calinou/dynamicfont-fix-scaling-filter…
Browse files Browse the repository at this point in the history
…-artifacts

Fix artifacts in DynamicFont when scaling with filtering enabled
  • Loading branch information
akien-mga authored Oct 29, 2020
2 parents 0b6d75c + 575dbd4 commit 61c8efe
Showing 1 changed file with 15 additions and 2 deletions.
17 changes: 15 additions & 2 deletions scene/resources/dynamic_font.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -471,8 +471,21 @@ DynamicFontAtSize::TexturePosition DynamicFontAtSize::_find_texture_pos_for_glyp
//zero texture
PoolVector<uint8_t>::Write w = tex.imgdata.write();
ERR_FAIL_COND_V(texsize * texsize * p_color_size > tex.imgdata.size(), ret);
for (int i = 0; i < texsize * texsize * p_color_size; i++) {
w[i] = 0;

// Initialize the texture to all-white pixels to prevent artifacts when the
// font is displayed at a non-default scale with filtering enabled.
if (p_color_size == 2) {
for (int i = 0; i < texsize * texsize * p_color_size; i += 2) {
w[i + 0] = 255;
w[i + 1] = 0;
}
} else {
for (int i = 0; i < texsize * texsize * p_color_size; i += 4) {
w[i + 0] = 255;
w[i + 1] = 255;
w[i + 2] = 255;
w[i + 3] = 0;
}
}
}
tex.offsets.resize(texsize);
Expand Down

0 comments on commit 61c8efe

Please sign in to comment.