src/gl/basicshaderprogram.h

changeset 75
204dc77e5654
parent 70
f21b800b02a4
child 102
9f435f66bd0c
child 118
8e1c9f18ae15
--- a/src/gl/basicshaderprogram.h	Sat Mar 07 01:20:36 2020 +0200
+++ b/src/gl/basicshaderprogram.h	Sat Mar 07 01:25:37 2020 +0200
@@ -1,6 +1,13 @@
 #pragma once
 #include "common.h"
 
+/**
+ * @brief Base class for basic shader programs
+ *
+ * A basic program is a collection of a single VAO with a single VBO,
+ * a vertex shader and a fragment shader. This program deals with these
+ * components, leaving the program-specific details to the subclasses.
+ */
 class AbstractBasicShaderProgram : public QObject, protected QOpenGLFunctions
 {
 	Q_OBJECT
@@ -16,12 +23,19 @@
 protected:
 	void setMatrix(const char* name, const glm::mat4& matrix);
 	void checkForGLErrors();
+	/// \returns the source code of the vertex shader
 	virtual const char* vertexShaderSource() const = 0;
+	/// \returns the source code of the fragment shader
 	virtual const char* fragmentShaderSource() const = 0;
+	/// \returns the vertex data for the VBO
 	virtual const void* vertexData() const = 0;
+	/// \returns the size of a single vertex in bytes
 	virtual int vertexSize() const = 0;
+	/// \returns the amount of vertices in the data
 	virtual int vertexCount() const = 0;
+	/// Called during initialization to set up the VAO. Set up your vertex array attributes here.
 	virtual void setupVertexArrays() = 0;
+	// \returns what kind of elements are drawn (GL_QUADS, GL_TRIANGLES, GL_LINES, etc)
 	virtual GLenum drawMode() const = 0;
 	bool isInitialized = false;
 	QOpenGLBuffer buffer;

mercurial