| 348 | |
| 349 | template <vkb::BindingType bindingType> |
| 350 | inline std::shared_ptr<vkb::core::CommandBuffer<bindingType>> RenderContext<bindingType>::begin(vkb::CommandBufferResetMode reset_mode) |
| 351 | { |
| 352 | assert(prepared && "HPPRenderContext not prepared for rendering, call prepare()"); |
| 353 | |
| 354 | if (!frame_active) |
| 355 | { |
| 356 | begin_frame(); |
| 357 | } |
| 358 | |
| 359 | if (!acquired_semaphore) |
| 360 | { |
| 361 | throw std::runtime_error("Couldn't begin frame"); |
| 362 | } |
| 363 | |
| 364 | const auto &queue = device.get_queue_by_flags(vk::QueueFlagBits::eGraphics, 0); |
| 365 | if constexpr (bindingType == vkb::BindingType::Cpp) |
| 366 | { |
| 367 | return get_active_frame().get_command_pool(queue, reset_mode).request_command_buffer(); |
| 368 | } |
| 369 | else |
| 370 | { |
| 371 | return get_active_frame().get_command_pool(reinterpret_cast<vkb::Queue const &>(queue), reset_mode).request_command_buffer(); |
| 372 | } |
| 373 | } |
| 374 | |
| 375 | template <vkb::BindingType bindingType> |
| 376 | inline void RenderContext<bindingType>::begin_frame() |
no test coverage detected