don't call endFrame() if no views were rendered
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user