X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Finternal%2Fadaptor%2Fcommon%2Fthread-controller-interface.h;h=6bf730e568aac318013b3206e2ef7a35ad42fcc6;hb=c12c1126016b3e49cf1237064f4b7ce5c302e0e4;hp=2c8e8ebc99a6bb767efc4f6d53366ae3571b6a3a;hpb=761f75cd51351b7a4e072130f4a2ad0b3e3231bb;p=platform%2Fcore%2Fuifw%2Fdali-adaptor.git diff --git a/dali/internal/adaptor/common/thread-controller-interface.h b/dali/internal/adaptor/common/thread-controller-interface.h index 2c8e8eb..6bf730e 100644 --- a/dali/internal/adaptor/common/thread-controller-interface.h +++ b/dali/internal/adaptor/common/thread-controller-interface.h @@ -1,8 +1,8 @@ -#ifndef __DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H__ -#define __DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H__ +#ifndef DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H +#define DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H /* - * Copyright (c) 2017 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. @@ -18,10 +18,12 @@ * */ +#include + namespace Dali { -class RenderSurface; +class RenderSurfaceInterface; namespace Internal { @@ -29,6 +31,12 @@ namespace Internal namespace Adaptor { +enum class UpdateMode +{ + NORMAL, ///< Update and render + SKIP_RENDER ///< Update and resource upload but no rendering +}; + /** * Interface Class for all controlling threads. */ @@ -73,15 +81,16 @@ public: /** * 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. * @param surface new surface */ - virtual void ReplaceSurface( RenderSurface* surface ) = 0; + virtual void ReplaceSurface( Dali::RenderSurfaceInterface* surface ) = 0; /** * Resize the surface. @@ -89,10 +98,26 @@ public: 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; + /** + * @copydoc Dali::Adaptor::SetPreRenderCallback() + */ + virtual void SetPreRenderCallback( CallbackBase* callback ) = 0; + + /** + * @brief Adds the new surface. + * @param surface new surface + */ + virtual void AddSurface( Dali::RenderSurfaceInterface* surface ) = 0; + protected: /** @@ -115,4 +140,4 @@ private: } // namespace Dali -#endif // __DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H__ +#endif // DALI_INTERNAL_THREAD_CONTROLLER_INTERFACE_H