/
ArtemNech
/
simpleOpenGL
Обзор
Документация
Войти
/
ArtemNech
/
simpleOpenGL
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
backend/ogl_sys/drawing-sets/COglLayer.cpp
92 строки
2 KB
Artem Nechitaylenko
initial
16 май 2026, 12:48
16 май 2026, 12:48
0d3ac6c
Код
Авторство
О чём код?
// // Created by artem on 11.04.26. // #include "shaderprogram.h" #include "COglLayer.h" #include "../../graphics-units/NRectF.h" #include "../../CBacking.h" COglLayer::~COglLayer() { m_vao->unbind(); delete m_vao; m_vbo->unbind(); delete m_vbo; m_shaderProgram->unbind(); delete m_shaderProgram; } COglLayer::COglLayer(float Z) { m_shaderProgram = new ShaderProgram(); m_vbo = new Buffer(Vertex); m_vao = new VertexArray(); m_z = Z; m_backing = nullptr; m_projection = {}; } void COglLayer::startBatch(GLenum primitive, float fontSize, bool useTexture, GLuint textureId, bool useSDF, bool hasGradient, GradientUniforms uniforms) { DrawBatch batch; batch.primitive = primitive; batch.useTexture = useTexture; batch.useSDF = useSDF; batch.hasGradient = hasGradient; // ← принимаем параметр batch.textureId = textureId; batch.vertexOffset = (int)m_vertices.size(); batch.fontSize = fontSize; batch.gradient_uniforms = uniforms; m_batches.push_back(batch); } void COglLayer::endBatch() { if (!m_batches.empty()) { m_batches.back().vertexCount = (int)m_vertices.size() - m_batches.back().vertexOffset; } } std::vector<vertex_t> &COglLayer::vertices() { return m_vertices; } std::pair<float, float> COglLayer::worldToGL(const ngraph::NPointF &p) { // концепция сменилась - отправляем мировые координаты в видяху. return {p.x(), p.y()}; /* ngraph::NRectF size = m_backing->getViewportRect(); return { (2.0f * p.x() / size.width()) - 1.0f, 1.0f - (2.0f * p.y() / size.height()) };*/ } ngraph::NSizeF COglLayer::viewport_size() const { return m_backing->getViewportRect().size(); } bool COglLayer::is_enabled() const { return m_enabled; } void COglLayer::set_enabled(bool enabled) { m_enabled = enabled; } float COglLayer::get_layer_Z() const { return m_z; }