Cleaning up and optimizing scene-graph-material and scene-graph-renderer 03/51303/20
authorKimmo Hoikka <kimmo.hoikka@samsung.com>
Fri, 6 Nov 2015 09:51:09 +0000 (09:51 +0000)
committerFerran Sole <ferran.sole@samsung.com>
Fri, 27 Nov 2015 16:29:54 +0000 (16:29 +0000)
commit81b7e4a80108cf6f2c60fa3bc55f540640fb881d
tree6d07d161d475c49a66cb34aa87c3f1d66b440420
parent6999245c93a4947cdde8e028a70e80b035593242
Cleaning up and optimizing scene-graph-material and scene-graph-renderer

Previously we would update each materials status through renderers.
This means that if same material was used by 10 renderers, it would be processed and prepared 10 times

This patch changes the following:
- Materials are prepared as a separate update step
- Renderer asks its material for ready (=can be rendered) and complete (=has finished resouce loading) status
- CompleteStatusManager is removed
- Resource manager handles status of loaded images and whether FBOs have been rendered to (i.e. they can be considerer "loaded")
- GL Trackers are only used for NativeImages as GL guarantees the sync of texture FBOs, they are synchronized as soon as they are bound as texture
- glSyncAbstraction no longer passed to update, Render tasks create sync object if & when needed and RenderManager initiliazes them
- BitmapMetadata changed to simpler POD so Dali::Vector can be used
- Deleted lots of unnecessary containers of trackers and complicated logic to handle them

Change-Id: I654b9d16cd0a225eabd0897441c5e8dd4b8b0398
50 files changed:
automated-tests/src/dali-internal/utc-Dali-Internal-ResourceClient.cpp
automated-tests/src/dali/utc-Dali-FrameBufferImage.cpp
automated-tests/src/dali/utc-Dali-RenderTask.cpp
dali/integration-api/profiling.cpp
dali/internal/common/core-impl.cpp
dali/internal/event/images/frame-buffer-image-impl.cpp
dali/internal/event/images/frame-buffer-image-impl.h
dali/internal/event/render-tasks/render-task-impl.cpp
dali/internal/file.list
dali/internal/render/common/render-instruction.h
dali/internal/render/common/render-manager.cpp
dali/internal/render/common/render-manager.h
dali/internal/render/common/render-tracker-debug.h
dali/internal/render/common/render-tracker.cpp
dali/internal/render/common/render-tracker.h
dali/internal/update/controllers/render-message-dispatcher.cpp
dali/internal/update/controllers/render-message-dispatcher.h
dali/internal/update/controllers/scene-controller-impl.cpp
dali/internal/update/controllers/scene-controller-impl.h
dali/internal/update/controllers/scene-controller.h
dali/internal/update/manager/prepare-render-instructions.cpp
dali/internal/update/manager/prepare-render-instructions.h
dali/internal/update/manager/process-render-tasks.cpp
dali/internal/update/manager/process-render-tasks.h
dali/internal/update/manager/update-algorithms.cpp
dali/internal/update/manager/update-manager.cpp
dali/internal/update/manager/update-manager.h
dali/internal/update/render-tasks/scene-graph-render-task-list.cpp
dali/internal/update/render-tasks/scene-graph-render-task-list.h
dali/internal/update/render-tasks/scene-graph-render-task.cpp
dali/internal/update/render-tasks/scene-graph-render-task.h
dali/internal/update/rendering/scene-graph-material.cpp
dali/internal/update/rendering/scene-graph-material.h
dali/internal/update/rendering/scene-graph-renderer.cpp
dali/internal/update/rendering/scene-graph-renderer.h
dali/internal/update/resources/bitmap-metadata.cpp [deleted file]
dali/internal/update/resources/bitmap-metadata.h [deleted file]
dali/internal/update/resources/complete-status-manager-debug.h [deleted file]
dali/internal/update/resources/complete-status-manager.cpp [deleted file]
dali/internal/update/resources/complete-status-manager.h [deleted file]
dali/internal/update/resources/resource-manager.cpp
dali/internal/update/resources/resource-manager.h
dali/internal/update/resources/resource-tracker-debug.h [deleted file]
dali/internal/update/resources/resource-tracker.cpp [deleted file]
dali/internal/update/resources/resource-tracker.h [deleted file]
dali/internal/update/resources/sync-resource-tracker.cpp [deleted file]
dali/internal/update/resources/sync-resource-tracker.h [deleted file]
dali/internal/update/resources/texture-metadata.h [new file with mode: 0644]
dali/public-api/images/frame-buffer-image.cpp
dali/public-api/math/uint-16-pair.h