FCT
载入中...
搜索中...
未找到
VK_Fence.cpp
浏览该文件的文档.
1
#include "
./VK_Fence.h
"
2
#include "
../ThirdParty.h
"
3
#include "
../Context/VK_Context.h
"
4
namespace
FCT
5
{
6
namespace
RHI
7
{
8
VK_Fence::VK_Fence
(
VK_Context
* ctx)
9
{
10
m_ctx
= ctx;
11
}
12
13
VK_Fence::~VK_Fence
()
14
{
15
VK_Fence::destroy
();
16
}
17
18
void
VK_Fence::reset
()
19
{
20
m_ctx
->device().resetFences(1, &
m_fence
);
21
}
22
23
void
VK_Fence::create
()
24
{
25
addRef
();
26
vk::FenceCreateInfo createInfo{};
27
createInfo.flags |=
m_signaled
? vk::FenceCreateFlagBits::eSignaled : vk::FenceCreateFlags(0);
28
m_fence
=
m_ctx
->device().createFence(createInfo);
29
}
30
31
void
VK_Fence::waitFor
()
32
{
33
m_ctx
->device().waitForFences(1, &
m_fence
, VK_TRUE, UINT64_MAX);
34
}
35
36
void
VK_Fence::destroy
()
37
{
38
if
(
m_fence
)
39
{
40
m_ctx
->device().destroyFence(
m_fence
,
nullptr
);
41
m_fence
=
nullptr
;
42
}
43
}
44
}
45
}
ThirdParty.h
VK_Context.h
VK_Fence.h
FCT::RHI::Fence::m_signaled
bool m_signaled
定义
Fence.h:38
FCT::RHI::VK_Fence::waitFor
void waitFor() override
定义
VK_Fence.cpp:31
FCT::RHI::VK_Fence::m_fence
vk::Fence m_fence
定义
VK_Fence.h:35
FCT::RHI::VK_Fence::reset
void reset() override
定义
VK_Fence.cpp:18
FCT::RHI::VK_Fence::m_ctx
VK_Context * m_ctx
定义
VK_Fence.h:34
FCT::RHI::VK_Fence::~VK_Fence
~VK_Fence() override
定义
VK_Fence.cpp:13
FCT::RHI::VK_Fence::create
void create() override
定义
VK_Fence.cpp:23
FCT::RHI::VK_Fence::VK_Fence
VK_Fence(VK_Context *ctx)
定义
VK_Fence.cpp:8
FCT::RHI::VK_Fence::destroy
void destroy() override
定义
VK_Fence.cpp:36
FCT::RefCount::addRef
void addRef()
定义
RefCount.h:10
FCT::VK_Context
定义
VK_Context.h:11
FCT::RHI
定义
CommandBufferGraph.h:14
FCT
定义
Enums.h:8
src
RHI
VK_Fence.cpp
制作者
1.14.0