Covellite++  Version: 2.3.0 Revision: 2580 Platform: x64 Build: 15:23 16.10.2020
Кроссплатформенный фреймворк для разработки приложений на С++
OpenGLCommon.hpp
1 
2 #pragma once
3 #include <glm/glm.force.hpp>
4 #include "GraphicApi.hpp"
5 
6 namespace covellite
7 {
8 
9 namespace api
10 {
11 
12 namespace renderer
13 {
14 
36 class OpenGLCommon :
37  public GraphicApi
38 {
39 public:
40  class Texture;
41  using MatrixBuilder_t = ::std::function<void(::glm::mat4 &)>;
42 
43 public:
44  // Интерфейс IGraphicApi:
45  String_t GetUsingApi(void) const override;
46  void ResizeWindow(const Rect &) noexcept final;
47 
48 protected:
49  // Интефейс GraphicApi
50  Render_t CreateState(const ComponentPtr_t &) override;
51 
52 protected:
53  Render_t GetDepthRender(const bool, const bool, const bool);
54  MatrixBuilder_t GetPreRenderGeometry(const ComponentPtr_t &);
55  MatrixBuilder_t GetPreRenderBillboardGeometry(const ComponentPtr_t &);
56 
57 protected:
58  class TexParameters final
59  {
60  public:
61  GLint MinFilter = 0;
62  GLint MagFilter = 0;
63  GLint WrapS = 0;
64  GLint WrapT = 0;
65  };
66 
67  TexParameters m_TexParameters;
68 
69 protected:
70  int m_Top;
71  int m_Width = 0;
72  int m_Height = 0;
73  const uint8_t Align[4] = { 0 };
74  const String_t m_PreVersion;
75 
76 protected:
77  OpenGLCommon(const Data_t &, const String_t &);
78  OpenGLCommon(const OpenGLCommon &) = delete;
79  OpenGLCommon(OpenGLCommon &&) = delete;
80  OpenGLCommon & operator= (const OpenGLCommon &) = delete;
81  OpenGLCommon & operator= (OpenGLCommon &&) = delete;
82  ~OpenGLCommon(void) = default;
83 };
84 
85 } // namespace renderer
86 
87 } // namespace api
88 
89 } // namespace covellite
covellite::api::renderer::GraphicApi
Класс входит в проект Covellite.Api Вспомогательный класс, содержащий общий для всех реализаций код...
Definition: GraphicApi.hpp:33
covellite::api::Component::Make
static ComponentPtr_t Make(const SourceParams_t &)
Функция создания объектов компонентов.
Definition: Component.inl:29
covellite::api::renderer::OpenGLCommon
Класс входит в проект Covellite.Api Вспомогательный класс, содержащий общий для Windows и Android к...
Definition: OpenGLCommon.hpp:38
covellite::api::renderer::SettingsData
Класс для передачи значений настроек программы реализации рендера.
Definition: IGraphicApi.hpp:62