*
*/
-/**
- * @addtogroup dali_adaptor_framework
- * @{
- */
-
// EXTERNAL INCLUDES
#include <dali/public-api/signals/dali-signal.h>
#include <dali/public-api/object/any.h>
+#include <dali/public-api/object/base-handle.h>
namespace Dali
{
+/**
+ * @addtogroup dali_adaptor_framework
+ * @{
+ */
+
class OffscreenWindow;
namespace Internal
/**
* @brief Appliations can draw UI on offscreen surface with the OffscreenApplication.
- * When you use a OffscreenApplication, you don't have to make a Window.
+ * When you use a OffscreenApplication, you don't have to create a Window.
*/
class DALI_IMPORT_API OffscreenApplication : public Dali::BaseHandle
{
+
public:
- typedef Signal<void (void)> OffscreenApplicationSignalType;
+ using OffscreenApplicationSignalType = Signal<void (void)>;
+
+ /**
+ * @brief Enumeration for the render mode
+ */
+ enum class RenderMode
+ {
+ AUTO, // Scene is rendered automatically
+ MANUAL // Scene is rendered by RenderOnce()
+ };
public:
* @param[in] width The initial width of the default OffscreenWindow
* @param[in] height The initial height of the default OffscreenWindow
* @param[in] isTranslucent Whether the OffscreenWindow is translucent or not
+ * @param[in] renderMode The RenderMode of the OffscreenApplication
*/
- static OffscreenApplication New( uint16_t width, uint16_t height, bool isTranslucent );
+ static OffscreenApplication New( uint16_t width, uint16_t height, bool isTranslucent,
+ RenderMode renderMode = RenderMode::AUTO );
/**
* @brief This is the constructor of OffscreenApplication
*
* @param[in] surface The native surface handle to create the OffscreenWindow
* @param[in] isTranslucent Whether the OffscreenWindow is translucent or not
+ * @param[in] renderMode The RenderMode of the OffscreenApplication
*/
- static OffscreenApplication New( Dali::Any surface, bool isTranslucent );
+ static OffscreenApplication New( Dali::Any surface, RenderMode renderMode = RenderMode::AUTO );
/**
* @brief Constructs an empty handle
*/
- OffscreenApplication();
+ OffscreenApplication();
/**
* @brief Copy constructor
+ *
+ * @param [in] offscreenApplication A reference to the copied handle
*/
- OffscreenApplication( const OffscreenApplication& offscreenApplication );
+ OffscreenApplication( const OffscreenApplication& offscreenApplication );
/**
* @brief Assignment operator
+ *
+ * @param [in] offscreenApplication A reference to the copied handle
+ * @return A reference to this
*/
- OffscreenApplication& operator=( const OffscreenApplication& offscreenApplication );
+ OffscreenApplication& operator=( const OffscreenApplication& offscreenApplication );
/**
* @brief Destructor
*/
- ~OffscreenApplication();
+ ~OffscreenApplication();
public:
/**
- * @brief Runs the OffscreenApplication (rendering, event handling, etc)
+ * @brief Starts the OffscreenApplication (rendering, event handling, etc)
*/
- void Run();
+ void Start();
/**
* @brief Stops the OffscreenApplication
/**
- * @brief Get the default Window handle
- * @return The default Window
+ * @brief Get the default OffscreenWindow handle
+ * @return The default OffscreenWindow
*/
OffscreenWindow GetWindow();
+ /**
+ * @brief Renders once more even if we're paused
+ */
+ void RenderOnce();
+
public: // Signals
/**
* @brief Signal to notify the client when the application is ready to be initialized
*
- * @note OffscreenApplication::Run() should be called to be initialized
+ * @note OffscreenApplication::Start() should be called to be initialized
*
* @return The signal
*/