Added Vulkan game window too

This commit is contained in:
2022-01-15 08:57:28 +01:00
parent 9135c2f20c
commit 6a24ac2a9b
17 changed files with 669 additions and 36 deletions
+40
View File
@@ -0,0 +1,40 @@
#include "gameengine.h"
#include <QVulkanInstance>
#include <QEventLoop>
#include "closeeventfilter.h"
GameEngine::GameEngine(const ProjectContainer &project, QObject *parent) :
QObject{parent},
m_project{project},
m_glGameWindow{m_project},
m_vulkanGameWindow{m_project}
{
m_vulkanInstance.setLayers(QByteArrayList { "VK_LAYER_LUNARG_standard_validation" });
if (!m_vulkanInstance.create())
qFatal("Failed to create Vulkan instance: %d", m_vulkanInstance.errorCode());
m_vulkanGameWindow.setVulkanInstance(&m_vulkanInstance);
}
void GameEngine::run()
{
m_glGameWindow.setTitle(tr("Game Window - OpenGL"));
m_vulkanGameWindow.setTitle(tr("Game Window - Vulkan"));
CloseEventFilter closeEventFilter;
m_glGameWindow.installEventFilter(&closeEventFilter);
m_vulkanGameWindow.installEventFilter(&closeEventFilter);
QEventLoop eventLoop;
connect(&closeEventFilter, &CloseEventFilter::closeEventReceived,
&eventLoop, &QEventLoop::quit);
m_glGameWindow.show();
m_vulkanGameWindow.show();
eventLoop.exec();
}