Making test-render-surface.cpp/h common across repos 54/313554/7
authorDavid Steele <david.steele@samsung.com>
Thu, 27 Jun 2024 17:18:53 +0000 (18:18 +0100)
committerDavid Steele <david.steele@samsung.com>
Mon, 8 Jul 2024 09:47:33 +0000 (10:47 +0100)
Also, fixed toolkit replacement SceneHolder to have
same structure as Internal::Adaptor::SceneHolder - in
some adaptor internal code, the toolkit struct is used,
and it crashes.

Change-Id: I46b5bf579f5c5767c0e8cc8c41ada69c96dd92ac

automated-tests/CMakeLists.txt.in
automated-tests/src/dali-shader-generator/CMakeLists.txt
automated-tests/src/dali-toolkit/CMakeLists.txt
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-render-surface.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-scene-holder-impl.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-scene-holder.cpp

index be21183a7ee9ff24111e862a8dacd7744aa08570..ac596d5d5c506fe07bbd75f68889d535984540e8 100644 (file)
@@ -6,6 +6,7 @@ INCLUDE(FindPkgConfig)
 SET(BIN_DIR "/opt/usr/bin")
 SET(SCRIPT_DIR ${CMAKE_SOURCE_DIR}/scripts)
 
+
 ADD_DEFINITIONS(-DDALI_STYLE_DIR="@dataReadOnlyDir@/toolkit/styles/")
 
 # Macro checks if the module is available and sets user variable
@@ -24,6 +25,7 @@ CHECK_MODULE_AND_SET(ELDBUS eldbus>=${ELDBUS_REQUIRED} ELDBUS_AVAILABLE)
 
 INCLUDE_DIRECTORIES(
   src/common
+  @PREFIX@/include/dali/integration-api/adaptor-framework
 )
 
 ADD_SUBDIRECTORY(src)
index e3b52cdd73d99ddc7a43daba9989e352f82ee5c7..9cbeedc05df20f4d3c2beda30604b345c4443fe7 100644 (file)
@@ -59,6 +59,7 @@ SET(TEST_HARNESS_SOURCES
   ${TEST_HARNESS_DIR}/test-graphics-reflection.cpp
   ${TEST_HARNESS_DIR}/test-platform-abstraction.cpp
   ${TEST_HARNESS_DIR}/test-render-controller.cpp
+  ${TEST_HARNESS_DIR}/test-render-surface.cpp
   ${TEST_HARNESS_DIR}/test-trace-call-stack.cpp
 )
 
index 683a01bb80cd2ab84c945a4d5dfc74126972b38f..49c7dfb2e8f5952045c77212b0090d991c4fa168 100755 (executable)
@@ -173,9 +173,9 @@ FOREACH(directory ${${CAPI_LIB}_LIBRARY_DIRS})
 ENDFOREACH(directory ${CAPI_LIB_LIBRARY_DIRS})
 
 INCLUDE_DIRECTORIES(
-    ../../../
-    ${${CAPI_LIB}_INCLUDE_DIRS}
-    dali-toolkit-test-utils
+  ../../../
+  ${${CAPI_LIB}_INCLUDE_DIRS}
+  dali-toolkit-test-utils
 )
 
 ADD_CUSTOM_COMMAND(
index f310f4f98b5a9974bc8e749c8092d55fe26d4246..b0f7a9424989a255386d6626744a5a7ebe96ff88 100644 (file)
@@ -19,8 +19,7 @@
  */
 
 // INTERNAL INCLUDES
-#include <dali/integration-api/adaptor-framework/render-surface-interface.h>
-#include <dali/public-api/common/dali-common.h>
+#include "render-surface-interface.h"
 
 namespace Dali
 {
index aa521d7f41ba3b8cf9fb77f75465d0e5aa19fc45..e43b4beb25ad41cd7efc76fece727471f0b46653 100644 (file)
 #include <dali/public-api/object/base-object.h>
 #include "test-render-surface.h"
 
+#include <dali/public-api/events/hover-event.h>
+#include <dali/public-api/events/touch-event.h>
+
 namespace Dali
 {
-
 namespace Internal
 {
-
 namespace Adaptor
 {
-
 class SceneHolder : public Dali::BaseObject
 {
 public:
@@ -71,9 +71,16 @@ public:
 
   Dali::RenderTaskList GetRenderTaskList();
 
-protected:
+  class SceneHolderLifeCycleObserver;
+  std::unique_ptr<SceneHolderLifeCycleObserver> mLifeCycleObserver; ///< The adaptor life cycle observer
+  Dali::TouchEvent                              mLastTouchEvent;
+  Dali::HoverEvent                              mLastHoverEvent;
+
+  uint32_t                 mId;             ///< A unique ID to identify the SceneHolder starting from 0
+  Dali::Integration::Scene mScene{nullptr}; ///< The Scene
+  std::string              mName;           ///< The name of the SceneHolder
+
   TestRenderSurface* mRenderSurface;
-  Integration::Scene mScene;
 };
 
 } // namespace Adaptor
index fad4fc439089863ed6baa15793fac95e06b8e1ec..8f4f8b58a93e1a73d60d952efd95a064a563d7fa 100644 (file)
@@ -43,9 +43,41 @@ namespace Internal
 {
 namespace Adaptor
 {
+class SceneHolder::SceneHolderLifeCycleObserver
+{
+public:
+  SceneHolderLifeCycleObserver(Adaptor*& adaptor, bool& adaptorStarted)
+  : mAdaptor(adaptor),
+    mAdaptorStarted(adaptorStarted)
+  {
+  }
+
+private: // Adaptor::LifeCycleObserver interface
+  virtual void OnStart()
+  {
+    mAdaptorStarted = true;
+  };
+  virtual void OnPause(){};
+  virtual void OnResume(){};
+  virtual void OnStop()
+  {
+    // Mark adaptor as stopped;
+    mAdaptorStarted = false;
+  };
+  virtual void OnDestroy()
+  {
+    mAdaptor = nullptr;
+  };
+
+private:
+  Adaptor*& mAdaptor;
+  bool&     mAdaptorStarted;
+};
+
 SceneHolder::SceneHolder(const Dali::Rect<int>& positionSize)
-: mRenderSurface(new TestRenderSurface(positionSize)),
-  mScene(Dali::Integration::Scene::New(Dali::Size(static_cast<float>(positionSize.width), static_cast<float>(positionSize.height))))
+: mId(0),
+  mScene(Dali::Integration::Scene::New(Dali::Size(static_cast<float>(positionSize.width), static_cast<float>(positionSize.height)))),
+  mRenderSurface(new TestRenderSurface(positionSize))
 {
 }