Interactive Mandelbrot viewer with Qt and OpenGL.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
672 B

3 years ago
#pragma once
#include <QVector2D>
#include <QOpenGLExtraFunctions>
#include <QOpenGLShaderProgram>
3 years ago
class Mandelbrot : public QObject, protected QOpenGLExtraFunctions {
Q_OBJECT
3 years ago
public:
void init(GLuint);
void draw();
void updateAnimation();
void setMaxIterations(int);
void translateRelative(QVector2D);
void zoomRelative(int, QVector2D);
void resizeRelative(QVector2D);
bool initShader();
public slots:
void toggleAnimation();
3 years ago
private:
int maxIterations = 0;
float hueAdd = 0;
QVector2D origin {-2, -1};
QVector2D size {2, 2};
float zoomModifier = 1.05;
bool animating = true;
GLuint vao;
QOpenGLShaderProgram shader;
void setShaderValues();
3 years ago
};