resources.h 832 B

1234567891011121314151617181920212223242526272829303132
  1. #pragma once
  2. #include "mesh.h"
  3. #include "texture.h"
  4. #include <QOpenGLFunctions_3_3_Core>
  5. #include <memory>
  6. #include "../geom/arrow.h"
  7. namespace Render::GL {
  8. class ResourceManager : protected QOpenGLFunctions_3_3_Core {
  9. public:
  10. ResourceManager() = default;
  11. ~ResourceManager() override = default;
  12. auto initialize() -> bool;
  13. [[nodiscard]] auto quad() const -> Mesh * { return m_quadMesh.get(); }
  14. [[nodiscard]] auto ground() const -> Mesh * { return m_groundMesh.get(); }
  15. [[nodiscard]] auto unit() const -> Mesh * { return m_unitMesh.get(); }
  16. [[nodiscard]] auto white() const -> Texture * { return m_whiteTexture.get(); }
  17. private:
  18. std::unique_ptr<Mesh> m_quadMesh;
  19. std::unique_ptr<Mesh> m_groundMesh;
  20. std::unique_ptr<Mesh> m_unitMesh;
  21. std::unique_ptr<Texture> m_whiteTexture;
  22. };
  23. } // namespace Render::GL