MayaFlux 0.2.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ create_sync_objects()

bool MayaFlux::Core::BackendWindowHandler::create_sync_objects ( WindowRenderContext config)
private

Create synchronization objects for a window's swapchain.

Parameters
configWindow swapchain configuration to populate
Returns
True if creation succeeded

Definition at line 260 of file BackendWindowHandler.cpp.

261{
262 auto device = m_context.get_device();
263 uint32_t image_count = config.swapchain->get_image_count();
264
265 try {
266 config.image_available.resize(image_count);
267 config.render_finished.resize(image_count);
268 config.in_flight.resize(image_count);
269
270 vk::SemaphoreCreateInfo semaphore_info {};
271 vk::FenceCreateInfo fence_info {};
272 fence_info.flags = vk::FenceCreateFlagBits::eSignaled;
273
274 for (uint32_t i = 0; i < image_count; ++i) {
275 config.image_available[i] = device.createSemaphore(semaphore_info);
276 config.render_finished[i] = device.createSemaphore(semaphore_info);
277 }
278
279 for (auto& i : config.in_flight) {
280 i = device.createFence(fence_info);
281 }
282
283 config.current_frame = 0;
284
285 return true;
286 } catch (const vk::SystemError& e) {
288 "Failed to create sync objects: {}", e.what());
289 return false;
290 }
291}
#define MF_RT_ERROR(comp, ctx,...)
vk::Device get_device() const
Get logical device.
Definition VKContext.hpp:49
@ GraphicsCallback
Graphics/visual rendering callback - frame-rate real-time.
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::Core, MayaFlux::Core::WindowRenderContext::current_frame, MayaFlux::Journal::GraphicsCallback, MayaFlux::Core::WindowRenderContext::image_available, MayaFlux::Core::WindowRenderContext::in_flight, MF_RT_ERROR, MayaFlux::Core::WindowRenderContext::render_finished, and MayaFlux::Core::WindowRenderContext::swapchain.

Referenced by register_window().

+ Here is the caller graph for this function: