Change-Id: Ice276d5ff236f7988e100845895db82694ca8661
mFrame( 0u ),
mDpi( horizontalDpi, verticalDpi ),
mLastVSyncTime(0u),
mFrame( 0u ),
mDpi( horizontalDpi, verticalDpi ),
mLastVSyncTime(0u),
- mDataRetentionPolicy(policy)
+ mDataRetentionPolicy( policy )
void TestApplication::DoUpdate( unsigned int intervalMilliseconds )
{
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
unsigned int nextVSyncTime = mLastVSyncTime + 16;
// Update Time values
#include "test-render-controller.h"
#include <dali/public-api/common/dali-common.h>
#include <dali/integration-api/resource-policies.h>
#include "test-render-controller.h"
#include <dali/public-api/common/dali-common.h>
#include <dali/integration-api/resource-policies.h>
-#include <dali/integration-api/debug.h>
-/**
- * Constructor
- */
+namespace
+{
+const unsigned int NANOSECONDS_PER_MILLISECOND = 1000000u;
+const unsigned int NANOSECONDS_PER_SECOND = 1000000000u;
+}
+
TestPlatformAbstraction::TestPlatformAbstraction()
: mTrace(),
mSeconds( 0u ),
TestPlatformAbstraction::TestPlatformAbstraction()
: mTrace(),
mSeconds( 0u ),
mIsLoadingResult( false ),
mIsLoadingResult( false ),
- mGetDefaultFontFamilyResult(),
- mGetDefaultFontStyleResult(),
mGetDefaultFontSizeResult( 0 ),
mResources(),
mRequest( NULL ),
mGetDefaultFontSizeResult( 0 ),
mResources(),
mRequest( NULL ),
TestPlatformAbstraction::~TestPlatformAbstraction()
{
}
TestPlatformAbstraction::~TestPlatformAbstraction()
{
}
-/**
- * @copydoc PlatformAbstraction::GetTimeMicroseconds()
- */
-void TestPlatformAbstraction::GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds)
+void TestPlatformAbstraction::GetTimeNanoseconds( uint64_t& seconds, uint64_t& nanoseconds )
- microSeconds = mMicroSeconds;
- mTrace.PushCall("GetTimeMicroseconds", "");
+ nanoseconds = mNanoSeconds;
+ mTrace.PushCall("GetTimeNanoseconds", "");
-/**
- * @copydoc PlatformAbstraction::Suspend()
- */
void TestPlatformAbstraction::Suspend()
{
mTrace.PushCall("Suspend", "");
}
void TestPlatformAbstraction::Suspend()
{
mTrace.PushCall("Suspend", "");
}
-/**
- * @copydoc PlatformAbstraction::Resume()
- */
void TestPlatformAbstraction::Resume()
{
mTrace.PushCall("Resume", "");
void TestPlatformAbstraction::Resume()
{
mTrace.PushCall("Resume", "");
-
-/**
- * @copydoc PlatformAbstraction::LoadResource()
- */
void TestPlatformAbstraction::LoadResource(const Integration::ResourceRequest& request)
{
std::ostringstream out;
void TestPlatformAbstraction::LoadResource(const Integration::ResourceRequest& request)
{
std::ostringstream out;
return Integration::BitmapPtr();
}
return Integration::BitmapPtr();
}
-/**
- * @copydoc PlatformAbstraction::CancelLoad()
- */
void TestPlatformAbstraction::CancelLoad(Integration::ResourceId id, Integration::ResourceTypeId typeId)
{
mTrace.PushCall("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", "");
void TestPlatformAbstraction::GetResources(Integration::ResourceCache& cache)
{
mTrace.PushCall("GetResources", "");
-/**
- * @copydoc PlatformAbstraction::IsLoading()
- */
bool TestPlatformAbstraction::IsLoading()
{
mTrace.PushCall("IsLoading", "");
return mIsLoadingResult;
}
bool TestPlatformAbstraction::IsLoading()
{
mTrace.PushCall("IsLoading", "");
return mIsLoadingResult;
}
-/**
- * @copydoc PlatformAbstraction::GetDefaultFontSize()
- */
int TestPlatformAbstraction::GetDefaultFontSize() const
{
mTrace.PushCall("GetDefaultFontSize", "");
return mGetDefaultFontSizeResult;
}
int TestPlatformAbstraction::GetDefaultFontSize() const
{
mTrace.PushCall("GetDefaultFontSize", "");
return mGetDefaultFontSizeResult;
}
-/**
- * @copydoc PlatformAbstraction::SetDpi()
- */
void TestPlatformAbstraction::SetDpi (unsigned int dpiHorizontal, unsigned int dpiVertical)
{
mTrace.PushCall("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", "");
bool TestPlatformAbstraction::LoadFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const
{
mTrace.PushCall("LoadFile", "");
return mLoadFileResult.loadResult;
}
return mLoadFileResult.loadResult;
}
-/**
- * @copydoc PlatformAbstraction::LoadShaderBinaryFile()
- */
bool TestPlatformAbstraction::LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const
{
mTrace.PushCall("LoadShaderBinaryFile", "");
bool TestPlatformAbstraction::LoadShaderBinaryFile( const std::string& filename, Dali::Vector< unsigned char >& buffer ) const
{
mTrace.PushCall("LoadShaderBinaryFile", "");
return mLoadFileResult.loadResult;
}
return mLoadFileResult.loadResult;
}
-/**
- * @copydoc PlatformAbstraction::SaveFile()
- */
bool TestPlatformAbstraction::SaveFile(const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const
{
mTrace.PushCall("SaveFile", "");
bool TestPlatformAbstraction::SaveFile(const std::string& filename, const unsigned char * buffer, unsigned int numBytes ) const
{
mTrace.PushCall("SaveFile", "");
mTrace.Enable(true);
memset(&mResources, 0, sizeof(Resources));
mSeconds=0;
mTrace.Enable(true);
memset(&mResources, 0, sizeof(Resources));
mSeconds=0;
mIsLoadingResult=false;
if(mRequest)
mIsLoadingResult=false;
if(mRequest)
- 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 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");
case SaveFileFunc: return mTrace.FindMethod("SaveFile");
case CancelLoadFunc: return mTrace.FindMethod("CancelLoad");
case GetResourcesFunc: return mTrace.FindMethod("GetResources");
-void TestPlatformAbstraction::SetGetTimeMicrosecondsResult(size_t sec, size_t usec)
+void TestPlatformAbstraction::SetGetTimeNanosecondsResult(size_t sec, size_t nsec)
}
void TestPlatformAbstraction::IncrementGetTimeResult(size_t milliseconds)
{
}
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;
mSeconds += additionalSeconds;
- mMicroSeconds -= additionalSeconds * 1000000u;
+ mNanoSeconds -= additionalSeconds * NANOSECONDS_PER_SECOND;
}
void TestPlatformAbstraction::SetIsLoadingResult(bool result)
}
void TestPlatformAbstraction::SetIsLoadingResult(bool result)
virtual ~TestPlatformAbstraction();
/**
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()
/**
* @copydoc PlatformAbstraction::Suspend()
*/
virtual void Resume();
*/
virtual void Resume();
+ /**
+ * @copydoc PlatformAbstraction::GetClosestImageSize()
+ */
virtual ImageDimensions GetClosestImageSize( const std::string& filename,
ImageDimensions size,
FittingMode::Type fittingMode,
SamplingMode::Type samplingMode,
bool orientationCorrection );
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,
virtual ImageDimensions GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
ImageDimensions size,
FittingMode::Type fittingMode,
/**
* @copydoc PlatformAbstraction::SaveShaderBinaryFile()
*/
/**
* @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();
virtual void JoinLoaderThreads();
// Enumeration of Platform Abstraction methods
typedef enum
{
// Enumeration of Platform Abstraction methods
typedef enum
{
- GetTimeMicrosecondsFunc,
+ GetTimeNanosecondsFunc,
SuspendFunc,
ResumeFunc,
LoadResourceFunc,
SaveFileFunc,
LoadFileFunc,
SuspendFunc,
ResumeFunc,
LoadResourceFunc,
SaveFileFunc,
LoadFileFunc,
+ LoadShaderBinaryFileFunc,
+ SaveShaderBinaryFileFunc,
CancelLoadFunc,
GetResourcesFunc,
IsLoadingFunc,
CancelLoadFunc,
GetResourcesFunc,
IsLoadingFunc,
bool WasCalled(TestFuncEnum func);
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 IncrementGetTimeResult(size_t milliseconds);
void SetIsLoadingResult(bool result);
+ void SetGetDefaultFontSizeResult(float result);
+
void ClearReadyResources();
void SetResourceLoaded(Integration::ResourceId loadedId,
void ClearReadyResources();
void SetResourceLoaded(Integration::ResourceId loadedId,
private:
mutable TraceCallStack mTrace;
private:
mutable TraceCallStack mTrace;
- size_t mSeconds;
- size_t mMicroSeconds;
+ uint64_t mSeconds;
+ uint64_t mNanoSeconds;
- std::string mGetDefaultFontFamilyResult;
- std::string mGetDefaultFontStyleResult;
int mGetDefaultFontSizeResult;
Resources mResources;
Integration::ResourceRequest* mRequest;
int mGetDefaultFontSizeResult;
Resources mResources;
Integration::ResourceRequest* mRequest;
+ /**
+ * Virtual destructor.
+ */
virtual ~PlatformAbstraction() {}
virtual ~PlatformAbstraction() {}
- * 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] 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
/**
* Tell the platform abstraction that Dali is ready to pause, such as when the