iwa/source/event.cpp
2024-04-06 14:11:26 +02:00

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();
}
}
}