Covellite++  Version: 2.3.0 Revision: 2580 Platform: x64 Build: 15:23 16.10.2020
Кроссплатформенный фреймворк для разработки приложений на С++
Common.hpp
1 
2 #pragma once
3 #include <vector>
4 #include <alicorn/std/string.forward.hpp>
5 #include <alicorn/boost/filesystem.forward.hpp>
6 #include <Covellite/Api/Renders.hpp>
7 #include "IBasement.hpp"
8 
9 namespace basement
10 {
11 
29 class Common :
30  public IBasement
31 {
32 protected:
33  using String_t = ::alicorn::extension::std::String;
34  using Path_t = ::boost::filesystem::path;
36  using Updater_t = ::covellite::api::Updater_t;
38  using ObjectId_t = ::covellite::expanse::ObjectId_t;
39  using GameObject_t = ::covellite::expanse::GameObject_t;
40 
41 protected:
42  class Id final
43  {
44  public:
45  String_t GetStringId(void) const;
46  bool operator< (const Id &) const;
47 
48  private:
49  static size_t GetUniqueId(void);
50 
51  private:
52  size_t m_Id;
53 
54  public:
55  Id(void);
56  };
57 
58 protected:
59  static GameObject_t LoadTexture(const Path_t &, const String_t &,
60  const String_t & = uT("albedo"));
61  static GameObject_t LoadTexture(const Path_t &, const String_t &,
62  const String_t &, const int);
63  ObjectId_t CreateObject(const GameObject_t &);
64  void AddToRenderQueue(const ObjectId_t);
65 
66 private:
67  static GameObject_t LoadTexture(const Path_t &, const String_t &,
68  const Component_t::ComponentPtr_t &);
69 
70 private:
71  WindowExpanse_t * m_pWindowExpanse = nullptr;
72  ::std::vector<ObjectId_t> m_AllObjects;
73 
74 protected:
75  explicit Common(WindowExpanse_t &);
76  ~Common(void);
77 };
78 
79 } // namespace basement
basement::Common
Класс входит в проект Example Класс общей логики отрисовки 3D сцены.
Definition: Common.hpp:31
covellite::app::Settings_t
::alicorn::extension::std::Singleton< const Section_t & > Settings_t
Класс входит в проект Covellite.App Класс доступа к настройкам фреймворка.
Definition: Settings.hpp:37
covellite::api::Component
Класс входит в проект Covellite.Api Класс компонента.
Definition: Component.hpp:35
covellite::expanse::IWindow
Класс входит в проект Covellite.Expanse Интерфейс класса окна.
Definition: IWindow.hpp:32
basement::IBasement
Класс входит в проект Example Интерфейсный класс для классов отрисовки 3D сцены.
Definition: IBasement.hpp:47
basement
Definition: Common.hpp:10