SemaphoreVk.h#
PVRVk Semaphore class.
Includes#
PVRVk/DeviceVk.h
Included By#
Namespaces#
Classes#
Source Code#
#pragma once
#include "PVRVk/DeviceVk.h"
namespace pvrvk {
namespace impl {
class Semaphore_ : public PVRVkDeviceObjectBase<VkSemaphore, ObjectType::e_SEMAPHORE>, public DeviceObjectDebugUtils<Semaphore_>
{
private:
friend class Device_;
class make_shared_enabler
{
protected:
make_shared_enabler() {}
friend class Semaphore_;
};
static Semaphore constructShared(const DeviceWeakPtr& device, const SemaphoreCreateInfo& createInfo)
{
return std::make_shared<Semaphore_>(make_shared_enabler{}, device, createInfo);
}
protected:
SemaphoreCreateInfo _createInfo;
public:
DECLARE_NO_COPY_SEMANTICS(Semaphore_)
Semaphore_(make_shared_enabler, const DeviceWeakPtr& device, const SemaphoreCreateInfo& createInfo);
Semaphore_(const DeviceWeakPtr& device, const SemaphoreCreateInfo& createInfo)
: PVRVkDeviceObjectBase(device), DeviceObjectDebugUtils(), _createInfo(createInfo)
{}
virtual ~Semaphore_();
inline SemaphoreCreateFlags getFlags() const { return _createInfo.getFlags(); }
SemaphoreCreateInfo getCreateInfo() const { return _createInfo; }
};
} // namespace impl
} // namespace pvrvk