1 #ifndef SIMPLETEXTUREDRENDERER_H 2 #define SIMPLETEXTUREDRENDERER_H 4 #include <QSharedPointer> 8 #include <QOpenGLBuffer> 9 #include <QOpenGLVertexArrayObject> 30 void paint(QMatrix4x4 mvpMatrix, QVector3D camPos)
override;
77 void createSceneBuffers();
89 void clearAllTextures();
104 QMap<const SimpleTexturedObject *, QSharedPointer<QOpenGLVertexArrayObject>> mVAOs;
105 QMap<const SimpleTexturedObject *, int> mNumVertices;
107 QMap<const SimpleTexturedObject *, QSharedPointer<QOpenGLBuffer>> mObjectVertexPositions;
108 QMap<const SimpleTexturedObject *, QSharedPointer<QOpenGLBuffer>> mObjectVertexNormals;
109 QMap<const SimpleTexturedObject *, QSharedPointer<QOpenGLBuffer>> mObjectVertexMaterials;
110 QMap<const SimpleTexturedObject *, QSharedPointer<QOpenGLBuffer>> mObjectVertexTexCoords;
118 QMap<const QImage *, QSharedPointer<QOpenGLTexture>> mImagesToTextures;
122 QMap<const QOpenGLTexture *, QSet<const SimpleTexturedObject *>> mTexturesToObjects;
126 #endif // SIMPLETEXTUREDRENDERER_H void objectAdded(const SimpleTexturedObject &obj)
This slot should be called whenever the underlying scene has a new object.
Definition: simpletexturedrenderer.cpp:23
SimpleTexturedScene::SharedSimpleTexturedScene SharedSimpleTexturedScene
Definition: simpletexturedscene.h:136
void cleanUp() override
Cleans up all OpenGL data. This assumes that the correct context is current, and all data is cleaned ...
Definition: simpletexturedrenderer.cpp:92
void paint(QMatrix4x4 mvpMatrix, QVector3D camPos) override
Uses OpenGL commands to draw to the frame buffer. Nothing is assumed about the previous contents of t...
Definition: simpletexturedrenderer.cpp:112
void create() override
This is (should be) called on an OpenGL thread before this object is used. Allows the renderer to ini...
Definition: simpletexturedrenderer.cpp:180
Wrapper for the 'onelighttexture' GLSL program.
Definition: simpletexturedshader.h:13
virtual ~SimpleTexturedRenderer()
Definition: simpletexturedrenderer.cpp:17
The SimpleTexturedObject class represents an object with Phong lighting information and a single text...
Definition: simpletexturedobject.h:23
void clearAll()
Clears all OpenGL data, not assuming that a context is current. Some data may not be cleared immediat...
Definition: simpletexturedrenderer.cpp:68
void objectRemoved(const SimpleTexturedObject &obj)
This slot should be called whenever an object is removed from the underlying scene. Locks the mGLDataMutex.
Definition: simpletexturedrenderer.cpp:33
Something that renders a 3D scene to the screen using OpenGL.
Definition: abstractrenderer.h:18
SimpleTexturedRenderer(SharedSimpleTexturedScene scene)
Definition: simpletexturedrenderer.cpp:11
The SimpleTexturedRenderer class renders a SimpleTexturedScene.
Definition: simpletexturedrenderer.h:21
void initializeRenderer() override
Used to initialize renderer parameters that require an OpenGL context to be bound.
Definition: simpletexturedrenderer.cpp:185