Covellite++  Version: 2.3.3 Revision: 2585 Platform: x64 Build: 21:20 20.09.2026
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
OpenGLCommonShader.hpp
1
2#pragma once
3#include "OpenGLCommon.hpp"
4
5namespace covellite
6{
7
8namespace api
9{
10
11namespace renderer
12{
13
30class OpenGLCommonShader :
31 public OpenGLCommon
32{
33public:
34 // Интерфейс IGraphicApi:
35 String_t GetUsingApi(void) const override;
36 void PresentFrame(void) override;
37
38protected:
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 CreateTextureArray(const ComponentPtr_t &) override;
45 Render_t CreateShader(const ComponentPtr_t &) override;
46 Render_t CreateBuffer(const ComponentPtr_t &) override;
47 Render_t CreateTransform(const ComponentPtr_t &) override;
48 Render_t CreatePresentBuffer(const ComponentPtr_t &) override;
49
50protected:
51 static const ::std::string DesktopShaderHeader;
52 static const ::std::string AndroidShaderHeader;
53 static void CompileShader(const ComponentPtr_t &);
54
55private:
56 Render_t GetCameraCommon(const ComponentPtr_t &);
57 Render_t GetCameraOrthographic(const ComponentPtr_t &);
58 Render_t GetCameraPerspective(const ComponentPtr_t &);
59
60private:
61 class Buffer;
62
63private:
64 template<class>
65 class ConstantBuffer;
66 Render_t m_DrawElements = [](void) {};
67
68private:
69 class Programs;
70 using ProgramsPtr_t = ::std::shared_ptr<Programs>;
71 const ProgramsPtr_t m_pPrograms;
72
73public:
74 OpenGLCommonShader(const Data_t &, const String_t &, const ::std::string &);
75 OpenGLCommonShader(const OpenGLCommonShader &) = delete;
76 OpenGLCommonShader(OpenGLCommonShader &&) = delete;
77 OpenGLCommonShader & operator= (const OpenGLCommonShader &) = delete;
78 OpenGLCommonShader & operator= (OpenGLCommonShader &&) = delete;
79 ~OpenGLCommonShader(void) = default;
80
81private:
82 friend class CompileShader;
83};
84
85} // namespace renderer
86
87} // namespace api
88
89} // namespace covellite
Render_t GetCameraOrthographic(const ComponentPtr_t &)
Определения OpenGLCommonShader.cpp:1362
Render_t CreateTransform(const ComponentPtr_t &) override
Определения OpenGLCommonShader.cpp:1116