tangrams / tangram-es

2D and 3D map renderer using OpenGL ES
MIT License
823 stars 239 forks source link

Previous state of the layer/texture/tile stucks on the display after zooming #2304

Open vilinet opened 2 years ago

vilinet commented 2 years ago

TO REPRODUCE THE ISSUE, FOLLOW THESE STEPS:

Draw some shape on a layer, zoom out and back, and then start changing the content of that layer quickly, like changing the shape by mouse or grabbing it, and the old texture/state(the state after the zoom stopped) flashes on the screen during the operations. (can see it happening on the attached footage from the 7th second)

This is not a new issue, I see it for ages, but it is really a deal-breaker when need to handle things dynamically.

A bare minimal MainActivity and scene to reproduce it. code-sample.zip

FYI: Just to stress that RequestRender() in the code sample has nothing to do with this bug. Changing the layer does not trigger screen redraw for some reason. Of course, the rendering mode can be set to continuous, but it looks like the map is not updating when it gets dirty.

RESULT:

https://user-images.githubusercontent.com/13279531/142730463-e964cd84-007e-41a8-b7dd-3909b9626e8f.mp4

EXPECTED RESULT:

It should not show the old "textures" :)

ENVIRONMENT:

OTHER:

code-sample.zip