don't call endFrame() if no views were rendered

This commit is contained in:
Nick Fisher
2024-10-12 14:36:05 +11:00
parent d8a42a4136
commit a43ee8fa3a

View File

@@ -669,10 +669,6 @@ namespace thermion
{ {
std::lock_guard lock(_renderMutex); std::lock_guard lock(_renderMutex);
SwapChain *swapChain = _engine->createSwapChain((void *)window, filament::backend::SWAP_CHAIN_CONFIG_TRANSPARENT | filament::backend::SWAP_CHAIN_CONFIG_READABLE | filament::SwapChain::CONFIG_HAS_STENCIL_BUFFER); SwapChain *swapChain = _engine->createSwapChain((void *)window, filament::backend::SWAP_CHAIN_CONFIG_TRANSPARENT | filament::backend::SWAP_CHAIN_CONFIG_READABLE | filament::SwapChain::CONFIG_HAS_STENCIL_BUFFER);
if(!_engine->isValid(swapChain)) {
Log("SWAPCHAIN NOT VALID!!");
}
_swapChains.push_back(swapChain); _swapChains.push_back(swapChain);
return swapChain; return swapChain;
} }
@@ -1049,18 +1045,14 @@ namespace thermion
for(auto swapChain : _swapChains) { for(auto swapChain : _swapChains) {
auto views = _renderable[swapChain]; auto views = _renderable[swapChain];
if(views.size() > 0) { if(views.size() > 0) {
if(!_engine->isValid(swapChain)) {
Log("SWAPCHAIN NOT VALID!!");
continue;
}
bool beginFrame = _renderer->beginFrame(swapChain, frameTimeInNanos); bool beginFrame = _renderer->beginFrame(swapChain, frameTimeInNanos);
if (beginFrame) { if (beginFrame) {
for(auto view : views) { for(auto view : views) {
_renderer->render(view); _renderer->render(view);
} }
} }
_renderer->endFrame();
} }
_renderer->endFrame();
} }
#ifdef __EMSCRIPTEN__ #ifdef __EMSCRIPTEN__
_engine->execute(); _engine->execute();