MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-Hpp / endFrame

Method endFrame

samples/SharedHandles/SharedHandles.cpp:198–226  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

196 }
197
198 void endFrame()
199 {
200 commandBuffer->endRenderPass();
201 commandBuffer->end();
202
203 vk::PipelineStageFlags waitDestinationStageMask( vk::PipelineStageFlagBits::eColorAttachmentOutput );
204
205 auto ias = imageAcquiredSemaphore.get();
206 auto comBuf = commandBuffer.get();
207
208 vk::SubmitInfo submitInfo( ias, waitDestinationStageMask, comBuf );
209 graphicsQueue->submit( submitInfo, drawFence.get() );
210
211 while ( vk::Result::eTimeout == device->waitForFences( drawFence.get(), VK_TRUE, vk::su::FenceTimeout ) )
212 ;
213
214 auto swap = swapChain.get();
215 vk::Result result = presentQueue->presentKHR( vk::PresentInfoKHR( {}, swap, currentBuffer ) );
216 switch ( result )
217 {
218 case vk::Result::eSuccess : break;
219 case vk::Result::eSuboptimalKHR: std::cout << "vk::Queue::presentKHR returned vk::Result::eSuboptimalKHR !\n"; break;
220 default : assert( false ); // an unexpected result is returned !
221 }
222 std::this_thread::sleep_for( std::chrono::milliseconds( 1000 ) );
223
224 /* VULKAN_KEY_END */
225 device->waitIdle();
226 }
227
228public:
229 vk::SharedSwapchainKHR swapChain; // swapchain owns surface, that owns Instance, which should be destroyed last

Callers 1

renderFrameMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected