Coverage Report

Created: 2026-09-26 06:49

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/serenity/Userland/Libraries/LibGfx/ICC/Enums.cpp
Line
Count
Source
1
/*
2
 * Copyright (c) 2023, Nico Weber <thakis@chromium.org>
3
 *
4
 * SPDX-License-Identifier: BSD-2-Clause
5
 */
6
7
#include <LibGfx/ICC/Enums.h>
8
9
namespace Gfx::ICC {
10
11
StringView device_class_name(DeviceClass device_class)
12
0
{
13
0
    switch (device_class) {
14
0
    case DeviceClass::InputDevice:
15
0
        return "InputDevice"sv;
16
0
    case DeviceClass::DisplayDevice:
17
0
        return "DisplayDevice"sv;
18
0
    case DeviceClass::OutputDevice:
19
0
        return "OutputDevice"sv;
20
0
    case DeviceClass::DeviceLink:
21
0
        return "DeviceLink"sv;
22
0
    case DeviceClass::ColorSpace:
23
0
        return "ColorSpace"sv;
24
0
    case DeviceClass::Abstract:
25
0
        return "Abstract"sv;
26
0
    case DeviceClass::NamedColor:
27
0
        return "NamedColor"sv;
28
0
    }
29
0
    VERIFY_NOT_REACHED();
30
0
}
31
32
StringView data_color_space_name(ColorSpace color_space)
33
0
{
34
0
    switch (color_space) {
35
0
    case ColorSpace::nCIEXYZ:
36
0
        return "nCIEXYZ"sv;
37
0
    case ColorSpace::CIELAB:
38
0
        return "CIELAB"sv;
39
0
    case ColorSpace::CIELUV:
40
0
        return "CIELUV"sv;
41
0
    case ColorSpace::YCbCr:
42
0
        return "YCbCr"sv;
43
0
    case ColorSpace::CIEYxy:
44
0
        return "CIEYxy"sv;
45
0
    case ColorSpace::RGB:
46
0
        return "RGB"sv;
47
0
    case ColorSpace::Gray:
48
0
        return "Gray"sv;
49
0
    case ColorSpace::HSV:
50
0
        return "HSV"sv;
51
0
    case ColorSpace::HLS:
52
0
        return "HLS"sv;
53
0
    case ColorSpace::CMYK:
54
0
        return "CMYK"sv;
55
0
    case ColorSpace::CMY:
56
0
        return "CMY"sv;
57
0
    case ColorSpace::TwoColor:
58
0
        return "2 color"sv;
59
0
    case ColorSpace::ThreeColor:
60
0
        return "3 color (other than XYZ, Lab, Luv, YCbCr, CIEYxy, RGB, HSV, HLS, CMY)"sv;
61
0
    case ColorSpace::FourColor:
62
0
        return "4 color (other than CMYK)"sv;
63
0
    case ColorSpace::FiveColor:
64
0
        return "5 color"sv;
65
0
    case ColorSpace::SixColor:
66
0
        return "6 color"sv;
67
0
    case ColorSpace::SevenColor:
68
0
        return "7 color"sv;
69
0
    case ColorSpace::EightColor:
70
0
        return "8 color"sv;
71
0
    case ColorSpace::NineColor:
72
0
        return "9 color"sv;
73
0
    case ColorSpace::TenColor:
74
0
        return "10 color"sv;
75
0
    case ColorSpace::ElevenColor:
76
0
        return "11 color"sv;
77
0
    case ColorSpace::TwelveColor:
78
0
        return "12 color"sv;
79
0
    case ColorSpace::ThirteenColor:
80
0
        return "13 color"sv;
81
0
    case ColorSpace::FourteenColor:
82
0
        return "14 color"sv;
83
0
    case ColorSpace::FifteenColor:
84
0
        return "15 color"sv;
85
0
    }
86
0
    VERIFY_NOT_REACHED();
87
0
}
88
89
StringView profile_connection_space_name(ColorSpace color_space)
90
0
{
91
0
    switch (color_space) {
92
0
    case ColorSpace::PCSXYZ:
93
0
        return "PCSXYZ"sv;
94
0
    case ColorSpace::PCSLAB:
95
0
        return "PCSLAB"sv;
96
0
    default:
97
0
        return data_color_space_name(color_space);
98
0
    }
99
0
}
100
101
unsigned number_of_components_in_color_space(ColorSpace color_space)
102
51
{
103
51
    switch (color_space) {
104
4
    case ColorSpace::Gray:
105
4
        return 1;
106
3
    case ColorSpace::TwoColor:
107
3
        return 2;
108
4
    case ColorSpace::nCIEXYZ:
109
5
    case ColorSpace::CIELAB:
110
6
    case ColorSpace::CIELUV:
111
8
    case ColorSpace::YCbCr:
112
9
    case ColorSpace::CIEYxy:
113
10
    case ColorSpace::RGB:
114
11
    case ColorSpace::HSV:
115
12
    case ColorSpace::HLS:
116
13
    case ColorSpace::CMY:
117
16
    case ColorSpace::ThreeColor:
118
16
        return 3;
119
3
    case ColorSpace::CMYK:
120
4
    case ColorSpace::FourColor:
121
4
        return 4;
122
1
    case ColorSpace::FiveColor:
123
1
        return 5;
124
1
    case ColorSpace::SixColor:
125
1
        return 6;
126
2
    case ColorSpace::SevenColor:
127
2
        return 7;
128
1
    case ColorSpace::EightColor:
129
1
        return 8;
130
1
    case ColorSpace::NineColor:
131
1
        return 9;
132
2
    case ColorSpace::TenColor:
133
2
        return 10;
134
2
    case ColorSpace::ElevenColor:
135
2
        return 11;
136
1
    case ColorSpace::TwelveColor:
137
1
        return 12;
138
3
    case ColorSpace::ThirteenColor:
139
3
        return 13;
140
1
    case ColorSpace::FourteenColor:
141
1
        return 14;
142
9
    case ColorSpace::FifteenColor:
143
9
        return 15;
144
51
    }
145
0
    VERIFY_NOT_REACHED();
146
0
}
147
148
StringView primary_platform_name(PrimaryPlatform primary_platform)
149
0
{
150
0
    switch (primary_platform) {
151
0
    case PrimaryPlatform::Apple:
152
0
        return "Apple"sv;
153
0
    case PrimaryPlatform::Microsoft:
154
0
        return "Microsoft"sv;
155
0
    case PrimaryPlatform::SiliconGraphics:
156
0
        return "Silicon Graphics"sv;
157
0
    case PrimaryPlatform::Sun:
158
0
        return "Sun"sv;
159
0
    case PrimaryPlatform::V2_Only_Taligent:
160
0
        return "Taligent (only valid in v2 profiles)"sv;
161
0
    case PrimaryPlatform::NotSpecCompliant_Unix:
162
0
        return "Unix (not valid per spec)"sv;
163
0
    }
164
0
    VERIFY_NOT_REACHED();
165
0
}
166
167
StringView rendering_intent_name(RenderingIntent rendering_intent)
168
0
{
169
0
    switch (rendering_intent) {
170
0
    case RenderingIntent::Perceptual:
171
0
        return "Perceptual"sv;
172
0
    case RenderingIntent::MediaRelativeColorimetric:
173
0
        return "Media-relative colorimetric"sv;
174
0
    case RenderingIntent::Saturation:
175
0
        return "Saturation"sv;
176
0
    case RenderingIntent::ICCAbsoluteColorimetric:
177
0
        return "ICC-absolute colorimetric"sv;
178
0
    }
179
0
    VERIFY_NOT_REACHED();
180
0
}
181
182
}