Added VertexBufferUpdateCallback 61/290561/8
authorAdam Bialogonski <adam.b@samsung.com>
Tue, 28 Mar 2023 20:52:18 +0000 (21:52 +0100)
committerAdam Bialogonski <adam.b@samsung.com>
Fri, 12 May 2023 13:34:47 +0000 (14:34 +0100)
commit9aac60fe14229bab1dbef7a3e11fba09149a7366
tree5f7e2b3d4af343cb72e9adb8dd5725ec00660503
parentb042388ebaef225c58c75e350d101ddda6f5f970
Added VertexBufferUpdateCallback

Added the callback invoked when the vertex buffer needs to be updated.
The callback passes pointer and maximum size that should be written.

The callback returns number of valid elements to draw.

In case there are more than 1 vertex buffers attached, the render geometry iterates and looks for lowest number of elements to render (so we won't go out of boundaries of any of attached buffers).

The update of VertexBuffer through the callback takes place on the update/render thread and it's up to the user to ensure explicit synchronization. Event side DALi objects must not be accessed (most likely, that will fail) so alternative way of
passing data should be added by developers.

Change-Id: I4db7812cf6d6579c8cd05bcc5c25d966f6ae1aad
14 files changed:
automated-tests/src/dali/utc-Dali-VertexBuffer.cpp
dali/internal/event/rendering/vertex-buffer-impl.cpp
dali/internal/event/rendering/vertex-buffer-impl.h
dali/internal/render/common/render-manager.cpp
dali/internal/render/common/render-manager.h
dali/internal/render/renderers/gpu-buffer.cpp
dali/internal/render/renderers/gpu-buffer.h
dali/internal/render/renderers/render-geometry.cpp
dali/internal/render/renderers/render-vertex-buffer.cpp
dali/internal/render/renderers/render-vertex-buffer.h
dali/internal/update/manager/update-manager.cpp
dali/internal/update/manager/update-manager.h
dali/public-api/rendering/vertex-buffer.cpp
dali/public-api/rendering/vertex-buffer.h