[Tizen] Update RenderState in PreRender submit/tizen/20211117.081222
authorShinwoo Kim <cinoo.kim@samsung.com>
Wed, 17 Nov 2021 01:49:09 +0000 (10:49 +0900)
committerShinwoo Kim <cinoo.kim@samsung.com>
Wed, 17 Nov 2021 01:49:09 +0000 (10:49 +0900)
This reverts commit 53962366b6f3138455ddb929b1c25a25d2e15252.

automated-tests/src/dali/dali-test-suite-utils/test-application.cpp
dali/integration-api/core.cpp
dali/integration-api/core.h
dali/internal/common/core-impl.cpp
dali/internal/common/core-impl.h
dali/internal/render/common/render-manager.cpp
dali/internal/render/common/render-manager.h

index 440270a..e71166b 100644 (file)
@@ -220,7 +220,7 @@ bool TestApplication::PreRenderWithPartialUpdate(uint32_t intervalMilliseconds,
   DoUpdate(intervalMilliseconds, location);
 
   mCore->PreRender(mRenderStatus, false /*do not force clear*/, false /*do not skip rendering*/);
-  mCore->PreRender(mScene, damagedRects);
+  mCore->PreRender(mRenderStatus, mScene, damagedRects);
 
   return mStatus.KeepUpdating() || mRenderStatus.NeedsUpdate();
 }
index 99001f3..36b6319 100644 (file)
@@ -110,9 +110,9 @@ void Core::PreRender(RenderStatus& status, bool forceClear, bool uploadOnly)
   mImpl->PreRender(status, forceClear, uploadOnly);
 }
 
-void Core::PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects)
+void Core::PreRender(RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects)
 {
-  mImpl->PreRender(scene, damagedRects);
+  mImpl->PreRender(status, scene, damagedRects);
 }
 
 void Core::RenderScene(RenderStatus& status, Integration::Scene& scene, bool renderToFbo)
index 1dd070d..a5051e5 100644 (file)
@@ -351,7 +351,7 @@ public:
    * @param[in] scene The scene to be rendered.
    * @param[out] damagedRects containing damaged render items rects for this pass.
    */
-  void PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
+  void PreRender(RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
 
   /**
    * Render a scene in the next frame. This method should be preceded by a call up PreRender.
index 3b50a24..8402dd6 100644 (file)
@@ -211,9 +211,9 @@ void Core::PreRender(RenderStatus& status, bool forceClear, bool uploadOnly)
   mRenderManager->PreRender(status, forceClear, uploadOnly);
 }
 
-void Core::PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects)
+void Core::PreRender(RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects)
 {
-  mRenderManager->PreRender(scene, damagedRects);
+  mRenderManager->PreRender(status, scene, damagedRects);
 }
 
 void Core::RenderScene(RenderStatus& status, Integration::Scene& scene, bool renderToFbo)
index 9744d0d..7c6cb29 100644 (file)
@@ -135,7 +135,7 @@ public:
   /**
    * @copydoc Dali::Integration::Core::PreRender()
    */
-  void PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
+  void PreRender(Integration::RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
 
   /**
    * @copydoc Dali::Integration::Core::RenderScene()
index 81d2582..35fb6c7 100644 (file)
@@ -465,7 +465,7 @@ void RenderManager::PreRender(Integration::RenderStatus& status, bool forceClear
   }
 }
 
-void RenderManager::PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects)
+void RenderManager::PreRender(Integration::RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects)
 {
   if(mImpl->partialUpdateAvailable != Integration::PartialUpdateAvailable::TRUE)
   {
@@ -478,9 +478,12 @@ void RenderManager::PreRender(Integration::Scene& scene, std::vector<Rect<int>>&
   if(sceneObject->IsRenderingSkipped())
   {
     // We don't need to calculate dirty rects
+    status.SetNeedsUpdate(false);
     return;
   }
 
+  status.SetNeedsUpdate(true);
+
   class DamagedRectsCleaner
   {
   public:
index 8b96203..54ed12d 100644 (file)
@@ -337,7 +337,7 @@ public:
    * @param[in] scene The scene to be rendered.
    * @param[out] damagedRects The list of damaged rects for the current render pass.
    */
-  void PreRender(Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
+  void PreRender(Integration::RenderStatus& status, Integration::Scene& scene, std::vector<Rect<int>>& damagedRects);
 
   // This method should be called from Core::RenderScene()