mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 09:49:15 +03:00
LibGfx: Add Core::File
variant of BitmapFont::write_to_file
This commit is contained in:
parent
0d2ca125b3
commit
c43295b668
Notes:
sideshowbarker
2024-07-17 10:08:28 +09:00
Author: https://github.com/caoimhebyrne Commit: https://github.com/SerenityOS/serenity/commit/c43295b668 Pull-request: https://github.com/SerenityOS/serenity/pull/18029 Reviewed-by: https://github.com/ADKaster Reviewed-by: https://github.com/AtkinsSJ ✅ Reviewed-by: https://github.com/LucasChollet Reviewed-by: https://github.com/thankyouverycool
@ -245,6 +245,14 @@ ErrorOr<NonnullRefPtr<BitmapFont>> BitmapFont::try_load_from_mapped_file(RefPtr<
|
||||
}
|
||||
|
||||
ErrorOr<void> BitmapFont::write_to_file(DeprecatedString const& path)
|
||||
{
|
||||
auto stream = TRY(Core::File::open(path, Core::File::OpenMode::Write));
|
||||
TRY(write_to_file(move(stream)));
|
||||
|
||||
return {};
|
||||
}
|
||||
|
||||
ErrorOr<void> BitmapFont::write_to_file(NonnullOwnPtr<Core::File> file)
|
||||
{
|
||||
FontFileHeader header;
|
||||
memset(&header, 0, sizeof(FontFileHeader));
|
||||
@ -262,12 +270,11 @@ ErrorOr<void> BitmapFont::write_to_file(DeprecatedString const& path)
|
||||
memcpy(header.name, m_name.characters(), min(m_name.length(), sizeof(header.name) - 1));
|
||||
memcpy(header.family, m_family.characters(), min(m_family.length(), sizeof(header.family) - 1));
|
||||
|
||||
auto stream = TRY(Core::File::open(path, Core::File::OpenMode::Write));
|
||||
size_t bytes_per_glyph = sizeof(u32) * m_glyph_height;
|
||||
TRY(stream->write_until_depleted({ &header, sizeof(header) }));
|
||||
TRY(stream->write_until_depleted({ m_range_mask, m_range_mask_size }));
|
||||
TRY(stream->write_until_depleted({ m_rows, m_glyph_count * bytes_per_glyph }));
|
||||
TRY(stream->write_until_depleted({ m_glyph_widths, m_glyph_count }));
|
||||
TRY(file->write_until_depleted({ &header, sizeof(header) }));
|
||||
TRY(file->write_until_depleted({ m_range_mask, m_range_mask_size }));
|
||||
TRY(file->write_until_depleted({ m_rows, m_glyph_count * bytes_per_glyph }));
|
||||
TRY(file->write_until_depleted({ m_glyph_widths, m_glyph_count }));
|
||||
|
||||
return {};
|
||||
}
|
||||
|
@ -33,7 +33,9 @@ public:
|
||||
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_mapped_file(RefPtr<Core::MappedFile> const&);
|
||||
|
||||
ErrorOr<void> write_to_file(DeprecatedString const& path);
|
||||
ErrorOr<void> write_to_file(NonnullOwnPtr<Core::File> file);
|
||||
|
||||
~BitmapFont();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user