Browse Source

LibGfx: Add a `MappedFile` variant of `BitmapFont::try_load_from_file`

Let's make it possible to create a BitmapFont directly from a MappedFile
instead of a file path.
Caoimhe 2 năm trước cách đây
mục cha
commit
0d2ca125b3

+ 8 - 3
Userland/Libraries/LibGfx/Font/BitmapFont.cpp

@@ -233,9 +233,14 @@ RefPtr<BitmapFont> BitmapFont::load_from_file(DeprecatedString const& path)
 
 
 ErrorOr<NonnullRefPtr<BitmapFont>> BitmapFont::try_load_from_file(DeprecatedString const& path)
 ErrorOr<NonnullRefPtr<BitmapFont>> BitmapFont::try_load_from_file(DeprecatedString const& path)
 {
 {
-    auto file = TRY(Core::MappedFile::map(path));
-    auto font = TRY(load_from_memory((u8 const*)file->data()));
-    font->m_mapped_file = file;
+    auto mapped_file = TRY(Core::MappedFile::map(path));
+    return try_load_from_mapped_file(move(mapped_file));
+}
+
+ErrorOr<NonnullRefPtr<BitmapFont>> BitmapFont::try_load_from_mapped_file(RefPtr<Core::MappedFile> const& mapped_file)
+{
+    auto font = TRY(load_from_memory((u8 const*)mapped_file->data()));
+    font->m_mapped_file = mapped_file;
     return font;
     return font;
 }
 }
 
 

+ 1 - 0
Userland/Libraries/LibGfx/Font/BitmapFont.h

@@ -32,6 +32,7 @@ public:
 
 
     static RefPtr<BitmapFont> load_from_file(DeprecatedString const& path);
     static RefPtr<BitmapFont> load_from_file(DeprecatedString const& path);
     static ErrorOr<NonnullRefPtr<BitmapFont>> try_load_from_file(DeprecatedString const& path);
     static ErrorOr<NonnullRefPtr<BitmapFont>> try_load_from_file(DeprecatedString const& path);
+    static ErrorOr<NonnullRefPtr<BitmapFont>> try_load_from_mapped_file(RefPtr<Core::MappedFile> const&);
     ErrorOr<void> write_to_file(DeprecatedString const& path);
     ErrorOr<void> write_to_file(DeprecatedString const& path);
 
 
     ~BitmapFont();
     ~BitmapFont();