diff -r 6de5ac1fb471 -r 3a9e761e4faa src/gl/partrenderer.h --- a/src/gl/partrenderer.h Sun Jan 19 14:25:57 2020 +0200 +++ b/src/gl/partrenderer.h Wed Jan 22 00:23:29 2020 +0200 @@ -2,6 +2,10 @@ #include #include #include +#include +#include +#include +#include #include "main.h" #include "gl/common.h" #include "gl/compiler.h" @@ -10,7 +14,8 @@ { Q_OBJECT public: - PartRenderer(Model* model, DocumentManager* documents, QWidget* parent = nullptr); + PartRenderer(Model* model, DocumentManager* documents, const ColorTable& colorTable, QWidget* parent = nullptr); + ~PartRenderer() override; protected: void initializeGL() override; void resizeGL(int width, int height) override; @@ -23,10 +28,19 @@ void renderScene(); Model* const model; DocumentManager* const documents; + const ColorTable& colorTable; QPointF lastMousePosition; QQuaternion rotation; gl::Compiler* compiler; gl::RenderStyle renderStyle = gl::RenderStyle::Normal; + struct + { + QOpenGLShaderProgram* program = nullptr; + QOpenGLBuffer buffer{QOpenGLBuffer::VertexBuffer}; + QOpenGLVertexArrayObject vertexArray; + } objects; bool initialized = false; void initializeLighting(); + void renderVao(const gl::ArrayClass arrayClass); + void checkForGLErrors(); };