gtx_color_encoding.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. #include <glm/gtx/color_encoding.hpp>
  2. #include <glm/gtc/color_space.hpp>
  3. #include <glm/gtc/epsilon.hpp>
  4. #include <glm/gtc/constants.hpp>
  5. namespace srgb
  6. {
  7. int test()
  8. {
  9. int Error(0);
  10. glm::vec3 const ColorSourceRGB(1.0, 0.5, 0.0);
  11. /*
  12. {
  13. glm::vec3 const ColorSRGB = glm::convertLinearSRGBToD65XYZ(ColorSourceRGB);
  14. glm::vec3 const ColorRGB = glm::convertD65XYZToLinearSRGB(ColorSRGB);
  15. Error += glm::all(glm::epsilonEqual(ColorSourceRGB, ColorRGB, 0.00001f)) ? 0 : 1;
  16. }
  17. */
  18. {
  19. glm::vec3 const ColorSRGB = glm::convertLinearToSRGB(ColorSourceRGB, 2.8f);
  20. glm::vec3 const ColorRGB = glm::convertSRGBToLinear(ColorSRGB, 2.8f);
  21. Error += glm::all(glm::epsilonEqual(ColorSourceRGB, ColorRGB, 0.00001f)) ? 0 : 1;
  22. }
  23. glm::vec4 const ColorSourceRGBA(1.0, 0.5, 0.0, 1.0);
  24. {
  25. glm::vec4 const ColorSRGB = glm::convertLinearToSRGB(ColorSourceRGBA);
  26. glm::vec4 const ColorRGB = glm::convertSRGBToLinear(ColorSRGB);
  27. Error += glm::all(glm::epsilonEqual(ColorSourceRGBA, ColorRGB, 0.00001f)) ? 0 : 1;
  28. }
  29. {
  30. glm::vec4 const ColorSRGB = glm::convertLinearToSRGB(ColorSourceRGBA, 2.8f);
  31. glm::vec4 const ColorRGB = glm::convertSRGBToLinear(ColorSRGB, 2.8f);
  32. Error += glm::all(glm::epsilonEqual(ColorSourceRGBA, ColorRGB, 0.00001f)) ? 0 : 1;
  33. }
  34. return Error;
  35. }
  36. }//namespace srgb
  37. int main()
  38. {
  39. int Error(0);
  40. Error += srgb::test();
  41. return Error;
  42. }