/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 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.
#include <cstdlib>
#include <sstream>
#include <iomanip>
+#include <ctime>
// INTERNAL INCLUDES
#include <dali/public-api/common/constants.h>
namespace Dali
{
+#ifdef DEBUG_ENABLED
+
+// Fake globals for gdb typedefs
+Dali::DebugPropertyValueArray gValueArray;
+Dali::DebugPropertyValueMap gValueMap;
+
+#endif
+
+
namespace // unnamed namespace
{
+const uint64_t NANOSECONDS_PER_SECOND = 1e+9;
+
/**
* Generic function to print out any 2-Dimensional array
* @param[in] data pointer to the source data stored as float[rows][cols]
namespace Log
{
-__thread LogFunction gthreadLocalLogFunction = NULL;
+thread_local LogFunction gthreadLocalLogFunction = NULL;
/* Forward declarations */
std::string FormatToString(const char *format, ...);
Filter* Filter::gElement = NULL;
Filter* Filter::gActor = Filter::New(Debug::Concise, false, "LOG_ACTOR");
Filter* Filter::gShader = Filter::New(Debug::Concise, false, "LOG_SHADER");
-Filter* Filter::gDynamics = Filter::New(Debug::Concise, false, "LOG_DYNAMICS");
Filter::FilterList* Filter::GetActiveFilters()
{
va_list arg;
va_start(arg, format);
- char *buffer = NULL;
- int numChars = asprintf(&buffer, "%-*c %s", mNesting, ':', format);
- if(numChars >= 0) // No error
+ if( mTraceEnabled )
{
- std::string message = ArgListToString(buffer, arg);
- LogMessage(DebugInfo, message.c_str());
- free(buffer);
+ char *buffer = NULL;
+ int numChars = asprintf( &buffer, " %-*c %s", mNesting, ':', format );
+ if( numChars >= 0 ) // No error
+ {
+ std::string message = ArgListToString( buffer, arg );
+ LogMessage( DebugInfo, message.c_str() );
+ free( buffer );
+ }
+ }
+ else
+ {
+ std::string message = ArgListToString( format, arg );
+ LogMessage( DebugInfo, message.c_str() );
}
va_end(arg);
}
std::ostringstream oss;
Vector3 axis;
- float angle;
+ Radian angle;
q.ToAxisAngle(axis, angle);
oss << std::setw(indent+3) << std::setfill(' ') << std::setprecision(precision) << std::right;
- oss << "<A:" << std::setw(precision+4) << angle * 180.0 / Math::PI << ", " << Vector3ToString(axis, precision, 0) << ">";
+ oss << "<A:" << std::setw(precision+4) << Degree( angle ).degree << ", " << Vector3ToString(axis, precision, 0) << ">";
return oss.str();
}
return Array2DToString(m.AsFloat(), 4, 4, precision, indent);
}
+void GetNanoseconds( uint64_t& timeInNanoseconds )
+{
+ timespec timeSpec;
+ clock_gettime( CLOCK_MONOTONIC, &timeSpec );
+
+ // Convert all values to uint64_t to match our return type
+ timeInNanoseconds = ( static_cast< uint64_t >( timeSpec.tv_sec ) * NANOSECONDS_PER_SECOND ) + static_cast< uint64_t >( timeSpec.tv_nsec );
+}
+
} // namespace Log
} // namespace Integration