From 3497b97f6ea9da8efe56a835824477b27814aa34 Mon Sep 17 00:00:00 2001 From: Shaun Reed Date: Sun, 13 Mar 2022 18:00:00 -0400 Subject: [PATCH] Embed Qtk widget into QMainWindow application + Fix keyboard input focus to bind on mouse click + Fix missing call to `setFormat` in `MainWidget` ctor + Add placeholder toolbar options --- CMakeLists.txt | 89 +++++++++----------------------------- app/main.cpp | 8 ++-- resources/icon.png | Bin 0 -> 81163 bytes src/mainwidget.cpp | 42 ++++++++++++------ src/mainwidget.h | 2 + src/mainwindow.cpp | 15 +++++++ src/mainwindow.h | 24 +++++++++++ src/mainwindow.ui | 104 +++++++++++++++++++++++++++++++++++++++++++++ src/scene.cpp | 9 ++-- 9 files changed, 204 insertions(+), 89 deletions(-) create mode 100644 resources/icon.png create mode 100644 src/mainwindow.cpp create mode 100644 src/mainwindow.h create mode 100644 src/mainwindow.ui diff --git a/CMakeLists.txt b/CMakeLists.txt index 593611d..ca1b64c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -48,82 +48,33 @@ find_package(assimp REQUIRED) ################################################################################ # Mainwidget -add_library(main-widget src/mainwidget.cpp src/mainwidget.h) +include(GenerateExportHeader) +add_library(main-widget SHARED + src/mainwidget.cpp src/mainwidget.h + src/mainwindow.cpp src/mainwindow.h src/mainwindow.ui + src/input.cpp src/input.h + src/mesh.cpp src/mesh.h + src/texture.cpp src/texture.h + src/object.cpp src/object.h + src/meshrenderer.cpp src/meshrenderer.h + src/camera3d.cpp src/camera3d.h + src/skybox.cpp src/skybox.h + src/transform3D.cpp src/transform3D.h + src/model.cpp src/model.h + src/scene.cpp src/scene.h +) + target_include_directories(main-widget PUBLIC src/) target_include_directories(main-widget PRIVATE ${OPENGL_INCLUDE_DIR}) target_link_libraries(main-widget PRIVATE ${OPENGL_LIBRARIES}) - -# Input -add_library(input src/input.cpp src/input.h) -target_include_directories(input PUBLIC src/) -target_link_libraries(input PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) - -# Mesh -add_library(mesh src/mesh.cpp src/mesh.h) -target_include_directories(mesh PUBLIC src/) -target_link_libraries(mesh PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) - -# Texture -add_library(texture src/texture.cpp src/texture.h) -target_include_directories(texture PUBLIC src/) -target_link_libraries(texture PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) - -# Object -add_library(object src/object.cpp src/object.h) -target_include_directories(object PUBLIC src/) -target_link_libraries(object INTERFACE mesh) -target_link_libraries(object PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL) -target_link_libraries(object PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) - -# MeshRenderer -add_library(meshrenderer src/meshrenderer.cpp src/meshrenderer.h) -target_include_directories(meshrenderer PUBLIC src/) -target_link_libraries(meshrenderer PUBLIC object) - -# Camera3D -add_library(camera3d src/camera3d.cpp src/camera3d.h) -target_include_directories(camera3d PUBLIC src/) -target_link_libraries(camera3d INTERFACE input) -target_link_libraries(camera3d PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) - -# Skybox -add_library(skybox src/skybox.cpp src/skybox.h) -# Skybox needs Mesh, Camera3D, and Qt6::Widgets -target_link_libraries(skybox PRIVATE mesh) -target_link_libraries(skybox PRIVATE camera3d) -target_link_libraries(skybox PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) - -# Transform3D -add_library(transform3d src/transform3D.cpp src/transform3D.h) -target_include_directories(transform3d PUBLIC src/) -target_link_libraries(transform3d PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) - -# Model -add_library(model src/model.cpp src/model.h) -target_include_directories(model PUBLIC src/) -target_link_libraries(model PRIVATE assimp) -target_link_libraries(model PUBLIC Qt${QT_VERSION_MAJOR}::OpenGL) -# Model library requires transform3d and Qt6::Widgets -target_link_libraries(model PUBLIC transform3d) -target_link_libraries(model PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) - -# Scene -add_library(scene src/scene.cpp src/scene.h) -target_include_directories(scene PUBLIC src/) -target_link_libraries(scene PUBLIC model) -target_link_libraries(scene PUBLIC meshrenderer) -target_link_libraries(scene PUBLIC skybox) -target_link_libraries(scene PUBLIC texture) -target_link_libraries(scene PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) - +target_link_libraries(main-widget PRIVATE assimp) +target_link_libraries(main-widget PUBLIC Qt${QT_VERSION_MAJOR}::Widgets) +target_link_libraries(main-widget PUBLIC Qt${QT_VERSION_MAJOR}::OpenGLWidgets) ################################################################################ # Final Application ################################################################################ -target_link_libraries(main-widget PRIVATE mesh) -target_link_libraries(main-widget PUBLIC scene) - # Link qtk executable to main main-widget library target_link_libraries(qtk PUBLIC main-widget) @@ -131,3 +82,5 @@ set_target_properties(qtk PROPERTIES WIN32_EXECUTABLE TRUE MACOSX_BUNDLE TRUE ) + +generate_export_header(main-widget) diff --git a/app/main.cpp b/app/main.cpp index 38e9b78..15f56c9 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -10,6 +10,7 @@ #include #include +#include int main(int argc, char *argv[]) @@ -24,14 +25,15 @@ int main(int argc, char *argv[]) format.setVersion(4,5); // Set the number of samples used for glEnable(GL_MULTISAMPLING) format.setSamples(4); - // Set the size of teh depth bufer for glEnable(GL_DEPTH_TEST) + // Set the size of the depth bufer for glEnable(GL_DEPTH_TEST) format.setDepthBufferSize(16); #ifdef QTK_DEBUG format.setOption(QSurfaceFormat::DebugContext); #endif // QTK_DEBUG - // Set the widget up using a custom format - MainWidget widget(format); + // Create window for Qt application using custom mainwindow.h + MainWindow w; + w.show(); return a.exec(); } diff --git a/resources/icon.png b/resources/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..67d11c4570667dbbce7ab840877451ea79346c41 GIT binary patch literal 81163 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 zYmProgram.enableAttributeArray(0); mObject->mProgram.setAttributeBuffer(0, GL_FLOAT, 0, 3, sizeof(mObject->vertices()[0])); - mObject->mProgram.setUniformValue("uColor", QVector3D(0.0f, 0.25f, 0.0f)); + mObject->mProgram.setUniformValue("uColor", QVector3D(1.0f, 0.0f, 0.0f)); mObject->mProgram.setUniformValue("uLightColor", WHITE); - mObject->mProgram.setUniformValue("uAmbientStrength", 0.2f); + mObject->mProgram.setUniformValue("uAmbientStrength", 0.75f); mObject->mVBO.release(); mObject->mVAO.release(); @@ -248,6 +245,7 @@ void MainWidget::messageLogged(const QOpenGLDebugMessage &msg) void MainWidget::keyPressEvent(QKeyEvent *event) { if (event->isAutoRepeat()) { + // Do not repeat input while a key is held down event->ignore(); } else { Input::registerKeyPress(event->key()); @@ -278,6 +276,24 @@ void MainWidget::mouseReleaseEvent(QMouseEvent *event) * Private Helpers ******************************************************************************/ +void MainWidget::initializeWidget() +{ + QSurfaceFormat format; + format.setRenderableType(QSurfaceFormat::OpenGL); + format.setProfile(QSurfaceFormat::CoreProfile); + format.setVersion(4, 6); + // Set the number of samples used for glEnable(GL_MULTISAMPLING) + format.setSamples(4); + // Set the size of the depth bufer for glEnable(GL_DEPTH_TEST) + format.setDepthBufferSize(16); + // If QTK_DEBUG is set, enable debug context +#ifdef QTK_DEBUG + format.setOption(QSurfaceFormat::DebugContext); +#endif + setFormat(format); + setFocusPolicy(Qt::ClickFocus); +} + void MainWidget::printContextInformation() { QString glType; diff --git a/src/mainwidget.h b/src/mainwidget.h index 10093a7..ff00232 100644 --- a/src/mainwidget.h +++ b/src/mainwidget.h @@ -31,6 +31,7 @@ Q_OBJECT; public: // Constructors MainWidget(); + explicit MainWidget(QWidget *parent); explicit MainWidget(const QSurfaceFormat &format); ~MainWidget() override; @@ -57,6 +58,7 @@ protected: private: // Private helpers + void initializeWidget(); void printContextInformation(); void updateCameraInput(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp new file mode 100644 index 0000000..6ee1f0b --- /dev/null +++ b/src/mainwindow.cpp @@ -0,0 +1,15 @@ +#include "mainwindow.h" +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow) +{ + ui->setupUi(this); + setWindowIcon(QIcon("../resources/icon.png")); +} + +MainWindow::~MainWindow() +{ + delete ui; +} diff --git a/src/mainwindow.h b/src/mainwindow.h new file mode 100644 index 0000000..9efee87 --- /dev/null +++ b/src/mainwindow.h @@ -0,0 +1,24 @@ +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include + +#include "main-widget_export.h" + +namespace Ui { + class MainWindow; +} + +class MAIN_WIDGET_EXPORT MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = nullptr); + ~MainWindow(); + +private: + Ui::MainWindow *ui; +}; + +#endif // MAINWINDOW_H diff --git a/src/mainwindow.ui b/src/mainwindow.ui new file mode 100644 index 0000000..83f5142 --- /dev/null +++ b/src/mainwindow.ui @@ -0,0 +1,104 @@ + + + MainWindow + + + + 0 + 0 + 800 + 600 + + + + Qtk - MainWindow + + + + + + 10 + 10 + 775 + 550 + + + + + + + + 0 + 0 + 800 + 22 + + + + + File + + + + + + + + + View + + + + + + + + + + Save + + + + + Save + + + + + Open... + + + + + Save + + + + + Save as... + + + + + Exit + + + + + true + + + Show Console + + + + + + MainWidget + QOpenGLWidget +
mainwidget.h
+
+
+ + +
diff --git a/src/scene.cpp b/src/scene.cpp index ce972eb..70bf76f 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -24,7 +24,10 @@ QMatrix4x4 Scene::mProjection; Scene::Scene() { - init(); + mCamera.transform().setTranslation(0.0f, 0.0f, 20.0f); + mCamera.transform().setRotation(-5.0f, 0.0f, 1.0f, 0.0f); + + init(); } Scene::~Scene() @@ -44,10 +47,6 @@ Scene::~Scene() void Scene::init() { - mCamera.transform().setTranslation(0.0f, 0.0f, 5.0f); - mCamera.transform().setRotation(180.0f, 0.0f, 1.0f, 0.0f); - - // Initialize Phong example cube mTestPhong = new MeshRenderer("phong", Cube()); mTestPhong->mTransform.setTranslation(3.0f, 0.0f, -2.0f);