15 #include <vsg/vk/Device.h>
23 explicit Semaphore(
Device* device, VkPipelineStageFlags pipelineStageFlags = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT,
void* pNextCreateInfo =
nullptr);
25 operator VkSemaphore()
const {
return _semaphore; }
26 VkSemaphore vk()
const {
return _semaphore; }
28 VkPipelineStageFlags& pipelineStageFlags() {
return _pipelineStageFlags; }
29 const VkPipelineStageFlags& pipelineStageFlags()
const {
return _pipelineStageFlags; }
31 std::atomic_uint& numDependentSubmissions() {
return _numDependentSubmissions; }
33 const VkSemaphore* data()
const {
return &_semaphore; }
35 Device* getDevice() {
return _device; }
36 const Device* getDevice()
const {
return _device; }
41 VkSemaphore _semaphore;
42 VkPipelineStageFlags _pipelineStageFlags = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT;
43 std::atomic_uint _numDependentSubmissions{0};
48 using Semaphores = std::vector<ref_ptr<Semaphore>>;
Device encapsulates VkDevice, a logical handle to the PhysicalDevice with capabilities specified duri...
Definition: Device.h:37
Semaphore encapsulates VkSemaphore that is used to synchronize completion of vulkan commands with the...
Definition: Semaphore.h:21