opengl basics

master
Benjamin Kraft 3 years ago
parent f29499fee6
commit d9ffbb1b6c
  1. 4
      CMakeLists.txt
  2. 6
      headers/MainWindow.h
  3. 14
      headers/OutputWidget.h
  4. 18
      src/MainWindow.cpp
  5. 32
      src/OutputWidget.cpp

@ -12,7 +12,7 @@ find_package(Qt6 COMPONENTS
Core
Gui
Widgets
OpenGL
OpenGLWidgets
REQUIRED)
file(GLOB_RECURSE SOURCE_FILES src/**.cpp)
@ -23,5 +23,5 @@ target_link_libraries(Mandelbrot
Qt::Core
Qt::Gui
Qt::Widgets
Qt::OpenGL
Qt::OpenGLWidgets
)

@ -6,9 +6,9 @@
class MainWindow : public QWidget {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
public slots:
void sizeChanged(int newValue);
explicit MainWindow();
private slots:
void sizeSliderChanged(int);
private:
void buildUI();

@ -3,9 +3,21 @@
#include <QWidget>
#include <QOpenGLFunctions>
#include <QOpenGLWidget>
class OutputWidget : public QWidget{
class OutputWidget : public QOpenGLWidget, protected QOpenGLFunctions {
Q_OBJECT
private:
void initializeGL() override;
void paintGL() override;
void resizeGL(int, int) override;
void wheelEvent(QWheelEvent*) override;
void mouseMoveEvent(QMouseEvent*) override;
void mousePressEvent(QMouseEvent*) override;
void mouseReleaseEvent(QMouseEvent*) override;
void keyPressEvent(QKeyEvent*) override;
};

@ -3,7 +3,7 @@
#include <iostream>
#include "../headers/MainWindow.h"
MainWindow::MainWindow(QWidget *parent): QWidget(parent) {
MainWindow::MainWindow() {
buildUI();
}
@ -11,20 +11,18 @@ void MainWindow::buildUI() {
auto sizeSlider = new QSlider(Qt::Horizontal);
sizeSlider->setRange(100, 800);
QSlider::connect(sizeSlider, &QSlider::valueChanged, this, &MainWindow::sizeChanged);
QSlider::connect(sizeSlider, &QSlider::valueChanged, this, &MainWindow::sizeSliderChanged);
sizeSlider->setValue(500);
auto controls = new QGridLayout;
controls->addWidget(sizeSlider);
QVBoxLayout lyt;
lyt.addWidget(outputWidget);
lyt.addLayout(controls);
setLayout(&lyt);
auto lyt = new QVBoxLayout(this);
lyt->addWidget(outputWidget);
lyt->addLayout(controls);
}
void MainWindow::sizeChanged(int newValue) {
std::cout << newValue << std::endl;
//TODO Handle size change
void MainWindow::sizeSliderChanged(int newValue) {
}

@ -1,2 +1,34 @@
#include "../headers/OutputWidget.h"
void OutputWidget::initializeGL() {
}
void OutputWidget::paintGL() {
}
void OutputWidget::resizeGL(int w, int h) {
}
void OutputWidget::wheelEvent(QWheelEvent *e) {
}
void OutputWidget::mouseMoveEvent(QMouseEvent *e) {
}
void OutputWidget::mousePressEvent(QMouseEvent *e) {
}
void OutputWidget::mouseReleaseEvent(QMouseEvent *e) {
}
void OutputWidget::keyPressEvent(QKeyEvent *e) {
}

Loading…
Cancel
Save