Enums.cpp 4.6 KB

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