Covellite++  Version: 2.3.2 Revision: 2584 Platform: x64 Build: 19:03 05.09.2026
Кроссплатформенный фреймворк для разработки приложений на С++
Загрузка...
Поиск...
Не найдено
OpenGLES3.cpp
1
2#include "stdafx.h"
3#include "OpenGLES3.hpp"
4#include <Covellite.Egl\Egl.hpp>
5
6namespace covellite::api::renderer
7{
8
9OpenGLES3::OpenGLES3(const Data_t & _Data) :
10 OpenGLCommonShader(_Data, uT(""),
11 "#version 300 es\r\n"
12 "#define COVELLITE_SHADER_MOBILE\r\n"),
13 m_pDisplay(::std::make_unique<covellite::egl::Display>()),
14 m_pConfig(::std::make_unique<covellite::egl::Config>(*m_pDisplay, ::covellite::any_cast<ANativeWindow *>(_Data.Handle))),
15 m_pSurface(::std::make_unique<covellite::egl::Surface>(*m_pDisplay, *m_pConfig, ::covellite::any_cast<ANativeWindow *>(_Data.Handle))),
16 m_pContext(::std::make_unique<covellite::egl::Context>(*m_pDisplay, *m_pConfig, 3))
17{
18 m_pContext->MakeCurrent(*m_pSurface);
19}
20
21OpenGLES3::~OpenGLES3(void) = default;
22
23void OpenGLES3::PresentFrame(void) /*override*/
24{
25 if (m_Top > 0)
26 {
27 // Для Android очищаем заголовок, иначе остается мусор под заголовком
28 // при повороте устройства.
29
30 glEnable(GL_SCISSOR_TEST);
31
32 // (0, 0) - левый нижний угол!
33 glScissor(0, m_Height - m_Top, m_Width, m_Top);
34
35 // 22 Май 2020 10:58 (unicornum.verum@gmail.com)
36 TODO("Цвет заголовка Android - в настройках?");
37 glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
38 glClear(GL_COLOR_BUFFER_BIT);
39
40 glDisable(GL_SCISSOR_TEST);
41 }
42
43 m_pSurface->SwapBuffers();
44
45 OpenGLCommonShader::PresentFrame();
46}
47
48} // nnamespace covellite::api::renderer
Класс входит в проект Covellite.Api Вспомогательный класс, содержащий общий для Windows и Android к...
Определения OpenGLCommonShader.hpp:32
void PresentFrame(void) override
Определения OpenGLES3.cpp:23