X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali%2Fintegration-api%2Fcore.h;h=84ae5e6ad2c559114c49f68148f0ac89d62db192;hb=9697546f6395000a500259997c415d9ff3c2e337;hp=002621c3c8c0470247669f3793fffbad8794e44e;hpb=878f7387867e3c7e170d6c9cdca16a1da21c6955;p=platform%2Fcore%2Fuifw%2Fdali-core.git diff --git a/dali/integration-api/core.h b/dali/integration-api/core.h index 002621c..84ae5e6 100644 --- a/dali/integration-api/core.h +++ b/dali/integration-api/core.h @@ -2,7 +2,7 @@ #define DALI_INTEGRATION_CORE_H /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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,6 +18,9 @@ * */ +// EXTERNAL INCLUDES +#include // uint32_t + // INTERNAL INCLUDES #include #include @@ -75,6 +78,7 @@ public: UpdateStatus() : keepUpdating(false), needsNotification(false), + surfaceRectChanged(false), secondsFromLastFrame( 0.0f ) { } @@ -85,7 +89,7 @@ public: * Query whether the Core has further frames to update & render e.g. when animations are ongoing. * @return A bitmask of KeepUpdating values */ - unsigned int KeepUpdating() { return keepUpdating; } + uint32_t KeepUpdating() { return keepUpdating; } /** * Query whether the Core requires an Notification event. @@ -95,6 +99,12 @@ public: bool NeedsNotification() { return needsNotification; } /** + * Query wheter the default surface rect is changed or not. + * @return true if the default surface rect is changed. + */ + bool SurfaceRectChanged() { return surfaceRectChanged; } + + /** * This method is provided so that FPS can be easily calculated with a release version * of Core. * @return the seconds from last frame as float @@ -103,8 +113,9 @@ public: public: - unsigned int keepUpdating; ///< A bitmask of KeepUpdating values + uint32_t keepUpdating; ///< A bitmask of KeepUpdating values bool needsNotification; + bool surfaceRectChanged; float secondsFromLastFrame; }; @@ -168,6 +179,23 @@ private: }; /** + * Interface to enable classes to be processed after the event loop. Classes are processed + * in the order they are registered. + */ +class DALI_CORE_API Processor +{ +public: + /** + * @brief Run the processor + */ + virtual void Process() = 0; + +protected: + virtual ~Processor() { } +}; + + +/** * Integration::Core is used for integration with the native windowing system. * The following integration tasks must be completed: * @@ -202,7 +230,7 @@ private: * This is the recommended option, so that input processing will not affect the smoothness of animations. * Note that the rendering thread must be halted, before destroying the GL context. */ -class DALI_IMPORT_API Core +class DALI_CORE_API Core { public: @@ -279,7 +307,7 @@ public: * @param[in] width The new surface width. * @param[in] height The new surface height. */ - void SurfaceResized(unsigned int width, unsigned int height); + void SurfaceResized( uint32_t width, uint32_t height ); /** * Notify the Core about the top margin size. @@ -288,7 +316,7 @@ public: * It is mainly useful for indicator in mobile device * @param[in] margin margin size */ - void SetTopMargin( unsigned int margin ); + void SetTopMargin( uint32_t margin ); // Core setters @@ -300,7 +328,7 @@ public: * @param[in] dpiHorizontal Horizontal DPI value. * @param[in] dpiVertical Vertical DPI value. */ - void SetDpi(unsigned int dpiHorizontal, unsigned int dpiVertical); + void SetDpi( uint32_t dpiHorizontal, uint32_t dpiVertical ); // Core Lifecycle @@ -332,7 +360,7 @@ public: * the Core::Render() method for frame N has returned. * @return The maximum update count (>= 1). */ - unsigned int GetMaximumUpdateCount() const; + uint32_t GetMaximumUpdateCount() const; /** * Update the scene for the next frame. This method must be called before each frame is rendered. @@ -350,8 +378,8 @@ public: * @param[in] isRenderingToFbo Whether this frame is being rendered into the Frame Buffer Object. */ void Update( float elapsedSeconds, - unsigned int lastVSyncTimeMilliseconds, - unsigned int nextVSyncTimeMilliseconds, + uint32_t lastVSyncTimeMilliseconds, + uint32_t nextVSyncTimeMilliseconds, UpdateStatus& status, bool renderToFboEnabled, bool isRenderingToFbo ); @@ -398,6 +426,20 @@ public: */ float GetStereoBase() const; + /** + * @brief Register a processor + * + * Note, Core does not take ownership of this processor. + * @param[in] processor The process to register + */ + void RegisterProcessor( Processor& processor ); + + /** + * @brief Unregister a processor + * @param[in] processor The process to unregister + */ + void UnregisterProcessor( Processor& processor ); + private: /**