Make VertexBufferUpdateCallback mark as changed 30/323630/3
authorEunki Hong <eunkiki.hong@samsung.com>
Thu, 1 May 2025 09:53:39 +0000 (18:53 +0900)
committerEunki Hong <eunkiki.hong@samsung.com>
Thu, 1 May 2025 14:48:47 +0000 (23:48 +0900)
Let we mark vertex buffer data was changed by some callback.

TODO : Need to fix GeometryBufferChanged callback invoked every frame.

Change-Id: Ib74e13bf87408a62ba6665320d4b33cf1cf60d82
Signed-off-by: Eunki Hong <eunkiki.hong@samsung.com>
dali/internal/render/renderers/render-geometry.cpp
dali/internal/render/renderers/render-vertex-buffer.h

index 6c3f0ec2011c228b06cf468dff4b6d2550ca20e4..06039c7b37f2a87cdd98cff3b5133d17049476e1 100644 (file)
@@ -276,11 +276,6 @@ bool Geometry::Draw(
       numVertices = elementBufferCount;
       firstVertex = elementBufferOffset;
     }
-    else if(mVertexBuffers.Count() > 0)
-    {
-      // truncated, no value loss happening in practice
-      numVertices = static_cast<uint32_t>(mVertexBuffers[0]->GetRenderableElementCount());
-    }
     // In case we have more buffers, we select buffer with less elements to render
     // TODO: we may eventually support wrapping around buffers????
     else if(mVertexBuffers.Count() > 1)
@@ -292,6 +287,11 @@ bool Geometry::Draw(
       }
       numVertices = elementsCount;
     }
+    else if(mVertexBuffers.Count() == 1)
+    {
+      // truncated, no value loss happening in practice
+      numVertices = static_cast<uint32_t>(mVertexBuffers[0]->GetRenderableElementCount());
+    }
 
     // Issue draw call only if there's non-zero numVertices
     if(numVertices)
index 80d708f3a7df5912c0f788fe46a1e94fff0de260..6b121b2b0df09ed1563fd5bb8c891708f97d18a2 100644 (file)
@@ -209,7 +209,7 @@ public:
 
   [[nodiscard]] inline bool IsDataChanged() const
   {
-    return mDataChanged;
+    return mDataChanged || mVertexBufferUpdateCallback;
   }
 
 private: