имеется такой код
использую Vulkan-HPP, при изменении размера окна начинает сыпаться ErrorOutOfDateKHR — я чего то не делаю того что нужно сделать?
использую XCB либу для доступа к иксам и соответственно VkXCBsurface .
в мейне у меня loop:
for ( auto event = xcb_wait_for_event( xcbConnect );
event != nullptr;
event = xcb_wait_for_event( xcbConnect ) ) {
switch ( event->response_type & ~0x80 ) {
case XCB_EXPOSE:
renderer.draw();
//xcb_flush( xcbConnect );
break;
case XCB_KEY_PRESS:
if ( reinterpret_cast< xcb_key_press_event_t * >( event )
->detail == 24 ){
xcb_destroy_window(xcbConnect, window);
xcb_disconnect(xcbConnect);
std::abort();
}
}
delete event;
}
я же верно понимаю, что swapchain и vkImages надо инициализировать однажды для вывода закрашенного пространства?
или же надо после каждой draw() и/или изменения размера окна пересоздавать swapchain и vkImages?
если запихнуть создание объекта рендерера прямо перед draw() — то вроде даже будто хоть и криво но работает, однако в один момент выскакивает ошибка инициализации физического устройства, да и ессесна сильно грузит ЦПУ.
в общем наверна тут еще один вопрос сразу же напрашивается — как реагировать внутри рендерера на ресайз окна средствами Vulkan API?