FCT
载入中...
搜索中...
未找到
CommandBuffer.cpp
浏览该文件的文档.
1
#include "
CommandBuffer.h
"
2
3
#include "
Fence.h
"
4
#include "
Semaphore.h
"
5
6
namespace
FCT
{
7
namespace
RHI
{
8
CommandBuffer::~CommandBuffer
()
9
{
10
for
(
auto
& desc :
m_waitSemaphores
)
11
{
12
desc.semaphore->release();
13
}
14
for
(
auto
& semaphore :
m_signalSemaphores
)
15
{
16
semaphore->release();
17
}
18
if
(
m_fence
)
19
{
20
m_fence
->release();
21
}
22
}
23
24
void
CommandBuffer::fence
(
Fence
*
fence
)
25
{
26
FCT_SAFE_RELEASE
(
m_fence
);
27
m_fence
=
fence
;
28
FCT_SAFE_ADDREF
(
m_fence
);
29
}
30
31
void
CommandBuffer::clearWaitSemaphores
()
32
{
33
for
(
auto
& desc :
m_waitSemaphores
)
34
{
35
desc.semaphore->release();
36
}
37
m_waitSemaphores
.clear();
38
}
39
40
void
CommandBuffer::addWaitSemaphore
(
Semaphore
* semaphore, PipelineStages stage)
41
{
42
WaitSemaphoreDescription
desc;
43
desc.
semaphore
= semaphore;
44
desc.
stages
= stage;
45
semaphore->
addRef
();
46
m_waitSemaphores
.push_back(desc);
47
}
48
49
void
CommandBuffer::addSignalSemaphore
(
Semaphore
* semaphore)
50
{
51
semaphore->
addRef
();
52
m_signalSemaphores
.push_back(semaphore);
53
}
54
}
55
}
CommandBuffer.h
Fence.h
FCT_SAFE_ADDREF
#define FCT_SAFE_ADDREF(p)
定义
RefCount.h:92
FCT_SAFE_RELEASE
#define FCT_SAFE_RELEASE(obj)
定义
RefCount.h:91
Semaphore.h
FCT::RHI::CommandBuffer::~CommandBuffer
~CommandBuffer()
定义
CommandBuffer.cpp:8
FCT::RHI::CommandBuffer::m_signalSemaphores
std::vector< Semaphore * > m_signalSemaphores
定义
CommandBuffer.h:73
FCT::RHI::CommandBuffer::fence
Fence * fence() const
定义
CommandBuffer.h:62
FCT::RHI::CommandBuffer::m_fence
Fence * m_fence
定义
CommandBuffer.h:71
FCT::RHI::CommandBuffer::addSignalSemaphore
void addSignalSemaphore(Semaphore *semaphore)
定义
CommandBuffer.cpp:49
FCT::RHI::CommandBuffer::m_waitSemaphores
std::vector< WaitSemaphoreDescription > m_waitSemaphores
定义
CommandBuffer.h:72
FCT::RHI::CommandBuffer::clearWaitSemaphores
void clearWaitSemaphores()
定义
CommandBuffer.cpp:31
FCT::RHI::CommandBuffer::addWaitSemaphore
void addWaitSemaphore(Semaphore *semaphore, PipelineStages stage=PipelineStage::colorAttachmentOutput)
定义
CommandBuffer.cpp:40
FCT::RHI::Fence
定义
Fence.h:12
FCT::RHI::Semaphore
定义
Semaphore.h:12
FCT::RefCount::addRef
void addRef()
定义
RefCount.h:10
FCT::RHI
定义
CommandBufferGraph.h:14
FCT
定义
Enums.h:8
FCT::RHI::WaitSemaphoreDescription
定义
CommandBuffer.h:29
FCT::RHI::WaitSemaphoreDescription::semaphore
Semaphore * semaphore
定义
CommandBuffer.h:30
FCT::RHI::WaitSemaphoreDescription::stages
PipelineStages stages
定义
CommandBuffer.h:31
src
RHI
CommandBuffer.cpp
制作者
1.14.0