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)
|
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})
|
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