summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibGfx
diff options
context:
space:
mode:
authorHendiadyoin1 <leon2002.la@gmail.com>2021-11-28 16:09:38 +0100
committerAli Mohammad Pur <Ali.mpfard@gmail.com>2021-11-29 23:17:05 +0330
commit9e7c16d0a44052e5981038d6b7cd79723fe78e24 (patch)
tree5d689ab6792130e8c9d5cb13d30818d4653832ae /Userland/Libraries/LibGfx
parente69276e704b4c3eb56d0ad6108a3de16cc8dd175 (diff)
downloadserenity-9e7c16d0a44052e5981038d6b7cd79723fe78e24.zip
LibGfx: Load default font lazily
This is required when trying to use a Painter from lagom, due to /res/font not being present
Diffstat (limited to 'Userland/Libraries/LibGfx')
-rw-r--r--Userland/Libraries/LibGfx/Painter.cpp2
-rw-r--r--Userland/Libraries/LibGfx/Painter.h8
2 files changed, 8 insertions, 2 deletions
diff --git a/Userland/Libraries/LibGfx/Painter.cpp b/Userland/Libraries/LibGfx/Painter.cpp
index 1ade80691d..cdf399c5e5 100644
--- a/Userland/Libraries/LibGfx/Painter.cpp
+++ b/Userland/Libraries/LibGfx/Painter.cpp
@@ -64,7 +64,7 @@ Painter::Painter(Gfx::Bitmap& bitmap)
VERIFY(bitmap.physical_width() % scale == 0);
VERIFY(bitmap.physical_height() % scale == 0);
m_state_stack.append(State());
- state().font = &FontDatabase::default_font();
+ state().font = nullptr;
state().clip_rect = { { 0, 0 }, bitmap.size() };
state().scale = scale;
m_clip_origin = state().clip_rect;
diff --git a/Userland/Libraries/LibGfx/Painter.h b/Userland/Libraries/LibGfx/Painter.h
index 1f26afeab2..8b9e407846 100644
--- a/Userland/Libraries/LibGfx/Painter.h
+++ b/Userland/Libraries/LibGfx/Painter.h
@@ -10,6 +10,7 @@
#include <AK/NonnullRefPtr.h>
#include <AK/Vector.h>
#include <LibGfx/Color.h>
+#include <LibGfx/FontDatabase.h>
#include <LibGfx/Forward.h>
#include <LibGfx/Point.h>
#include <LibGfx/Rect.h>
@@ -108,7 +109,12 @@ public:
};
void fill_path(Path const&, Color, WindingRule rule = WindingRule::Nonzero);
- Font const& font() const { return *state().font; }
+ Font const& font() const
+ {
+ if (!state().font)
+ return FontDatabase::default_font();
+ return *state().font;
+ }
void set_font(Font const& font) { state().font = &font; }
enum class DrawOp {