diff --git a/Fragment.glsl b/Fragment.glsl index bbe365f..a986285 100644 --- a/Fragment.glsl +++ b/Fragment.glsl @@ -2,7 +2,6 @@ out vec4 pixColor; uniform int iterationCount; -uniform float divergeThreshold; in vec2 complexPos; @@ -20,7 +19,7 @@ void main(){ vec2 z; float stepsNeeded = 0; - while (stepsNeeded < iterationCount && length(z) < divergeThreshold){ + while (stepsNeeded < iterationCount && length(z) < 2){ z = mul(z, z) + complexPos; ++stepsNeeded; } diff --git a/headers/MainWindow.h b/headers/MainWindow.h index 45a808b..06c28c6 100644 --- a/headers/MainWindow.h +++ b/headers/MainWindow.h @@ -7,9 +7,6 @@ class MainWindow : public QWidget { Q_OBJECT public: explicit MainWindow(); -private slots: - void iterationsSliderChanged(int); - void limitSliderChanged(int); private: void buildUI(); OutputWidget* outputWidget = new OutputWidget(this); diff --git a/headers/Mandelbrot.h b/headers/Mandelbrot.h index 9f6cc6c..0a510c6 100644 --- a/headers/Mandelbrot.h +++ b/headers/Mandelbrot.h @@ -12,10 +12,8 @@ public: void zoom(double); public slots: void setIterations(int); - void updateLimit(int); private: int iterations = 0; - float divergeThreshold = 0; double scale = 1; QVector2D translation; void setShaderValues(QOpenGLShaderProgram&); diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp index 987e1fc..ad8d600 100644 --- a/src/MainWindow.cpp +++ b/src/MainWindow.cpp @@ -27,41 +27,12 @@ void MainWindow::buildUI() { }); iterationsSlider->setValue(100); - auto limitCaption = new QLabel("Diverge threshold:"); - auto limitLabel = new QLabel; - //limitLabel->setAlignment(Qt::AlignRight); - auto limitSlider = new QSlider(Qt::Horizontal); - limitSlider->setRange(100, 500); - connect( - limitSlider, - &QSlider::valueChanged, - this, - [limitLabel, this](int value) -> void { - this->outputWidget->getMandelbrot()->updateLimit(value); - this->outputWidget->update(); - limitLabel->setNum(double(value) / 100); - }); - limitSlider->setValue(200); - auto controls = new QGridLayout; controls->addWidget(iterationsCaption, 1, 1); controls->addWidget(iterationsLabel, 1, 2); controls->addWidget(iterationsSlider, 1, 3); - controls->addWidget(limitCaption, 2, 1); - controls->addWidget(limitLabel, 2, 2); - controls->addWidget(limitSlider, 2, 3); auto lyt = new QVBoxLayout(this); lyt->addWidget(outputWidget); lyt->addLayout(controls); } - -void MainWindow::iterationsSliderChanged(int newValue) { - //TODO update text label - outputWidget->update(); -} - -void MainWindow::limitSliderChanged(int newValue) { - //TODO update text label - outputWidget->update(); -} diff --git a/src/Mandelbrot.cpp b/src/Mandelbrot.cpp index 0686e28..e464844 100644 --- a/src/Mandelbrot.cpp +++ b/src/Mandelbrot.cpp @@ -17,7 +17,6 @@ void Mandelbrot::setShaderValues(QOpenGLShaderProgram &shader) { shader.setUniformValue("origin", QVector2D(-1, 1)); shader.setUniformValue("size", QVector2D(2, 2)); shader.setUniformValue("iterationCount", iterations); - shader.setUniformValue("divergeThreshold", divergeThreshold); } void Mandelbrot::zoom(double delta) { @@ -28,10 +27,6 @@ void Mandelbrot::setIterations(int value) { iterations = value; } -void Mandelbrot::updateLimit(int value) { - divergeThreshold = float(value) / 100; -} -