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;
+}