Uniform map handling 49/37449/6
authorDavid Steele <david.steele@partner.samsung.com>
Thu, 26 Mar 2015 18:07:09 +0000 (18:07 +0000)
committerDavid Steele <david.steele@partner.samsung.com>
Wed, 1 Apr 2015 10:50:15 +0000 (11:50 +0100)
commit89998c36c22a0db8f0fed888c6b250d36a868c32
tree90656aee0b29dff2cb45ea1d8aec263df2973ef2
parentb2b474f488d2bcb9f688a5106f578d141bbb8ddd
Uniform map handling

Updated event implementations of geometry, property buffer, material, sampler and renderer to handle custom properties and default animatable properties.

Added uniform maps to property-owners.

Uniform maps are only held by SceneGraph, so the API was updated to match. Event objects do not hold a copy of the map.

The maps from all 6 rendering objects are re-collected in the renderer-attachment's DoPrepareRender step if any of them have changed.

The collected map is accessible by the NewRenderer from the render thread through the UniformMapDataProvider interface, so is double buffered.

The NewRenderer maintains a list of uniform names/ program location index / property value address, and updates the uniform locations from the uniform names only when the uniform mapping has changed, not when property values change.

Change-Id: I9cec141cd7746540eda3f9049b0f4ede907b03f8
Signed-off-by: David Steele <david.steele@partner.samsung.com>
66 files changed:
dali/internal/event/actor-attachments/renderable-attachment-impl.cpp
dali/internal/event/actor-attachments/renderer-attachment-impl.cpp
dali/internal/event/actor-attachments/renderer-attachment-impl.h
dali/internal/event/actors/renderer-impl.cpp
dali/internal/event/actors/renderer-impl.h
dali/internal/event/common/object-impl-helper.h
dali/internal/event/common/object-impl.cpp
dali/internal/event/common/object-impl.h
dali/internal/event/common/property-buffer-impl.cpp
dali/internal/event/common/property-metadata.h
dali/internal/event/effects/material-impl.cpp
dali/internal/event/effects/material-impl.h
dali/internal/event/effects/sampler-impl.cpp
dali/internal/event/effects/sampler-impl.h
dali/internal/event/effects/shader-impl.cpp
dali/internal/event/effects/shader-impl.h
dali/internal/event/geometry/geometry-impl.cpp
dali/internal/event/geometry/geometry-impl.h
dali/internal/file.list
dali/internal/render/data-providers/uniform-map-data-provider.h [new file with mode: 0644]
dali/internal/render/data-providers/uniform-map-provider.h [deleted file]
dali/internal/render/renderers/render-geometry.cpp
dali/internal/render/renderers/render-renderer.cpp
dali/internal/render/renderers/render-renderer.h
dali/internal/render/renderers/scene-graph-renderer.cpp
dali/internal/render/renderers/scene-graph-renderer.h
dali/internal/update/common/discard-queue.cpp
dali/internal/update/common/discard-queue.h
dali/internal/update/common/property-owner-messages.cpp [new file with mode: 0644]
dali/internal/update/common/property-owner-messages.h
dali/internal/update/common/property-owner.cpp
dali/internal/update/common/property-owner.h
dali/internal/update/common/scene-graph-connection-observers.cpp [new file with mode: 0644]
dali/internal/update/common/scene-graph-connection-observers.h [new file with mode: 0644]
dali/internal/update/common/scene-graph-property-buffer.cpp
dali/internal/update/common/scene-graph-property-buffer.h
dali/internal/update/common/uniform-map.cpp [new file with mode: 0644]
dali/internal/update/common/uniform-map.h
dali/internal/update/effects/scene-graph-material.cpp
dali/internal/update/effects/scene-graph-material.h
dali/internal/update/effects/scene-graph-sampler.cpp
dali/internal/update/effects/scene-graph-sampler.h
dali/internal/update/geometry/scene-graph-geometry.cpp
dali/internal/update/geometry/scene-graph-geometry.h
dali/internal/update/manager/object-owner-container.h
dali/internal/update/manager/update-manager.cpp
dali/internal/update/manager/update-manager.h
dali/internal/update/node-attachments/node-attachment.h
dali/internal/update/node-attachments/scene-graph-camera-attachment.cpp
dali/internal/update/node-attachments/scene-graph-camera-attachment.h
dali/internal/update/node-attachments/scene-graph-image-attachment.cpp
dali/internal/update/node-attachments/scene-graph-image-attachment.h
dali/internal/update/node-attachments/scene-graph-renderable-attachment.cpp
dali/internal/update/node-attachments/scene-graph-renderable-attachment.h
dali/internal/update/node-attachments/scene-graph-renderer-attachment.cpp
dali/internal/update/node-attachments/scene-graph-renderer-attachment.h
dali/internal/update/node-attachments/scene-graph-text-attachment.cpp
dali/internal/update/node-attachments/scene-graph-text-attachment.h
dali/internal/update/nodes/node.cpp
dali/public-api/actors/renderer.cpp
dali/public-api/actors/renderer.h
dali/public-api/geometry/geometry.cpp
dali/public-api/object/handle.cpp
dali/public-api/object/handle.h
dali/public-api/object/property-index-ranges.h
dali/public-api/shader-effects/material.cpp