[core] end the RenderPass/CommandEncoder before sending events

This commit is contained in:
Konstantin Käfer
2019-04-02 14:11:37 +02:00
parent 18c0590ddd
commit 81667ae4e9
2 changed files with 12 additions and 7 deletions

View File

@@ -56,7 +56,7 @@ public:
gfx::Context& context;
gfx::RendererBackend& backend;
const std::unique_ptr<gfx::CommandEncoder> encoder;
std::unique_ptr<gfx::CommandEncoder> encoder;
std::unique_ptr<gfx::RenderPass> renderPass;
const TransformState& state;

View File

@@ -505,6 +505,17 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
}
#endif
// Ends the RenderPass
parameters.renderPass.reset();
if (updateParameters.mode == MapMode::Continuous) {
parameters.encoder->present(parameters.backend.getDefaultRenderable());
}
// CommandEncoder destructor submits render commands.
parameters.encoder.reset();
const bool needsRepaint = isMapModeContinuous && hasTransitions(parameters.timePoint);
observer->onDidFinishRenderingFrame(
loaded ? RendererObserver::RenderMode::Full : RendererObserver::RenderMode::Partial,
@@ -521,12 +532,6 @@ void Renderer::Impl::render(const UpdateParameters& updateParameters) {
// and there are no ongoing transitions.
imageManager->reduceMemoryUseIfCacheSizeExceedsLimit();
}
if (updateParameters.mode == MapMode::Continuous) {
parameters.encoder->present(parameters.backend.getDefaultRenderable());
}
// CommandEncoder destructor submits render commands.
}
std::vector<Feature> Renderer::Impl::queryRenderedFeatures(const ScreenLineString& geometry, const RenderedQueryOptions& options) const {