-
Notifications
You must be signed in to change notification settings - Fork 315
Description
Context
During march 2025 iTowns hackaton, we identified that using the view schedueler to subdivide TiledGeometryLayer's nodes was odd. It is an almost instantaneous process, and schedueling it along network request is confusing. The PR #2521 and #2525 do attempt to adress issue #2421.
However, it does break our functionnal tests for a good reason: It becomes harder to know if current iTowns view is stabilized.
- If the test launches prematurely, some layers might be missing (the scheduler becomes empty inbetween two layers addition). For the
source_stream_wfs_raster test, that's what happens.VIEW_EVENTS.LAYERS_INITIALIZEDevent is triggered too early.
- If a test prematurely considers that the view is stabilized, it might measure values at the wrong moment. This is the case for
view_multiglobetest
- It a sub-test ends prematurely, it might influence upcoming tests. This is the case for the two failing
globecontroltests.
It is possible to handle all those specific tests. By first querying the datasources prior to view instancing, it should be possible to avoid in-between layers VIEW_EVENTS.LAYERS_INITIALIZED trigger. Listening to animations or frameRequesters helps identifying view stabilization.
It however feels like we are missing a more global approach. Something easy to tell wether or not current view is stabilized or not.
Description of the proposal
Several implementation ideas (not exclusive) :
- A specific layer property exposing wether or not a layer is currently "working"
- A new event VIEW_EVENTS.STABILIZED that properly tells when everything is set (how?)
- A new way to add layers to the view specifying beforehand what will be part of the view. (Passing layer loading promises for instance)


