diff --git a/MeshViewerQt/Form Files/MainWindow.ui b/MeshViewerQt/Form Files/MainWindow.ui new file mode 100644 index 0000000..2dbb7bb --- /dev/null +++ b/MeshViewerQt/Form Files/MainWindow.ui @@ -0,0 +1,29 @@ + + MainWindowClass + + + MainWindowClass + + + + 0 + 0 + 600 + 400 + + + + MainWindow + + + + + + + + + + + + + diff --git a/MeshViewerQt/Header/MainWindow.h b/MeshViewerQt/Header/MainWindow.h new file mode 100644 index 0000000..cc4f020 --- /dev/null +++ b/MeshViewerQt/Header/MainWindow.h @@ -0,0 +1,21 @@ +#pragma once + +#include +#include "ui_MainWindow.h" + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + MainWindow(QWidget *parent = Q_NULLPTR); + ~MainWindow(); + +private: + Ui::MainWindowClass* ui; + + void setupWindow(); + +protected: + virtual void keyPressEvent(QKeyEvent * keyEvent) override final; +}; diff --git a/MeshViewerQt/Header/OpenGlViewer.h b/MeshViewerQt/Header/OpenGlViewer.h new file mode 100644 index 0000000..c5ef150 --- /dev/null +++ b/MeshViewerQt/Header/OpenGlViewer.h @@ -0,0 +1,18 @@ +#pragma once + +#include +#include + +class OpenGlViewer : public QOpenGLWidget, protected QOpenGLFunctions +{ + Q_OBJECT + +public: + OpenGlViewer(QWidget *parent); + ~OpenGlViewer(); + +protected: + virtual void initializeGL() override final; + virtual void resizeGL(int w, int h) override final; + virtual void paintGL() override final; +}; diff --git a/MeshViewerQt/Header/defines.h b/MeshViewerQt/Header/defines.h new file mode 100644 index 0000000..54034d4 --- /dev/null +++ b/MeshViewerQt/Header/defines.h @@ -0,0 +1,10 @@ +#pragma once + +#define WINDOW_NAME "Mesh Viewer" +#define WINDOW_WIDTH 640 +#define WINDOW_HEIGHT 480 + +#define DEFAULT_STATUS_MESSAGE "Mesh Viewer pre alpha by Anakin" +#define DEFAULT_MAJOR_VERSION 4 +#define DEFAULT_MINOR_VERSION 5 +#define DEAFAULT_BACKGROUND 0.5000f, 0.8000f, 1.0000f, 0.0000f diff --git a/MeshViewerQt/Resources/MainWindow.qrc b/MeshViewerQt/Resources/MainWindow.qrc new file mode 100644 index 0000000..3ec5688 --- /dev/null +++ b/MeshViewerQt/Resources/MainWindow.qrc @@ -0,0 +1,5 @@ + + + icon.ico + + diff --git a/MeshViewerQt/Resources/icon.ico b/MeshViewerQt/Resources/icon.ico new file mode 100644 index 0000000..3a2186f Binary files /dev/null and b/MeshViewerQt/Resources/icon.ico differ diff --git a/MeshViewerQt/Source/MainWindow.cpp b/MeshViewerQt/Source/MainWindow.cpp new file mode 100644 index 0000000..1bd8441 --- /dev/null +++ b/MeshViewerQt/Source/MainWindow.cpp @@ -0,0 +1,44 @@ +#include "MainWindow.h" +#include "OpenGlViewer.h" +#include "defines.h" +#include + + +MainWindow::MainWindow(QWidget *parent) + : QMainWindow(parent) + , ui (new Ui::MainWindowClass) +{ + setupWindow(); +} + +MainWindow::~MainWindow() +{ + delete ui; +} + +void MainWindow::setupWindow() +{ + ui->setupUi(this); + + this->setWindowTitle(WINDOW_NAME); + this->setWindowIcon(QIcon(":/MainWindow/icon.ico")); + this->resize(WINDOW_WIDTH, WINDOW_HEIGHT); + + this->setCentralWidget(new OpenGlViewer(this)); + + ui->statusBar->showMessage(DEFAULT_STATUS_MESSAGE); + + +} + +void MainWindow::keyPressEvent(QKeyEvent * keyEvent) +{ + switch (keyEvent->key()) + { + case Qt::Key::Key_Escape: + close(); + break; + } + + QMainWindow::keyPressEvent(keyEvent); +} diff --git a/MeshViewerQt/Source/OpenGlViewer.cpp b/MeshViewerQt/Source/OpenGlViewer.cpp new file mode 100644 index 0000000..46d884e --- /dev/null +++ b/MeshViewerQt/Source/OpenGlViewer.cpp @@ -0,0 +1,34 @@ +#include "OpenGlViewer.h" +#include "defines.h" + +OpenGlViewer::OpenGlViewer(QWidget *parent) + : QOpenGLWidget(parent) +{ + QSurfaceFormat format; + format.setVersion(DEFAULT_MAJOR_VERSION, DEFAULT_MINOR_VERSION); + format.setProfile(QSurfaceFormat::CoreProfile); + this->setFormat(format); + +} + +OpenGlViewer::~OpenGlViewer() +{ +} + +void OpenGlViewer::initializeGL() +{ + initializeOpenGLFunctions(); + + glClearColor(DEAFAULT_BACKGROUND); +} + +void OpenGlViewer::resizeGL(int w, int h) +{ + //TODO: change perspective +} + +void OpenGlViewer::paintGL() +{ + //TODO: paint here +} + diff --git a/MeshViewerQt/main.cpp b/MeshViewerQt/main.cpp new file mode 100644 index 0000000..4a9f64c --- /dev/null +++ b/MeshViewerQt/main.cpp @@ -0,0 +1,17 @@ +#include "MainWindow.h" +#include + +int startGUI(int argc, char* argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + return a.exec(); +} + +int main(int argc, char *argv[]) +{ + int exitstatus = startGUI(argc, argv); + + return exitstatus; +}