28 lines
552 B
C++
28 lines
552 B
C++
|
|
#include "iwa/event.hpp"
|
|
|
|
#include "iwa/device.hpp"
|
|
|
|
namespace iwa
|
|
{
|
|
Event::Event(ObjectPtr<Device> owner, const EventCreationArgs& args) : super_t(std::move(owner))
|
|
{
|
|
mHandle = getOwner()->getVkHandle().createEvent(vk::EventCreateInfo
|
|
{
|
|
.flags = args.flags
|
|
});
|
|
}
|
|
|
|
Event::~Event() noexcept
|
|
{
|
|
IWA_DELETE_DEVICE_OBJECT(getOwner(), mHandle, destroyEvent);
|
|
}
|
|
|
|
mijin::Task<> Event::c_wait()
|
|
{
|
|
while (getOwner()->getVkHandle().getEventStatus(mHandle) != vk::Result::eEventSet)
|
|
{
|
|
co_await mijin::c_suspend();
|
|
}
|
|
}
|
|
} |