ladybird/Userland
Nico Weber 4daa9aeb57 LibGfx: Check the types of tags in ICCProfile
This adds checking for all tags where ICCProfile can parse the type.
Over time, more of this needs implementing -- at least lut8Type,
lut16Type, lutAToBType, and lutBToAType, since these are used by
required tags.

What _is_ checked for the most part matches the spec, but it's possible
that the spec text is aspirational and that profiles in the wild don't
fully match it.

I've run the current checks against these profiles:

    find \
        ~/src/Compact-ICC-Profiles \
        /{System/,}Library/ColorSync \
        -name '*.icc' \
        -exec echo {} \; \
        -exec Build/lagom/icc {} \;

...and against 3 hand-selected icc files I locally extracted from jpegs.

This identified 3 cases where the spec text is too strict for reality.
I added comments for these for now. Eventually, I'd like to try to still
enforce these types, and have a profile-id-based quirks list for which
they aren't enforced. It's possible that that won't be feasible, but
it's probably better to start out to strict and then relax over time
than the other way round.
2023-01-26 17:38:17 +00:00
..
Applets AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
Applications PixelPaint: Let the move tool optionally select the active layer 2023-01-26 14:00:14 +01:00
BuggieBox Userland: Add the BuggieBox program 2022-11-26 12:41:47 -07:00
Demos LibGfxDemo: Draw diagonal dotted and dashed lines 2023-01-17 22:54:18 +01:00
DevTools UserspaceEmulator: Use Core::Process::set_name() 2023-01-25 14:27:45 +01:00
DynamicLoader Everywhere: Remove "LibC/" includes, add lint-rule against it 2023-01-07 10:01:37 -07:00
Games LibCards+Games: Return ErrorOr from CardStack::add_all_grabbed_cards() 2023-01-22 21:31:36 +00:00
Libraries LibGfx: Check the types of tags in ICCProfile 2023-01-26 17:38:17 +00:00
Services WindowServer: Reuse existing WindowManager::desktop_rect() method 2023-01-24 14:41:16 +00:00
Shell AK+Everywhere: Rename JsonObject::get() to ::get_deprecated() 2023-01-17 19:52:52 -05:00
Utilities icc: Align "else" for Type3 with "if" 2023-01-26 17:38:17 +00:00
CMakeLists.txt Userland: Add the BuggieBox program 2022-11-26 12:41:47 -07:00