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