From e934c119e68c759172a341c877e1b98cded9d2d4 Mon Sep 17 00:00:00 2001 From: Adeel Kazmi Date: Thu, 5 Nov 2015 15:19:12 +0000 Subject: [PATCH] (Platform Abstraction) Replace GetMicroSeconds with GetNanoseconds Change-Id: Ice276d5ff236f7988e100845895db82694ca8661 --- .../dali-test-suite-utils/test-application.cpp | 8 +-- .../dali/dali-test-suite-utils/test-application.h | 1 - .../test-platform-abstraction.cpp | 75 ++++++---------------- .../test-platform-abstraction.h | 26 +++++--- dali/integration-api/platform-abstraction.h | 17 +++-- 5 files changed, 50 insertions(+), 77 deletions(-) diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-application.cpp b/automated-tests/src/dali/dali-test-suite-utils/test-application.cpp index 5d17a1d..60d7b6e 100644 --- a/automated-tests/src/dali/dali-test-suite-utils/test-application.cpp +++ b/automated-tests/src/dali/dali-test-suite-utils/test-application.cpp @@ -32,7 +32,7 @@ TestApplication::TestApplication( size_t surfaceWidth, mFrame( 0u ), mDpi( horizontalDpi, verticalDpi ), mLastVSyncTime(0u), - mDataRetentionPolicy(policy) + mDataRetentionPolicy( policy ) { Initialize(); } @@ -153,9 +153,9 @@ void TestApplication::SetSurfaceWidth( unsigned int width, unsigned height ) void TestApplication::DoUpdate( unsigned int intervalMilliseconds ) { - unsigned int seconds(0u), microseconds(0u); - mPlatformAbstraction.GetTimeMicroseconds( seconds, microseconds ); - mLastVSyncTime = ( seconds * 1e3 ) + ( microseconds / 1e3 ); + uint64_t seconds(0u), nanoseconds(0u); + mPlatformAbstraction.GetTimeNanoseconds( seconds, nanoseconds ); + mLastVSyncTime = ( seconds * 1e3 ) + ( nanoseconds / 1e6 ); unsigned int nextVSyncTime = mLastVSyncTime + 16; // Update Time values diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-application.h b/automated-tests/src/dali/dali-test-suite-utils/test-application.h index ed33f52..3f61b93 100644 --- a/automated-tests/src/dali/dali-test-suite-utils/test-application.h +++ b/automated-tests/src/dali/dali-test-suite-utils/test-application.h @@ -26,7 +26,6 @@ #include "test-render-controller.h" #include #include -#include namespace Dali { diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.cpp b/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.cpp index 95082fd..5ece3f1 100644 --- a/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.cpp +++ b/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.cpp @@ -22,16 +22,17 @@ namespace Dali { -/** - * Constructor - */ +namespace +{ +const unsigned int NANOSECONDS_PER_MILLISECOND = 1000000u; +const unsigned int NANOSECONDS_PER_SECOND = 1000000000u; +} + TestPlatformAbstraction::TestPlatformAbstraction() : mTrace(), mSeconds( 0u ), - mMicroSeconds( 0u ), + mNanoSeconds( 0u ), mIsLoadingResult( false ), - mGetDefaultFontFamilyResult(), - mGetDefaultFontStyleResult(), mGetDefaultFontSizeResult( 0 ), mResources(), mRequest( NULL ), @@ -43,34 +44,22 @@ TestPlatformAbstraction::TestPlatformAbstraction() Initialize(); } -/** - * Destructor - */ TestPlatformAbstraction::~TestPlatformAbstraction() { } -/** - * @copydoc PlatformAbstraction::GetTimeMicroseconds() - */ -void TestPlatformAbstraction::GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds) +void TestPlatformAbstraction::GetTimeNanoseconds( uint64_t& seconds, uint64_t& nanoseconds ) { seconds = mSeconds; - microSeconds = mMicroSeconds; - mTrace.PushCall("GetTimeMicroseconds", ""); + nanoseconds = mNanoSeconds; + mTrace.PushCall("GetTimeNanoseconds", ""); } -/** - * @copydoc PlatformAbstraction::Suspend() - */ void TestPlatformAbstraction::Suspend() { mTrace.PushCall("Suspend", ""); } -/** - * @copydoc PlatformAbstraction::Resume() - */ void TestPlatformAbstraction::Resume() { mTrace.PushCall("Resume", ""); @@ -98,10 +87,6 @@ ImageDimensions TestPlatformAbstraction::GetClosestImageSize( Integration::Resou return closestSize; } - -/** - * @copydoc PlatformAbstraction::LoadResource() - */ void TestPlatformAbstraction::LoadResource(const Integration::ResourceRequest& request) { std::ostringstream out; @@ -128,17 +113,11 @@ Integration::BitmapPtr TestPlatformAbstraction::DecodeBuffer( const Integration: return Integration::BitmapPtr(); } -/** - * @copydoc PlatformAbstraction::CancelLoad() - */ void TestPlatformAbstraction::CancelLoad(Integration::ResourceId id, Integration::ResourceTypeId typeId) { mTrace.PushCall("CancelLoad", ""); } -/** - * @copydoc PlatformAbstraction::GetResources() - */ void TestPlatformAbstraction::GetResources(Integration::ResourceCache& cache) { mTrace.PushCall("GetResources", ""); @@ -153,35 +132,23 @@ void TestPlatformAbstraction::GetResources(Integration::ResourceCache& cache) } } -/** - * @copydoc PlatformAbstraction::IsLoading() - */ bool TestPlatformAbstraction::IsLoading() { mTrace.PushCall("IsLoading", ""); return mIsLoadingResult; } -/** - * @copydoc PlatformAbstraction::GetDefaultFontSize() - */ int TestPlatformAbstraction::GetDefaultFontSize() const { mTrace.PushCall("GetDefaultFontSize", ""); return mGetDefaultFontSizeResult; } -/** - * @copydoc PlatformAbstraction::SetDpi() - */ void TestPlatformAbstraction::SetDpi (unsigned int dpiHorizontal, unsigned int dpiVertical) { mTrace.PushCall("SetDpi", ""); } -/** - * @copydoc PlatformAbstraction::LoadFile() - */ bool TestPlatformAbstraction::LoadFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const { mTrace.PushCall("LoadFile", ""); @@ -193,9 +160,6 @@ bool TestPlatformAbstraction::LoadFile( const std::string& filename, Dali::Vecto return mLoadFileResult.loadResult; } -/** - * @copydoc PlatformAbstraction::LoadShaderBinaryFile() - */ bool TestPlatformAbstraction::LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const { mTrace.PushCall("LoadShaderBinaryFile", ""); @@ -207,9 +171,6 @@ bool TestPlatformAbstraction::LoadShaderBinaryFile( const std::string& filename, return mLoadFileResult.loadResult; } -/** - * @copydoc PlatformAbstraction::SaveFile() - */ bool TestPlatformAbstraction::SaveFile(const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const { mTrace.PushCall("SaveFile", ""); @@ -228,7 +189,7 @@ void TestPlatformAbstraction::Initialize() mTrace.Enable(true); memset(&mResources, 0, sizeof(Resources)); mSeconds=0; - mMicroSeconds=0; + mNanoSeconds=0; mIsLoadingResult=false; if(mRequest) @@ -242,11 +203,13 @@ bool TestPlatformAbstraction::WasCalled(TestFuncEnum func) { switch(func) { - case GetTimeMicrosecondsFunc: return mTrace.FindMethod("GetTimeMicroseconds"); + case GetTimeNanosecondsFunc: return mTrace.FindMethod("GetTimeNanoseconds"); case SuspendFunc: return mTrace.FindMethod("Suspend"); case ResumeFunc: return mTrace.FindMethod("Resume"); case LoadResourceFunc: return mTrace.FindMethod("LoadResource"); case LoadFileFunc: return mTrace.FindMethod("LoadFile"); + case LoadShaderBinaryFileFunc: return mTrace.FindMethod("LoadShaderBinaryFile"); + case SaveShaderBinaryFileFunc: return mTrace.FindMethod("SaveShaderBinaryFile"); case SaveFileFunc: return mTrace.FindMethod("SaveFile"); case CancelLoadFunc: return mTrace.FindMethod("CancelLoad"); case GetResourcesFunc: return mTrace.FindMethod("GetResources"); @@ -257,19 +220,19 @@ bool TestPlatformAbstraction::WasCalled(TestFuncEnum func) return false; } -void TestPlatformAbstraction::SetGetTimeMicrosecondsResult(size_t sec, size_t usec) +void TestPlatformAbstraction::SetGetTimeNanosecondsResult(size_t sec, size_t nsec) { mSeconds = sec; - mMicroSeconds = usec; + mNanoSeconds = nsec; } void TestPlatformAbstraction::IncrementGetTimeResult(size_t milliseconds) { - mMicroSeconds += milliseconds * 1000u; - unsigned int additionalSeconds = mMicroSeconds / 1000000u; + mNanoSeconds += milliseconds * NANOSECONDS_PER_MILLISECOND; + unsigned int additionalSeconds = mNanoSeconds / NANOSECONDS_PER_SECOND; mSeconds += additionalSeconds; - mMicroSeconds -= additionalSeconds * 1000000u; + mNanoSeconds -= additionalSeconds * NANOSECONDS_PER_SECOND; } void TestPlatformAbstraction::SetIsLoadingResult(bool result) diff --git a/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.h b/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.h index 9408801..b1fb01b 100644 --- a/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.h +++ b/automated-tests/src/dali/dali-test-suite-utils/test-platform-abstraction.h @@ -74,9 +74,9 @@ public: virtual ~TestPlatformAbstraction(); /** - * @copydoc PlatformAbstraction::GetTimeMicroseconds() + * @copydoc PlatformAbstraction::GetTimeNanoseconds() */ - virtual void GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds); + virtual void GetTimeNanoseconds( uint64_t& seconds, uint64_t& nanoseconds ); /** * @copydoc PlatformAbstraction::Suspend() @@ -88,12 +88,18 @@ public: */ virtual void Resume(); + /** + * @copydoc PlatformAbstraction::GetClosestImageSize() + */ virtual ImageDimensions GetClosestImageSize( const std::string& filename, ImageDimensions size, FittingMode::Type fittingMode, SamplingMode::Type samplingMode, bool orientationCorrection ); + /** + * @copydoc PlatformAbstraction::GetClosestImageSize() + */ virtual ImageDimensions GetClosestImageSize( Integration::ResourcePointer resourceBuffer, ImageDimensions size, FittingMode::Type fittingMode, @@ -158,7 +164,7 @@ public: /** * @copydoc PlatformAbstraction::SaveShaderBinaryFile() */ - virtual bool SaveShaderBinaryFile( const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const { return false; } + virtual bool SaveShaderBinaryFile( const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const { return true; } virtual void JoinLoaderThreads(); @@ -167,12 +173,14 @@ public: // TEST FUNCTIONS // Enumeration of Platform Abstraction methods typedef enum { - GetTimeMicrosecondsFunc, + GetTimeNanosecondsFunc, SuspendFunc, ResumeFunc, LoadResourceFunc, SaveFileFunc, LoadFileFunc, + LoadShaderBinaryFileFunc, + SaveShaderBinaryFileFunc, CancelLoadFunc, GetResourcesFunc, IsLoadingFunc, @@ -189,12 +197,14 @@ public: // TEST FUNCTIONS bool WasCalled(TestFuncEnum func); - void SetGetTimeMicrosecondsResult(size_t sec, size_t usec); + void SetGetTimeNanosecondsResult(size_t sec, size_t nsec); void IncrementGetTimeResult(size_t milliseconds); void SetIsLoadingResult(bool result); + void SetGetDefaultFontSizeResult(float result); + void ClearReadyResources(); void SetResourceLoaded(Integration::ResourceId loadedId, @@ -216,11 +226,9 @@ public: // TEST FUNCTIONS private: mutable TraceCallStack mTrace; - size_t mSeconds; - size_t mMicroSeconds; + uint64_t mSeconds; + uint64_t mNanoSeconds; bool mIsLoadingResult; - std::string mGetDefaultFontFamilyResult; - std::string mGetDefaultFontStyleResult; int mGetDefaultFontSizeResult; Resources mResources; Integration::ResourceRequest* mRequest; diff --git a/dali/integration-api/platform-abstraction.h b/dali/integration-api/platform-abstraction.h index 0cb64a1..24d3139 100644 --- a/dali/integration-api/platform-abstraction.h +++ b/dali/integration-api/platform-abstraction.h @@ -40,19 +40,22 @@ class PlatformAbstraction { public: + /** + * Virtual destructor. + */ virtual ~PlatformAbstraction() {} - // Dali Lifecycle + // Time /** - * Get the monotonic time since an unspecified reference point. - * This is used by Dali to calculate time intervals during animations; the interval is - * recalculated when Dali is resumed with Dali::Integration::Core::Resume(). - * Multi-threading note: this method may be called from either the main or rendering thread. + * Get the monotonic time since an unspecified reference point with more precision. + * Multi-threading note: this method may be called from any thread. * @param[out] seconds The time in seconds since the reference point. - * @param[out] microSeconds The remainder in microseconds. + * @param[out] nanoseconds The remainder in nanoseconds. */ - virtual void GetTimeMicroseconds(unsigned int& seconds, unsigned int& microSeconds) = 0; + virtual void GetTimeNanoseconds( uint64_t& seconds, uint64_t& nanoseconds ) = 0; + + // DALi Lifecycle /** * Tell the platform abstraction that Dali is ready to pause, such as when the -- 2.7.4