Covellite++  Version: 2.3.0 Revision: 2580 Platform: x64 Build: 15:23 16.10.2020
Кроссплатформенный фреймворк для разработки приложений на С++
OpenGLCommonShader.hpp
1 
2 #pragma once
3 #include "OpenGLCommon.hpp"
4 
5 namespace covellite
6 {
7 
8 namespace api
9 {
10 
11 namespace renderer
12 {
13 
31  public OpenGLCommon
32 {
33 public:
34  // Интерфейс IGraphicApi:
35  String_t GetUsingApi(void) const override;
36  void PresentFrame(void) override;
37 
38 protected:
39  // Интефейс GraphicApi
40  Render_t CreateCamera(const ComponentPtr_t &) override;
41  Render_t CreateBkSurface(const ComponentPtr_t &) override;
42  Render_t CreateState(const ComponentPtr_t &) override;
43  Render_t CreateTexture(const ComponentPtr_t &) override;
44  Render_t CreateShader(const ComponentPtr_t &) override;
45  Render_t CreateBuffer(const ComponentPtr_t &) override;
46  Render_t CreateTransform(const ComponentPtr_t &) override;
47  Render_t CreatePresentBuffer(const ComponentPtr_t &) override;
48 
49 private:
50  Render_t GetCameraCommon(const ComponentPtr_t &);
51  Render_t GetCameraOrthographic(const ComponentPtr_t &);
52  Render_t GetCameraPerspective(const ComponentPtr_t &);
53 
54 private:
55  class Buffer;
56 
57 private:
58  template<class>
59  class ConstantBuffer;
60  Render_t m_DrawElements = [](void) {};
61 
62 private:
63  class Programs;
64  using ProgramsPtr_t = ::std::shared_ptr<Programs>;
65  const ProgramsPtr_t m_pPrograms;
66 
67 public:
68  OpenGLCommonShader(const Data_t &, const String_t &, const ::std::string &);
69  OpenGLCommonShader(const OpenGLCommonShader &) = delete;
71  OpenGLCommonShader & operator= (const OpenGLCommonShader &) = delete;
72  OpenGLCommonShader & operator= (OpenGLCommonShader &&) = delete;
73  ~OpenGLCommonShader(void) = default;
74 };
75 
76 } // namespace renderer
77 
78 } // namespace api
79 
80 } // namespace covellite
covellite::api::Component::Make
static ComponentPtr_t Make(const SourceParams_t &)
Функция создания объектов компонентов.
Definition: Component.inl:29
covellite::api::renderer::OpenGLCommonShader
Класс входит в проект Covellite.Api Вспомогательный класс, содержащий общий для Windows и Android к...
Definition: OpenGLCommonShader.hpp:32
covellite::api::renderer::OpenGLCommonShader::CreateTransform
Render_t CreateTransform(const ComponentPtr_t &) override
Definition: OpenGLCommonShader.cpp:1020
covellite::api::Vertex
Класс входит в проект Covellite.Api Класс формата вертексного буфера.
Definition: Vertex.hpp:34
covellite::api::renderer::OpenGLCommonShader::GetCameraOrthographic
Render_t GetCameraOrthographic(const ComponentPtr_t &)
Definition: OpenGLCommonShader.cpp:1263
covellite::api::renderer::OpenGLCommon
Класс входит в проект Covellite.Api Вспомогательный класс, содержащий общий для Windows и Android к...
Definition: OpenGLCommon.hpp:38
covellite::api::renderer::SettingsData
Класс для передачи значений настроек программы реализации рендера.
Definition: IGraphicApi.hpp:62