Fix wasm flickering.
Always execute the engine in non-threading (wasm) builds. And stop rendering if any beginFrame call returns false. PiperOrigin-RevId: 905000139 Change-Id: I0a6f06a07a8fc0ab0251a67be13a9d170d4a905d
This commit is contained in:
committed by
Copybara-Service
parent
a04cf1b2b3
commit
a2ee85f477
@@ -118,6 +118,9 @@ FilamentContext::FrameHandle FilamentContext::Render(
|
|||||||
if (!render_began) {
|
if (!render_began) {
|
||||||
render_began = renderer_->beginFrame(window_swap_chain_);
|
render_began = renderer_->beginFrame(window_swap_chain_);
|
||||||
}
|
}
|
||||||
|
if (!render_began) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (render_began) {
|
if (render_began) {
|
||||||
SceneView::RenderRequest scene_view_request;
|
SceneView::RenderRequest scene_view_request;
|
||||||
scene_view_request.draw_mode = request.draw_mode;
|
scene_view_request.draw_mode = request.draw_mode;
|
||||||
@@ -139,6 +142,9 @@ FilamentContext::FrameHandle FilamentContext::Render(
|
|||||||
if (!render_began) {
|
if (!render_began) {
|
||||||
render_began = renderer_->beginFrame(offscreen_swap_chain_);
|
render_began = renderer_->beginFrame(offscreen_swap_chain_);
|
||||||
}
|
}
|
||||||
|
if (!render_began) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (render_began) {
|
if (render_began) {
|
||||||
SceneView::RenderRequest scene_view_request;
|
SceneView::RenderRequest scene_view_request;
|
||||||
scene_view_request.draw_mode = request.draw_mode;
|
scene_view_request.draw_mode = request.draw_mode;
|
||||||
@@ -154,10 +160,9 @@ FilamentContext::FrameHandle FilamentContext::Render(
|
|||||||
|
|
||||||
if (render_began) {
|
if (render_began) {
|
||||||
renderer_->endFrame();
|
renderer_->endFrame();
|
||||||
render_began = false;
|
}
|
||||||
if constexpr (!UTILS_HAS_THREADING) {
|
if constexpr (!UTILS_HAS_THREADING) {
|
||||||
engine_->execute();
|
engine_->execute();
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!read_requests.empty()) {
|
if (!read_requests.empty()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user