#define DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H
/*
- * Copyright (c) 2019 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
namespace Adaptor
{
+enum class UpdateMode
+{
+ NORMAL, ///< Update and render
+ SKIP_RENDER ///< Update and resource upload but no rendering
+};
+
/**
* Interface Class for all controlling threads.
*/
/**
* Called by the adaptor when core requires one update
- * If Adaptor is paused, we do one update and return to pause
+ * If Adaptor is paused, we do one update/render and return to pause
+ * @param updateMode The update mode (i.e. i.e. either update & render or skip rendering)
*/
- virtual void RequestUpdateOnce() = 0;
+ virtual void RequestUpdateOnce( UpdateMode updateMode ) = 0;
/**
* Replaces the surface.
virtual void ReplaceSurface( Dali::RenderSurfaceInterface* surface ) = 0;
/**
+ * Deletes the surface.
+ * @param[in] surface The surface to be deleted
+ */
+ virtual void DeleteSurface( Dali::RenderSurfaceInterface* surface ) = 0;
+
+ /**
* Resize the surface.
*/
virtual void ResizeSurface() = 0;
/**
+ * Wait until the graphics is initialised.
+ */
+ virtual void WaitForGraphicsInitialization() = 0;
+
+ /**
* @copydoc Dali::Adaptor::SetRenderRefreshRate()
*/
virtual void SetRenderRefreshRate( unsigned int numberOfVSyncsPerRender ) = 0;
*/
virtual void SetPreRenderCallback( CallbackBase* callback ) = 0;
+ /**
+ * @brief Adds the new surface.
+ * @param surface new surface
+ */
+ virtual void AddSurface( Dali::RenderSurfaceInterface* surface ) = 0;
+
protected:
/**