mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-11 13:36:13 +03:00
LibGfx: Introduce ICC::Profile::create
This can be used to programmatically create ICC::Profile objects.
This commit is contained in:
parent
130a84d830
commit
8f415e7b21
Notes:
sideshowbarker
2024-07-17 05:02:42 +09:00
Author: https://github.com/nico Commit: https://github.com/SerenityOS/serenity/commit/8f415e7b21 Pull-request: https://github.com/SerenityOS/serenity/pull/17714 Reviewed-by: https://github.com/linusg
@ -1316,7 +1316,12 @@ ErrorOr<NonnullRefPtr<Profile>> Profile::try_load_from_externally_owned_memory(R
|
||||
bytes = bytes.trim(header.on_disk_size);
|
||||
auto tag_table = TRY(read_tag_table(bytes));
|
||||
|
||||
auto profile = TRY(try_make_ref_counted<Profile>(header, move(tag_table)));
|
||||
return create(header, move(tag_table));
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<Profile>> Profile::create(ProfileHeader const& header, OrderedHashMap<TagSignature, NonnullRefPtr<TagData>> tag_table)
|
||||
{
|
||||
auto profile = TRY(adopt_nonnull_ref_or_enomem(new (nothrow) Profile(header, move(tag_table))));
|
||||
|
||||
TRY(profile->check_required_tags());
|
||||
TRY(profile->check_tag_types());
|
||||
|
@ -211,12 +211,7 @@ struct ProfileHeader {
|
||||
class Profile : public RefCounted<Profile> {
|
||||
public:
|
||||
static ErrorOr<NonnullRefPtr<Profile>> try_load_from_externally_owned_memory(ReadonlyBytes);
|
||||
|
||||
Profile(ProfileHeader const& header, OrderedHashMap<TagSignature, NonnullRefPtr<TagData>> tag_table)
|
||||
: m_header(header)
|
||||
, m_tag_table(move(tag_table))
|
||||
{
|
||||
}
|
||||
static ErrorOr<NonnullRefPtr<Profile>> create(ProfileHeader const& header, OrderedHashMap<TagSignature, NonnullRefPtr<TagData>> tag_table);
|
||||
|
||||
Optional<PreferredCMMType> preferred_cmm_type() const { return m_header.preferred_cmm_type; }
|
||||
Version version() const { return m_header.version; }
|
||||
@ -262,6 +257,12 @@ public:
|
||||
bool is_v4() const { return version().major_version() == 4; }
|
||||
|
||||
private:
|
||||
Profile(ProfileHeader const& header, OrderedHashMap<TagSignature, NonnullRefPtr<TagData>> tag_table)
|
||||
: m_header(header)
|
||||
, m_tag_table(move(tag_table))
|
||||
{
|
||||
}
|
||||
|
||||
ErrorOr<void> check_required_tags();
|
||||
ErrorOr<void> check_tag_types();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user