35 virtual int vertexCount() const = 0; |
35 virtual int vertexCount() const = 0; |
36 /// Called during initialization to set up the VAO. Set up your vertex array attributes here. |
36 /// Called during initialization to set up the VAO. Set up your vertex array attributes here. |
37 virtual void setupVertexArrays() = 0; |
37 virtual void setupVertexArrays() = 0; |
38 // \returns what kind of elements are drawn (GL_QUADS, GL_TRIANGLES, GL_LINES, etc) |
38 // \returns what kind of elements are drawn (GL_QUADS, GL_TRIANGLES, GL_LINES, etc) |
39 virtual GLenum drawMode() const = 0; |
39 virtual GLenum drawMode() const = 0; |
|
40 virtual QOpenGLBuffer::UsagePattern usagePattern() const = 0; |
40 bool isInitialized = false; |
41 bool isInitialized = false; |
41 QOpenGLBuffer buffer; |
42 QOpenGLBuffer buffer; |
42 QOpenGLShader vertexShader; |
43 QOpenGLShader vertexShader; |
43 QOpenGLShader fragmentShader; |
44 QOpenGLShader fragmentShader; |
44 std::optional<gl::ShaderProgram> program{std::nullopt}; |
45 std::optional<gl::ShaderProgram> program{std::nullopt}; |