#include "OpenGlPainter.h" #include "DrawingContext.h" #include "DrawingSurface.h" #include "Scene.h" #include "TriMesh.h" #include "FontsManager.h" #include "FontGlyph.h" #include "TextData.h" #include "OpenGlShaderProgram.h" #include "OpenGlMeshPainter.h" #include "OpenGlTextPainter.h" #include "OpenGlFontTexture.h" #include "File.h" #ifdef _WIN32 #include #endif #define GL_GLEXT_PROTOTYPES #include #include #include #include #include #include #include OpenGlPainter::OpenGlPainter() : mMeshPainter(std::make_unique()), mTextPainter(std::make_unique()) { } void OpenGlPainter::paint(DrawingContext* context) { auto surface = context->getSurface(); const auto width = double(surface->getWidth()); const auto height = double(surface->getHeight()); glViewport(0, 0, width, height); glOrtho(0, width, 0, height, -1.0, 1.0); glClearColor(0.5, 0.5, 1.0, 0.0); glClear(GL_COLOR_BUFFER_BIT); const auto num_mesh = context->getScene()->getNumMeshes(); for (std::size_t idx=0 ; idx< num_mesh; idx++) { auto mesh = context->getScene()->getMesh(idx); mMeshPainter->paint(mesh, context); } auto text_data = context->getScene()->getTextData(); for (const auto& text_item : context->getScene()->getTextData()) { mTextPainter->paint(text_item, context); break; } glFlush(); }