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
INCLUDE_DIRECTORIES(
../../../
../../../third-party/image-resampler
+ ../../../dali/integration-api/adaptor-framework
${${CAPI_LIB}_INCLUDE_DIRS}
../dali-adaptor/dali-test-suite-utils
)
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})
*/
// 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
{
INCLUDE_DIRECTORIES(
../../../
+ ../../../dali/integration-api/adaptor-framework
${${CAPI_LIB}_INCLUDE_DIRS}
../dali-adaptor/dali-test-suite-utils
)
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
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}
)
#include <dali/internal/window-system/common/display-utils.h> // For Utils::MakeUnique
#include <dali/internal/window-system/common/window-base.h>
-#include <X11/Xlib.h>
-
namespace Dali
{
namespace Internal
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<EGLNativeDisplayType>(x11Display);
+ auto display = displayConnection.GetNativeGraphicsDisplay();
+ auto eglDisplay = display.Get<EGLNativeDisplayType>();
mEglImplementation->InitializeGles(eglDisplay);
}
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)
# 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
#include <dali/internal/window-system/android/display-connection-impl-android.h>
// INTERNAL HEADERS
+#if !defined(VULKAN_ENABLED)
+#include <dali/internal/graphics/gles/egl-graphics.h>
+#endif
// EXTERNAL HEADERS
return {mDisplay};
}
+Any DisplayConnectionAndroid::GetNativeGraphicsDisplay()
+{
+#if defined(VULKAN_ENABLED)
+ return {nullptr};
+#else
+ return {mDisplay};
+#endif
+}
+
void DisplayConnectionAndroid::ConsumeEvents()
{
}
Any GetDisplay() override;
/**
+ * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay
+ */
+ Any GetNativeGraphicsDisplay() override;
+
+ /**
* @copydoc Dali::DisplayConnection::ConsumeEvents
*/
void ConsumeEvents() override;
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;
return mImpl->GetDisplay();
}
+Any DisplayConnection::GetNativeGraphicsDisplay() const
+{
+ return mImpl->GetNativeGraphicsDisplay();
+}
+
void DisplayConnection::ConsumeEvents()
{
mImpl->ConsumeEvents();
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();
return EGL_DEFAULT_DISPLAY;
}
+Any DisplayConnectionCocoa::GetNativeGraphicsDisplay()
+{
+#if defined(VULKAN_ENABLED)
+ return {nullptr};
+#else
+ return {EGL_DEFAULT_DISPLAY};
+#endif
+}
+
void DisplayConnectionCocoa::ConsumeEvents()
{
}
Any GetDisplay() override;
/**
+ * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay
+ */
+ Any GetNativeGraphicsDisplay() override;
+
+ /**
* @copydoc Dali::DisplayConnection::ConsumeEvents
*/
void ConsumeEvents() override;
#include <Ecore_Wayland.h>
#endif
+#if !defined(VULKAN_ENABLED)
+#include <dali/internal/graphics/common/egl-include.h>
+#endif
+
namespace Dali
{
namespace Internal
}
}
+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.
Any GetDisplay() override;
/**
+ * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay
+ */
+ Any GetNativeGraphicsDisplay() override;
+
+ /**
* @copydoc Dali::DisplayConnection::ConsumeEvents
*/
void ConsumeEvents() override;
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
#include <dali/internal/system/linux/dali-ecore-x.h>
// INTERNAL HEADERS
+#if !defined(VULKAN_ENABLED)
+#include <dali/internal/graphics/common/egl-include.h>
+#endif
namespace Dali
{
return {mDisplay};
}
+Any DisplayConnectionX11::GetNativeGraphicsDisplay()
+{
+#if defined(VULKAN_ENABLED)
+ return {nullptr};
+#else
+ return {static_cast<EGLNativeDisplayType>(mDisplay)};
+#endif
+}
+
void DisplayConnectionX11::ConsumeEvents()
{
// check events so that we can flush the queue and avoid any potential memory leaks in X
Any GetDisplay() override;
/**
+ * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay
+ */
+ Any GetNativeGraphicsDisplay() override;
+
+ /**
* @copydoc Dali::DisplayConnection::ConsumeEvents
*/
void ConsumeEvents() override;
#include <dali/integration-api/debug.h>\r
\r
// INTERNAL INCLUDES\r
-#include <dali/internal/graphics/gles/egl-graphics.h>\r
+\r
+#if !defined(VULKAN_ENABLED)\r
+#include <dali/internal/graphics/common/egl-include.h>\r
+#endif\r
\r
namespace Dali\r
{\r
return Any(mDisplay);\r
}\r
\r
+Any DisplayConnectionWin::GetNativeGraphicsDisplay()\r
+{\r
+#if defined(VULKAN_ENABLED)\r
+ return {nullptr};\r
+#else\r
+ return {eglGetDisplay(mDisplay)};\r
+#endif\r
+}\r
+\r
void DisplayConnectionWin::ConsumeEvents()\r
{\r
}\r
Any GetDisplay() override;\r
\r
/**\r
+ * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay\r
+ */\r
+ Any GetNativeGraphicsDisplay() override;\r
+\r
+ /**\r
* @copydoc Dali::DisplayConnection::ConsumeEvents\r
*/\r
void ConsumeEvents() override;\r
// INTERNAL HEADERS
#include <dali/internal/window-system/x11/window-system-x.h>
+#if !defined(VULKAN_ENABLED)
+#include <dali/internal/graphics/common/egl-include.h>
+#endif
+
namespace Dali::Internal::Adaptor
{
DisplayConnectionX11::DisplayConnectionX11()
return {mDisplay};
}
+Any DisplayConnectionX11::GetNativeGraphicsDisplay()
+{
+#if defined(VULKAN_ENABLED)
+ return {nullptr};
+#else
+ return {static_cast<EGLNativeDisplayType>(mDisplay)};
+#endif
+}
+
void DisplayConnectionX11::ConsumeEvents()
{
// Event consumption should only be done in WindowSystemX.
*/
// INTERNAL INCLUDES
-#include <dali/internal/window-system/common/display-connection-impl.h>
#include <X11/Xlib.h>
+#include <dali/internal/window-system/common/display-connection-impl.h>
namespace Dali
{
Any GetDisplay() override;
/**
+ * @copydoc Dali::DisplayConnection::GetNativeGraphicsDisplay
+ */
+ Any GetNativeGraphicsDisplay() override;
+
+ /**
* @copydoc Dali::DisplayConnection::ConsumeEvents
*/
void ConsumeEvents() override;