void OpenGLWidget::initializeGL() { resolver = new Resolver(); r = resolver; connect(selector, SIGNAL(useShader(QString, QString)), this, SLOT(createFractal(QString, QString))); initializeOpenGLFunctions(); glClearColor(0.0f, 0.5f, 1.0f, 1.0f); m_vao.create(); QOpenGLBuffer m_vvbo(QOpenGLBuffer::VertexBuffer); QOpenGLBuffer m_ebo(QOpenGLBuffer::IndexBuffer); // Fill mode for polygons glPolygonMode(GL_FRONT_AND_BACK, GL_LINE); // Shaders createFractal("mandelbrot", "Mandelbrot Set"); resizeGL(WINDOW_WIDTH, WINDOW_HEIGHT); paneButton = new QPushButton(this); paneButton->setGeometry(QRect(0, 0, 25, 25)); paneButton->setText("<->"); connect(paneButton, SIGNAL(pressed()), pane, SLOT(toggle())); paneButton->show(); animButton->raise(); animButton->setGeometry(QRect(WINDOW_WIDTH - 25, 0, 25, 25)); animButton->setText("<->"); connect(animButton, SIGNAL(pressed()), ::anim, SLOT(toggle())); animButton->show(); updateTimer = new QTimer(this); updateTimer->setInterval(1000.f / 1000.f); connect(updateTimer, SIGNAL(timeout()), this, SLOT(drawFrame())); updateTimer->start(); animLayout->addWidget(anim.buttonAdd); animLayout->addWidget(anim.buttonDelete); animLayout->addWidget(anim.checkBox); for (unsigned int i = 0; i < 1024; ++i) keys[i] = false; anim.origin = &origin; anim.zoom = &zoom; anim.maxIterations = &maxIterations; drawFrame(); }
//-------------------------------------------------------------- void testApp::mousePressed(int x, int y, int button){ currentSeed++; if( currentSeed >= seedList.size() ){ currentSeed = 0; } createFractal( seedList[currentSeed] ); }
//-------------------------------------------------------------- void testApp::setup(){ seedList.push_back( "VBWNBDELYHUL" ); seedList.push_back( "CVQKGHQTPHTE" ); seedList.push_back( "FIRCDERRPVLD" ); seedList.push_back( "GIIETPIQRRUL" ); currentSeed = 0; createFractal( seedList[currentSeed] ); ofBackground(0); }