#include "iwa/event.hpp" #include "iwa/device.hpp" namespace iwa { Event::Event(ObjectPtr 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(); } } }