summaryrefslogtreecommitdiff
path: root/editor
diff options
context:
space:
mode:
authorRuslan Mustakov <r.mustakov@gmail.com>2018-03-17 15:44:34 +0700
committerRuslan Mustakov <r.mustakov@gmail.com>2018-05-08 13:45:24 +0700
commit5cd12f6649387f91d08fd17bf3c70e732798ab58 (patch)
treecc0e4fd2ce69997c67df9aa36b7390cb52c0534c /editor
parent6e8e401359ba86d33253fb3d3241cf09a742c8e4 (diff)
Perfect FreeType-based outlines for DynamicFonts
- Implement outlines based on FreeType Stroker API. This allows artifact-free results, similar to what you will see in Web or any text editing tools. Outline is a part of DynamicFont rather than Label, because outlines have to be baked into the font's atlas. Font has a default outline_color and a Label can specify font_outline_modulator that will be multiplied with the Font's color to get the final result. - draw_char now has to be called twice to fully render a text - first with p_outline == true for each character and then with p_outline == false for each character. - Number of draw-calls is reduced from 5 to 2 per outlined character. - Overall cleanup of DynamicFont code, extracted duplicated code pieces into separate methods. - The change is backward-compatible - Labels still have outline properties that work exactly as they worked before. Closes #16279.
Diffstat (limited to 'editor')
-rw-r--r--editor/output_strings.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/editor/output_strings.cpp b/editor/output_strings.cpp
index b0b72510a9..e6cadee3e3 100644
--- a/editor/output_strings.cpp
+++ b/editor/output_strings.cpp
@@ -87,6 +87,7 @@ void OutputStrings::_notification(int p_what) {
float h_ofs = (int)h_scroll->get_value();
Point2 icon_ofs = Point2(0, (font_height - (int)icon_error->get_height()) / 2);
+ FontDrawer drawer(font, Color(1, 1, 1));
while (E && ofs.y < (size_height - (int)margin.y)) {
String str = E->get().text;