Added WindowMode.h
This commit is contained in:
parent
6bc9352c80
commit
f741825ab7
@ -56,6 +56,11 @@ class TextureManager;
|
|||||||
|
|
||||||
class SwapchainModule;
|
class SwapchainModule;
|
||||||
|
|
||||||
|
struct RenderFrameworkInitConfig
|
||||||
|
{
|
||||||
|
|
||||||
|
};//struct RenderFrameworkInitConfig
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 渲染框架
|
* 渲染框架
|
||||||
*/
|
*/
|
||||||
@ -98,8 +103,10 @@ public:
|
|||||||
|
|
||||||
NO_COPY_NO_MOVE(RenderFramework)
|
NO_COPY_NO_MOVE(RenderFramework)
|
||||||
|
|
||||||
RenderFramework(){}
|
RenderFramework();
|
||||||
virtual ~RenderFramework()=default;
|
virtual ~RenderFramework();
|
||||||
|
|
||||||
|
virtual bool Init();
|
||||||
|
|
||||||
virtual void StartTime();
|
virtual void StartTime();
|
||||||
|
|
||||||
|
39
inc/hgl/graph/WindowMode.h
Normal file
39
inc/hgl/graph/WindowMode.h
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include<hgl/graph/VKNamespace.h>
|
||||||
|
#include<hgl/TypeFunc.h>
|
||||||
|
|
||||||
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
enum class WindowMode
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* 全屏模式是一种独占模式,它会占用整个屏幕,不允许其它程序显示在其上。
|
||||||
|
* 这种模式下,程序的画面会直接输出到屏幕,不经过桌面合成器,拥有最高效能。
|
||||||
|
* 但这种模式下,如果频率切换到其它程序,可能会导致屏幕闪烁或是设备丢失,严重会程序崩溃。
|
||||||
|
*/
|
||||||
|
FullScreen, ///<全屏模式
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 窗口模式
|
||||||
|
* 调试时期最常用的模式。画面会输出到一个FBO,再经桌面管理器合成整个桌面画面再输出到屏幕。
|
||||||
|
*/
|
||||||
|
Windowed, ///<窗口模式
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 无边框窗口模式
|
||||||
|
* 只不过是去掉了标题框和边框的窗口模式而己,这些东西一般经过窗口管理器或桌面管理器绘制。
|
||||||
|
*/
|
||||||
|
Borderless, ///<无边框窗口模式
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 为什么需要有全屏无边框模式?
|
||||||
|
* 这个模式虽然看起来是全屏的,但其实它只是一个占满屏幕的窗口而己,所以它的画面依然需要经过桌面合成器,才会输出到屏幕。
|
||||||
|
* 这种模式对于需要频率切换到其它程序而言(比如修改器,或是需要挂机到后台的网游),拥有良好的兼容性。
|
||||||
|
*/
|
||||||
|
FullScreenBorderless, ///<全屏无边框模式
|
||||||
|
|
||||||
|
ENUM_CLASS_RANGE(FullScreen,FullScreenBorderless)
|
||||||
|
};//enum class WindowMode
|
||||||
|
|
||||||
|
VK_NAMESPACE_END
|
@ -338,6 +338,8 @@ IF(UNIX)
|
|||||||
|
|
||||||
ENDIF(UNIX)
|
ENDIF(UNIX)
|
||||||
|
|
||||||
|
SET(VULKAN_SURFACE_SOURCE ${VULKAN_SURFACE_SOURCE} ${SG_INCLUDE_PATH}/WindowMode.h)
|
||||||
|
|
||||||
SOURCE_GROUP("Vulkan\\Surface" FILES ${VULKAN_SURFACE_SOURCE})
|
SOURCE_GROUP("Vulkan\\Surface" FILES ${VULKAN_SURFACE_SOURCE})
|
||||||
|
|
||||||
SET(VULKAN_RENDER_SOURCE ${VK_RR_SOURCE}
|
SET(VULKAN_RENDER_SOURCE ${VK_RR_SOURCE}
|
||||||
|
@ -4,6 +4,19 @@
|
|||||||
|
|
||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
|
RenderFramework::RenderFramework()
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
graph_module_manager=InitGraphModuleManager(device);
|
||||||
|
|
||||||
|
swapchain_module=graph_module_manager->GetModule<SwapchainModule>(device);
|
||||||
|
}
|
||||||
|
|
||||||
|
RenderFramework::~RenderFramework()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void RenderFramework::StartTime()
|
void RenderFramework::StartTime()
|
||||||
{
|
{
|
||||||
last_time=cur_time=GetDoubleTime();
|
last_time=cur_time=GetDoubleTime();
|
||||||
|
@ -24,10 +24,6 @@ GPUDevice::GPUDevice(GPUDeviceAttribute *da)
|
|||||||
texture_queue=nullptr;
|
texture_queue=nullptr;
|
||||||
texture_cmd_buf=nullptr;
|
texture_cmd_buf=nullptr;
|
||||||
|
|
||||||
graph_module_manager=InitGraphModuleManager(this);
|
|
||||||
|
|
||||||
swapchain_module=graph_module_manager->GetModule<SwapchainModule>(true);
|
|
||||||
|
|
||||||
InitRenderPassManage();
|
InitRenderPassManage();
|
||||||
|
|
||||||
sc_rt=nullptr;
|
sc_rt=nullptr;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user