tests/globject.cpp
4f14c1c2
 #include <iostream>
 #include <string>
 #include <utility>
 
 #include <glm/glm.hpp>
 
 #include <globject.hpp>
 
 
 class GLObjectTest : public GLObject
 {
 public:
     explicit GLObjectTest()
     :
         GLObject(
             nullptr,
             nullptr,
             0,
             "GLObjectTest"
         )
     {
         std::cout
             << "glm::mat4x3:"                                                                << "\n"
             << "  name:            "  <<           DataTraits<glm::mat4x3>::name             << "\n"
             << "  columns:         "  <<           DataTraits<glm::mat4x3>::columns          << "\n"
             << "  rows:            "  <<           DataTraits<glm::mat4x3>::rows             << "\n"
             << "  format:          "  << str_enum_(DataTraits<glm::mat4x3>::format)          << "\n"
             << "  type:            "  << str_enum_(DataTraits<glm::mat4x3>::type)            << "\n"
             << "  internal_format: "  << str_enum_(DataTraits<glm::mat4x3>::internal_format) << "\n";
 
         std::cout
             << path_prefix_("path", "")       << "\n"
             << path_prefix_("path", "prefix") << "\n";
 
         // NOLINTNEXTLINE
         TGA tga({1, 1}, {0, 0, 255, 127});
         std::cout
             << "TGA:"                                                    << "\n"
             << "  size:      " << tga.size()[0] << ", " << tga.size()[1] << "\n"
             << "  data size: " << tga.data().size()                      << "\n";
 
         std::cout
             << str_path_  ("path")             << "\n"
             << str_paths_ ({"path1", "path2"}) << "\n"
             << str_enum_  (0x01)               << "\n"
             << str_error_ (GL_NO_ERROR)        << "\n";
     }
 };
 
 
 int main()
 {
     std::cout
         << "Supported 1.0: "
         << GLObject::supported({1, 0})
         << "\n";
     std::cout
         << "GL_ACTIVE_TEXTURE: "
         << GLObject::get_integer(GL_ACTIVE_TEXTURE)
         << "\n";
     GLObject::debug_callback()("Debug callback");
 
     auto const print_debug_objects_info = []()
     {
         std::cout << GLObject::debug_objects_info() << "\n";
     };
     print_debug_objects_info();
     {
         auto object_test_moved = GLObjectTest{};
         auto object_test = std::move(object_test_moved);
         print_debug_objects_info();
     }
     print_debug_objects_info();
 
     return 0;
 }