#pragma once

#include "AbstractPainter.h"

#include <unordered_map>
#include <memory>

class DrawingContext;
class OpenGlMeshPainter;
class OpenGlTextPainter;

class TriMesh;

class OpenGlPainter : public AbstractPainter
{
public:
    OpenGlPainter(DrawingContext* context);
    void paint() override;

private:
    std::unique_ptr<OpenGlMeshPainter> mMeshPainter;
    std::unique_ptr<OpenGlTextPainter> mTextPainter;
};


