added few files of the Vulkan support.
This commit is contained in:
parent
dc118dec7d
commit
41b9f13270
25
inc/hgl/qt/QtVulkanWindow.h
Normal file
25
inc/hgl/qt/QtVulkanWindow.h
Normal file
@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#include<QWindow>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
class QtVulkanWindow:public QWindow
|
||||
{
|
||||
public:
|
||||
|
||||
bool event(QEvent* e) override;
|
||||
|
||||
void exposeEvent(QExposeEvent*) override;
|
||||
void hideEvent(QHideEvent* ev) override;
|
||||
|
||||
void keyPressEvent(QKeyEvent*) override;
|
||||
void keyReleaseEvent(QKeyEvent*) override;
|
||||
void mouseMoveEvent(QMouseEvent*) override;
|
||||
void mousePressEvent(QMouseEvent*) override;
|
||||
void mouseReleaseEvent(QMouseEvent*) override;
|
||||
void resizeEvent(QResizeEvent*) override;
|
||||
void moveEvent(QMoveEvent*) override;
|
||||
void wheelEvent(QWheelEvent*) override;
|
||||
};//public QtVulkanWindow
|
||||
}//namespace hgl
|
@ -1,4 +1,4 @@
|
||||
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui Widgets Svg Xml)
|
||||
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS Gui Widgets Svg Xml VulkanSupport)
|
||||
|
||||
SET(CMQT_INCLUDE_PATH ${CMQT_ROOT_INCLUDE_PATH}/hgl/qt)
|
||||
|
||||
@ -20,6 +20,12 @@ SET(CMQT_IMAGE_FILES image/SVGPixmap.cpp)
|
||||
|
||||
SOURCE_GROUP("Image" FILES ${CMQT_IMAGE_FILES})
|
||||
|
||||
add_cm_library(CMQT "CM" ${CMQT_DIALOG_FILES} ${CMQT_IMAGE_FILES})
|
||||
SET(CMQT_Vulkan_FILES ${CMQT_INCLUDE_PATH}/QtVulkanWindow.h
|
||||
vulkan/QtVulkanWindow.cpp
|
||||
vulkan/QtVulkanSurface.cpp)
|
||||
|
||||
target_link_libraries(CMQT PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Svg Qt5::Xml)
|
||||
SOURCE_GROUP("Vulkan" FILES ${CMQT_Vulkan_FILES})
|
||||
|
||||
add_cm_library(CMQT "CM" ${CMQT_DIALOG_FILES} ${CMQT_IMAGE_FILES} ${CMQT_Vulkan_FILES})
|
||||
|
||||
target_link_libraries(CMQT PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Svg Qt5::Xml Qt5::VulkanSupport)
|
33
src/vulkan/QtVulkanSurface.cpp
Normal file
33
src/vulkan/QtVulkanSurface.cpp
Normal file
@ -0,0 +1,33 @@
|
||||
#include<QWindow>
|
||||
#include<QVulkanInstance>
|
||||
|
||||
namespace hgl
|
||||
{
|
||||
class Window;
|
||||
|
||||
namespace
|
||||
{
|
||||
QVulkanInstance *qt_vulkan_instance=nullptr;
|
||||
}
|
||||
|
||||
VkSurfaceKHR CreateVulkanSurface(VkInstance vk_inst,Window *w)
|
||||
{
|
||||
if(vk_inst==VK_NULL_HANDLE)return(VK_NULL_HANDLE);
|
||||
if(!w)return(VK_NULL_HANDLE);
|
||||
|
||||
QWindow *qwin=(QWindow *)w;
|
||||
|
||||
qt_vulkan_instance=new QVulkanInstance();
|
||||
qt_vulkan_instance->setVkInstance(vk_inst);
|
||||
|
||||
if(qt_vulkan_instance->create())
|
||||
{
|
||||
QVulkanInstance::surfaceForWindow(qwin);
|
||||
}
|
||||
else
|
||||
{
|
||||
delete qt_vulkan_instance;
|
||||
qt_vulkan_instance=nullptr;
|
||||
}
|
||||
}
|
||||
}
|
1
src/vulkan/QtVulkanWindow.cpp
Normal file
1
src/vulkan/QtVulkanWindow.cpp
Normal file
@ -0,0 +1 @@
|
||||
#include<hgl/qt/QtVulkanWindow.h>
|
Loading…
x
Reference in New Issue
Block a user