src/gl/vertexprogram.h

Wed, 08 Jun 2022 22:29:44 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Wed, 08 Jun 2022 22:29:44 +0300
changeset 206
654661eab7f3
parent 200
ca23936b455b
child 214
8e1fe64ce4e3
permissions
-rw-r--r--

More refactor, merged main.h, basics.h and utility.h into one header file basics.h and removed plenty of unused code

#ifndef VERTEXPROGRAM_H
#define VERTEXPROGRAM_H
#include "basicshaderprogram.h"
class EditorTabWidget;

class VertexProgram : public AbstractBasicShaderProgram
{
public:
	enum FragmentStyle
	{
		Normal,
		Id
	};
	struct Vertex
	{
		glm::vec3 position;
		glm::vec3 color;
	};
	VertexProgram(QObject* parent = nullptr);
	void build(const EditorTabWidget* document);
protected:
	const char* vertexShaderSource() const override;
	const char* fragmentShaderSource() const override;
	const void* vertexData() const override;
	int vertexSize() const override;
	int vertexCount() const override;
	void setupVertexArrays() override;
	GLenum drawMode() const override;
	QOpenGLBuffer::UsagePattern usagePattern() const override;
	void setFragmentStyle(FragmentStyle newFragmentStyle);
private:
	std::vector<Vertex> data;
	FragmentStyle fragmentStyle = Normal;
};

#endif // VERTEXPROGRAM_H

mercurial