From f820dba95efae7a8390ea9a0c09d7902e658bcd5 Mon Sep 17 00:00:00 2001 From: David Steele Date: Thu, 27 Jun 2024 18:13:14 +0100 Subject: [PATCH] Making test-render-surface.cpp/h common across repos Change-Id: I886d41ded42036c10c5f614bed2ff6fe09a086a9 --- automated-tests/CMakeLists.txt | 2 +- automated-tests/src/dali-adaptor-internal/CMakeLists.txt | 1 + automated-tests/src/dali-adaptor/CMakeLists.txt | 7 ++++--- .../dali-test-suite-utils/test-render-surface.h | 3 +-- automated-tests/src/dali-egl-graphics/CMakeLists.txt | 1 + .../src/dali-platform-abstraction/CMakeLists.txt | 4 +--- build/tizen/profiles/libuv-x11-profile.cmake | 7 ++++--- dali/internal/graphics/gles/egl-graphics.cpp | 8 ++------ dali/internal/graphics/vulkan/vulkan-graphics-impl.cpp | 4 ++-- dali/internal/imaging/file.list | 2 ++ .../android/display-connection-impl-android.cpp | 12 ++++++++++++ .../android/display-connection-impl-android.h | 5 +++++ .../window-system/common/display-connection-impl.h | 7 +++++++ dali/internal/window-system/common/display-connection.cpp | 5 +++++ dali/internal/window-system/common/display-connection.h | 7 +++++++ .../window-system/macos/display-connection-impl-mac.cpp | 9 +++++++++ .../window-system/macos/display-connection-impl-mac.h | 5 +++++ .../tizen-wayland/display-connection-impl-ecore-wl.cpp | 13 +++++++++++++ .../tizen-wayland/display-connection-impl-ecore-wl.h | 9 +++++++-- .../window-system/ubuntu-x11/display-connection-impl-x.cpp | 12 ++++++++++++ .../window-system/ubuntu-x11/display-connection-impl-x.h | 5 +++++ .../window-system/windows/display-connection-impl-win.cpp | 14 +++++++++++++- .../window-system/windows/display-connection-impl-win.h | 5 +++++ .../window-system/x11/display-connection-impl-x.cpp | 13 +++++++++++++ .../internal/window-system/x11/display-connection-impl-x.h | 7 ++++++- 25 files changed, 143 insertions(+), 24 deletions(-) diff --git a/automated-tests/CMakeLists.txt b/automated-tests/CMakeLists.txt index b9d7387..e5313a4 100644 --- a/automated-tests/CMakeLists.txt +++ b/automated-tests/CMakeLists.txt @@ -8,7 +8,7 @@ PROJECT(tct_coreapi_utc) INCLUDE(FindPkgConfig) SET(BIN_DIR "/opt/usr/bin") -OPTION(ENABLE_VULKAN "Whether to build tests for vulkan or gl" ON) +OPTION(ENABLE_VULKAN "Whether to build tests for vulkan or gl" OFF) INCLUDE_DIRECTORIES( src/common diff --git a/automated-tests/src/dali-adaptor-internal/CMakeLists.txt b/automated-tests/src/dali-adaptor-internal/CMakeLists.txt index a9424bd..d9b980a 100644 --- a/automated-tests/src/dali-adaptor-internal/CMakeLists.txt +++ b/automated-tests/src/dali-adaptor-internal/CMakeLists.txt @@ -86,6 +86,7 @@ ENDFOREACH(directory ${CAPI_LIB_LIBRARY_DIRS}) INCLUDE_DIRECTORIES( ../../../ ../../../third-party/image-resampler + ../../../dali/integration-api/adaptor-framework ${${CAPI_LIB}_INCLUDE_DIRS} ../dali-adaptor/dali-test-suite-utils ) diff --git a/automated-tests/src/dali-adaptor/CMakeLists.txt b/automated-tests/src/dali-adaptor/CMakeLists.txt index 7dbf4ec..b6d00f1 100644 --- a/automated-tests/src/dali-adaptor/CMakeLists.txt +++ b/automated-tests/src/dali-adaptor/CMakeLists.txt @@ -82,9 +82,10 @@ FOREACH(directory ${${CAPI_LIB}_LIBRARY_DIRS}) ENDFOREACH(directory ${CAPI_LIB_LIBRARY_DIRS}) INCLUDE_DIRECTORIES( - ../../../ - ${${CAPI_LIB}_INCLUDE_DIRS} - dali-test-suite-utils + ../../../ + ../../../dali/integration-api/adaptor-framework + ${${CAPI_LIB}_INCLUDE_DIRS} + dali-test-suite-utils ) ADD_EXECUTABLE(${EXEC_NAME} ${EXEC_NAME}.cpp ${TC_SOURCES}) diff --git a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-render-surface.h b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-render-surface.h index f310f4f..b0f7a94 100644 --- a/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-render-surface.h +++ b/automated-tests/src/dali-adaptor/dali-test-suite-utils/test-render-surface.h @@ -19,8 +19,7 @@ */ // INTERNAL INCLUDES -#include -#include +#include "render-surface-interface.h" namespace Dali { diff --git a/automated-tests/src/dali-egl-graphics/CMakeLists.txt b/automated-tests/src/dali-egl-graphics/CMakeLists.txt index 330aba8..a88b53d 100644 --- a/automated-tests/src/dali-egl-graphics/CMakeLists.txt +++ b/automated-tests/src/dali-egl-graphics/CMakeLists.txt @@ -58,6 +58,7 @@ ENDFOREACH(directory ${CAPI_LIB_LIBRARY_DIRS}) INCLUDE_DIRECTORIES( ../../../ + ../../../dali/integration-api/adaptor-framework ${${CAPI_LIB}_INCLUDE_DIRS} ../dali-adaptor/dali-test-suite-utils ) diff --git a/automated-tests/src/dali-platform-abstraction/CMakeLists.txt b/automated-tests/src/dali-platform-abstraction/CMakeLists.txt index 48d0d81..3efc792 100644 --- a/automated-tests/src/dali-platform-abstraction/CMakeLists.txt +++ b/automated-tests/src/dali-platform-abstraction/CMakeLists.txt @@ -56,9 +56,7 @@ ENDFOREACH(directory ${CAPI_LIB_LIBRARY_DIRS}) INCLUDE_DIRECTORIES( ../../../ - ../../../adaptors/tizen - ../../../platform-abstractions/tizen - ../../../third-party/image-resampler + ../../../dali/integration-api/adaptor-framework ${${CAPI_LIB}_INCLUDE_DIRS} ../dali-adaptor/dali-test-suite-utils /usr/include/freetype2 diff --git a/build/tizen/profiles/libuv-x11-profile.cmake b/build/tizen/profiles/libuv-x11-profile.cmake index 8c86ca4..858db11 100644 --- a/build/tizen/profiles/libuv-x11-profile.cmake +++ b/build/tizen/profiles/libuv-x11-profile.cmake @@ -51,20 +51,21 @@ IF( ENABLE_VULKAN ) SET(SOURCES ${SOURCES} ${graphics_vulkan_src_files} ${graphics_vulkan_x11_src_files} + ${adaptor_imaging_x11_src_files} ) ELSE() SET(SOURCES ${SOURCES} ${adaptor_public_api_egl_src_files} + ${devel_api_egl_src_files} ${adaptor_graphics_gles_src_files} ${adaptor_graphics_ubuntu_src_files} - ${adaptor_imaging_ubuntu_x11_egl_src_files} - ${adaptor_system_common_egl_src_files} - ${adaptor_window_system_common_egl_src_files} + ${adaptor_imaging_x11_egl_src_files} ${adaptor_system_common_egl_src_files} + ${adaptor_window_system_x11_egl_src_files} ${adaptor_window_system_common_egl_src_files} ) diff --git a/dali/internal/graphics/gles/egl-graphics.cpp b/dali/internal/graphics/gles/egl-graphics.cpp index 975b37f..8bb67ef 100644 --- a/dali/internal/graphics/gles/egl-graphics.cpp +++ b/dali/internal/graphics/gles/egl-graphics.cpp @@ -27,8 +27,6 @@ #include // For Utils::MakeUnique #include -#include - namespace Dali { namespace Internal @@ -173,10 +171,8 @@ void EglGraphics::Initialize(const Dali::DisplayConnection& displayConnection, b void EglGraphics::InitializeGraphicsAPI(const Dali::DisplayConnection& displayConnection) { - // Bad name - it does call "eglInitialize"!!!! @todo Rename me! - auto display = displayConnection.GetDisplay(); - auto x11Display = display.Get<::Display*>(); - auto eglDisplay = static_cast(x11Display); + auto display = displayConnection.GetNativeGraphicsDisplay(); + auto eglDisplay = display.Get(); mEglImplementation->InitializeGles(eglDisplay); } diff --git a/dali/internal/graphics/vulkan/vulkan-graphics-impl.cpp b/dali/internal/graphics/vulkan/vulkan-graphics-impl.cpp index 4e351bc..22133a8 100644 --- a/dali/internal/graphics/vulkan/vulkan-graphics-impl.cpp +++ b/dali/internal/graphics/vulkan/vulkan-graphics-impl.cpp @@ -63,8 +63,8 @@ void VulkanGraphics::Initialize(const Dali::DisplayConnection& displayConnection void VulkanGraphics::InitializeGraphicsAPI(const Dali::DisplayConnection& displayConnection) { - // Pass native X11 display to vulkan device? - // Not needed for xlib-xcb surface creation + // Pass native X11/Wayland/Mac/Android display to vulkan device? + // Not needed for xlib-xcb surface creation... } void VulkanGraphics::ConfigureSurface(Dali::Integration::RenderSurfaceInterface* surface) diff --git a/dali/internal/imaging/file.list b/dali/internal/imaging/file.list index 8ce21f3..20e6c1a 100644 --- a/dali/internal/imaging/file.list +++ b/dali/internal/imaging/file.list @@ -56,6 +56,8 @@ SET( adaptor_imaging_ubuntu_x11_vulkan_src_files # module: imaging, backend: libuv-x11/glib SET( adaptor_imaging_x11_src_files ${adaptor_imaging_dir}/common/file-download.cpp +) +SET( adaptor_imaging_x11_egl_src_files ${adaptor_imaging_dir}/x11/native-image-source-factory-x.cpp ${adaptor_imaging_dir}/x11/native-image-source-impl-x.cpp ${adaptor_imaging_dir}/x11/native-image-source-queue-impl-x.cpp diff --git a/dali/internal/window-system/android/display-connection-impl-android.cpp b/dali/internal/window-system/android/display-connection-impl-android.cpp index cfc40fe..b12d896 100644 --- a/dali/internal/window-system/android/display-connection-impl-android.cpp +++ b/dali/internal/window-system/android/display-connection-impl-android.cpp @@ -19,6 +19,9 @@ #include // INTERNAL HEADERS +#if !defined(VULKAN_ENABLED) +#include +#endif // EXTERNAL HEADERS @@ -43,6 +46,15 @@ Any DisplayConnectionAndroid::GetDisplay() return {mDisplay}; } +Any DisplayConnectionAndroid::GetNativeGraphicsDisplay() +{ +#if defined(VULKAN_ENABLED) + return {nullptr}; +#else + return {mDisplay}; +#endif +} + void DisplayConnectionAndroid::ConsumeEvents() { } diff --git a/dali/internal/window-system/android/display-connection-impl-android.h b/dali/internal/window-system/android/display-connection-impl-android.h index 6f8e3d4..cb8f3f6 100644 --- a/dali/internal/window-system/android/display-connection-impl-android.h +++ b/dali/internal/window-system/android/display-connection-impl-android.h @@ -56,6 +56,11 @@ public: Any GetDisplay() override; /** + * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay + */ + Any GetNativeGraphicsDisplay() override; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ void ConsumeEvents() override; diff --git a/dali/internal/window-system/common/display-connection-impl.h b/dali/internal/window-system/common/display-connection-impl.h index 64bddbe..c645c25 100644 --- a/dali/internal/window-system/common/display-connection-impl.h +++ b/dali/internal/window-system/common/display-connection-impl.h @@ -46,6 +46,13 @@ public: virtual Any GetDisplay() = 0; /** + * @brief Get display for the graphics backend + * + * @return EGLNativeDisplayType or vulkan display type + */ + virtual Any GetNativeGraphicsDisplay() = 0; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ virtual void ConsumeEvents() = 0; diff --git a/dali/internal/window-system/common/display-connection.cpp b/dali/internal/window-system/common/display-connection.cpp index e02e10f..02b8acd 100644 --- a/dali/internal/window-system/common/display-connection.cpp +++ b/dali/internal/window-system/common/display-connection.cpp @@ -60,6 +60,11 @@ Any DisplayConnection::GetDisplay() const return mImpl->GetDisplay(); } +Any DisplayConnection::GetNativeGraphicsDisplay() const +{ + return mImpl->GetNativeGraphicsDisplay(); +} + void DisplayConnection::ConsumeEvents() { mImpl->ConsumeEvents(); diff --git a/dali/internal/window-system/common/display-connection.h b/dali/internal/window-system/common/display-connection.h index 33eb85f..3537f03 100644 --- a/dali/internal/window-system/common/display-connection.h +++ b/dali/internal/window-system/common/display-connection.h @@ -72,6 +72,13 @@ public: Any GetDisplay() const; /** + * @brief Get display for the graphics backend + * + * @return EGLNativeDisplayType or vulkan display type + */ + Any GetNativeGraphicsDisplay() const; + + /** * @brief Consumes any possible events on the queue so that there is no leaking between frames */ void ConsumeEvents(); diff --git a/dali/internal/window-system/macos/display-connection-impl-mac.cpp b/dali/internal/window-system/macos/display-connection-impl-mac.cpp index bb831ae..e34ccd1 100644 --- a/dali/internal/window-system/macos/display-connection-impl-mac.cpp +++ b/dali/internal/window-system/macos/display-connection-impl-mac.cpp @@ -37,6 +37,15 @@ Any DisplayConnectionCocoa::GetDisplay() return EGL_DEFAULT_DISPLAY; } +Any DisplayConnectionCocoa::GetNativeGraphicsDisplay() +{ +#if defined(VULKAN_ENABLED) + return {nullptr}; +#else + return {EGL_DEFAULT_DISPLAY}; +#endif +} + void DisplayConnectionCocoa::ConsumeEvents() { } diff --git a/dali/internal/window-system/macos/display-connection-impl-mac.h b/dali/internal/window-system/macos/display-connection-impl-mac.h index e06ad78..a6ef6a5 100644 --- a/dali/internal/window-system/macos/display-connection-impl-mac.h +++ b/dali/internal/window-system/macos/display-connection-impl-mac.h @@ -48,6 +48,11 @@ public: Any GetDisplay() override; /** + * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay + */ + Any GetNativeGraphicsDisplay() override; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ void ConsumeEvents() override; diff --git a/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.cpp b/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.cpp index 9f79f9d..1dcdc02 100644 --- a/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.cpp +++ b/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.cpp @@ -28,6 +28,10 @@ #include #endif +#if !defined(VULKAN_ENABLED) +#include +#endif + namespace Dali { namespace Internal @@ -84,6 +88,15 @@ void DisplayConnectionEcoreWl::SetSurfaceType(Integration::RenderSurfaceInterfac } } +Any DisplayConnectionEcoreWl::GetNativeGraphicsDisplay() +{ +#if defined(VULKAN_ENABLED) + return {nullptr}; +#else + return {mDisplay}; +#endif +} + EGLNativeDisplayType DisplayConnectionEcoreWl::GetNativeDisplay() { mBufMgr = tbm_bufmgr_init(-1); // -1 is meaningless. The parameter in this function is deprecated. diff --git a/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.h b/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.h index b661261..e1d99c9 100644 --- a/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.h +++ b/dali/internal/window-system/tizen-wayland/display-connection-impl-ecore-wl.h @@ -61,6 +61,11 @@ public: Any GetDisplay() override; /** + * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay + */ + Any GetNativeGraphicsDisplay() override; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ void ConsumeEvents() override; @@ -95,9 +100,9 @@ protected: void ReleaseNativeDisplay(); private: - EGLNativeDisplayType mDisplay; ///< Wayland-display for rendering + EGLNativeDisplayType mDisplay; ///< Wayland-display for rendering Dali::Integration::RenderSurfaceInterface::Type mSurfaceType; ///< The surface type - tbm_bufmgr mBufMgr; ///< For creating tbm_dummy_display + tbm_bufmgr mBufMgr; ///< For creating tbm_dummy_display }; } // namespace Adaptor diff --git a/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.cpp b/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.cpp index 67a0b2b..c12d9f6 100644 --- a/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.cpp +++ b/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.cpp @@ -22,6 +22,9 @@ #include // INTERNAL HEADERS +#if !defined(VULKAN_ENABLED) +#include +#endif namespace Dali { @@ -54,6 +57,15 @@ Any DisplayConnectionX11::GetDisplay() return {mDisplay}; } +Any DisplayConnectionX11::GetNativeGraphicsDisplay() +{ +#if defined(VULKAN_ENABLED) + return {nullptr}; +#else + return {static_cast(mDisplay)}; +#endif +} + void DisplayConnectionX11::ConsumeEvents() { // check events so that we can flush the queue and avoid any potential memory leaks in X diff --git a/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.h b/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.h index 0e6fd4d..679b54b 100644 --- a/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.h +++ b/dali/internal/window-system/ubuntu-x11/display-connection-impl-x.h @@ -59,6 +59,11 @@ public: Any GetDisplay() override; /** + * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay + */ + Any GetNativeGraphicsDisplay() override; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ void ConsumeEvents() override; diff --git a/dali/internal/window-system/windows/display-connection-impl-win.cpp b/dali/internal/window-system/windows/display-connection-impl-win.cpp index ccd484a..2ba397b 100644 --- a/dali/internal/window-system/windows/display-connection-impl-win.cpp +++ b/dali/internal/window-system/windows/display-connection-impl-win.cpp @@ -22,7 +22,10 @@ #include // INTERNAL INCLUDES -#include + +#if !defined(VULKAN_ENABLED) +#include +#endif namespace Dali { @@ -50,6 +53,15 @@ Any DisplayConnectionWin::GetDisplay() return Any(mDisplay); } +Any DisplayConnectionWin::GetNativeGraphicsDisplay() +{ +#if defined(VULKAN_ENABLED) + return {nullptr}; +#else + return {eglGetDisplay(mDisplay)}; +#endif +} + void DisplayConnectionWin::ConsumeEvents() { } diff --git a/dali/internal/window-system/windows/display-connection-impl-win.h b/dali/internal/window-system/windows/display-connection-impl-win.h index fca98f4..02ab776 100644 --- a/dali/internal/window-system/windows/display-connection-impl-win.h +++ b/dali/internal/window-system/windows/display-connection-impl-win.h @@ -57,6 +57,11 @@ public: Any GetDisplay() override; /** + * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay + */ + Any GetNativeGraphicsDisplay() override; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ void ConsumeEvents() override; diff --git a/dali/internal/window-system/x11/display-connection-impl-x.cpp b/dali/internal/window-system/x11/display-connection-impl-x.cpp index 560cb9d..39ef670 100644 --- a/dali/internal/window-system/x11/display-connection-impl-x.cpp +++ b/dali/internal/window-system/x11/display-connection-impl-x.cpp @@ -23,6 +23,10 @@ // INTERNAL HEADERS #include +#if !defined(VULKAN_ENABLED) +#include +#endif + namespace Dali::Internal::Adaptor { DisplayConnectionX11::DisplayConnectionX11() @@ -37,6 +41,15 @@ Any DisplayConnectionX11::GetDisplay() return {mDisplay}; } +Any DisplayConnectionX11::GetNativeGraphicsDisplay() +{ +#if defined(VULKAN_ENABLED) + return {nullptr}; +#else + return {static_cast(mDisplay)}; +#endif +} + void DisplayConnectionX11::ConsumeEvents() { // Event consumption should only be done in WindowSystemX. diff --git a/dali/internal/window-system/x11/display-connection-impl-x.h b/dali/internal/window-system/x11/display-connection-impl-x.h index 8160f10..7daae30 100644 --- a/dali/internal/window-system/x11/display-connection-impl-x.h +++ b/dali/internal/window-system/x11/display-connection-impl-x.h @@ -19,8 +19,8 @@ */ // INTERNAL INCLUDES -#include #include +#include namespace Dali { @@ -53,6 +53,11 @@ public: Any GetDisplay() override; /** + * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay + */ + Any GetNativeGraphicsDisplay() override; + + /** * @copydoc Dali::DisplayConnection::ConsumeEvents */ void ConsumeEvents() override; -- 2.7.4