gtc_color_space.cpp 1.3 KB

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