stuff-from-scratch/src/graphics/opengl/OpenGlMeshPainter.h
2022-11-16 09:39:05 +00:00

27 lines
577 B
C++

#pragma once
#include <memory>
#include <vector>
class DrawingContext;
class OpenGlShaderProgram;
class TriMesh;
class OpenGlMeshPainter
{
public:
OpenGlMeshPainter();
void paint(TriMesh* mesh, DrawingContext* context);
private:
void initializeShader();
void initializeBuffers();
void paint(const std::vector<float>& verts, const std::vector<unsigned>& elements, const std::vector<float>& color);
unsigned mVertexBuffer{0};
unsigned mElementBuffer{0};
unsigned mVertexArray{0};
std::unique_ptr<OpenGlShaderProgram> mShaderProgram;
};