Simplifying UniformMap updating 86/261286/14
authorDavid Steele <david.steele@samsung.com>
Mon, 12 Jul 2021 18:18:25 +0000 (19:18 +0100)
committerDavid Steele <david.steele@samsung.com>
Mon, 25 Apr 2022 11:45:22 +0000 (12:45 +0100)
commit6f13915a87f9539b40b0fcff191ba2968f87f0a9
tree7d83e1c67cd0b1dd99147415d44fee5fa0f22180
parentfb91f027aa740dd18f01eef6aa1ec7b08fe21401
Simplifying UniformMap updating

Removed scene-graph ConnectionChangePropagator - now only need to know
if shader is attached to renderer, and that is already done through a
different mechanism.

Changed CollectedUniformMap into it's own struct. Now has a change
counter that increments any time the map is altered.

Instead of having lots of flags indicating if uniform maps have
changed, UniformMap now updates it's change counter whenever a
property is registered with the PropertyOwner (e.g. Node, Renderer or
Shader).

During Update, SceneGraph::Renderer collects the uniform maps into one
only if the renderer is added to a RenderList, i.e. if it's going to
be rendered. At this point, the change counter is updated.
Nothing is done if the renderer is not visible.

During Render, the Render::Renderer checks if the node uniform map
change counter or the renderer data provider's uniform map change
counter are different, if so, then it knows it needs to update the
uniform locations for newly registered properties.

Change-Id: I0ff861a7e97736dae059d94f54618195d0471343
19 files changed:
dali/internal/file.list
dali/internal/render/data-providers/node-data-provider.h
dali/internal/render/data-providers/uniform-map-data-provider.h
dali/internal/render/renderers/render-renderer.cpp
dali/internal/render/renderers/render-renderer.h
dali/internal/render/shaders/render-shader.cpp
dali/internal/render/shaders/render-shader.h
dali/internal/update/common/collected-uniform-map.cpp [new file with mode: 0644]
dali/internal/update/common/collected-uniform-map.h [new file with mode: 0644]
dali/internal/update/common/scene-graph-connection-change-propagator.cpp [deleted file]
dali/internal/update/common/scene-graph-connection-change-propagator.h [deleted file]
dali/internal/update/common/uniform-map.cpp
dali/internal/update/common/uniform-map.h
dali/internal/update/manager/render-instruction-processor.cpp
dali/internal/update/manager/update-algorithms.cpp
dali/internal/update/nodes/node.cpp
dali/internal/update/nodes/node.h
dali/internal/update/rendering/scene-graph-renderer.cpp
dali/internal/update/rendering/scene-graph-renderer.h