When mIds[mPanret[i]] is bigger then i,
mOrderedCOmponents[~~].sceneId become garbage.
To fix this issue, let we store sceneId first,
and propargate sceneId later.
Note : sceneId become the lastest parent's sceneId.
So, it always valid.
Change-Id: I27c6e51cda0ae696bf1ff5179ddb735f3e24aa65
Signed-off-by: Eunki, Hong <eunkiki.hong@samsung.com>
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
{
mOrderedComponents.Resize(mComponentCount);
{
mOrderedComponents.Resize(mComponentCount);
- unsigned int sceneId = 0;
-
+
+ // Create sceneId first
for(TransformId i = 0; i < mComponentCount; ++i)
{
mOrderedComponents[i].id = mComponentId[i];
for(TransformId i = 0; i < mComponentCount; ++i)
{
mOrderedComponents[i].id = mComponentId[i];
{
mOrderedComponents[i].sceneId = sceneId++;
}
{
mOrderedComponents[i].sceneId = sceneId++;
}
+ // Propagate sceneId
+ for(TransformId i = 0; i < mComponentCount; ++i)
+ {
+ parentId = mParent[i];
while(parentId != INVALID_TRANSFORM_ID)
{
mOrderedComponents[i].level++;
while(parentId != INVALID_TRANSFORM_ID)
{
mOrderedComponents[i].level++;
+ mOrderedComponents[i].sceneId = mOrderedComponents[mIds[parentId]].sceneId;
parentId = mParent[mIds[parentId]];
parentId = mParent[mIds[parentId]];
- mOrderedComponents[i].sceneId = mOrderedComponents[mIds[mParent[i]]].sceneId;