return true;
}
+const char * GetCharEnvironmentVariable( const char * variable )
+{
+ return std::getenv( variable );
}
+
+} // unnamed namespace
+
EnvironmentOptions::EnvironmentOptions()
-: mNetworkControl(0),
+: mWindowName(),
+ mWindowClassName(),
+ mNetworkControl(0),
mFpsFrequency(0),
mUpdateStatusFrequency(0),
+ mObjectProfilerInterval( 0 ),
mPerformanceStatsLevel(0),
- mPerformanceStatsFrequency( DEFAULT_STATISTICS_LOG_FREQUENCY),
+ mPerformanceStatsFrequency( DEFAULT_STATISTICS_LOG_FREQUENCY ),
mPerformanceTimeStampOutput(0),
mPanGestureLoggingLevel(0),
mPanGesturePredictionMode(-1),
mPanGestureSmoothingAmount(-1.0f),
mPanMinimumDistance(-1),
mPanMinimumEvents(-1),
- mGlesCallTime(0),
+ mGlesCallTime( 0 ),
mWindowWidth( 0 ),
- mWindowHeight( 0 )
+ mWindowHeight( 0 ),
+ mThreadingMode( ThreadingMode::COMBINED_UPDATE_RENDER ),
+ mRenderRefreshRate( 1 ),
+ mGlesCallAccumulate( false ),
+ mMultiSamplingLevel( 0 ),
+ mLogFunction( NULL )
{
ParseEnvironmentOptions();
}
return mUpdateStatusFrequency;
}
+unsigned int EnvironmentOptions::GetObjectProfilerInterval() const
+{
+ return mObjectProfilerInterval;
+}
+
unsigned int EnvironmentOptions::GetPerformanceStatsLoggingOptions() const
{
return mPerformanceStatsLevel;
return mWindowHeight;
}
-void EnvironmentOptions::SetPanGesturePredictionMode( unsigned int mode )
-{
- mPanGesturePredictionMode = mode;
-}
-
-void EnvironmentOptions::SetPanGesturePredictionAmount( unsigned int amount )
-{
- mPanGesturePredictionAmount = amount;
-}
-
-void EnvironmentOptions::SetPanGestureMaximumPredictionAmount( unsigned int amount )
-{
- mPanGestureMaxPredictionAmount = amount;
-}
-
-void EnvironmentOptions::SetPanGestureMinimumPredictionAmount( unsigned int amount )
-{
- mPanGestureMinPredictionAmount = amount;
-}
-
-void EnvironmentOptions::SetPanGesturePredictionAmountAdjustment( unsigned int amount )
-{
- mPanGesturePredictionAmountAdjustment = amount;
-}
-
-void EnvironmentOptions::SetPanGestureSmoothingMode( unsigned int mode )
+int EnvironmentOptions::GetGlesCallTime() const
{
- mPanGestureSmoothingMode = mode;
+ return mGlesCallTime;
}
-void EnvironmentOptions::SetPanGestureSmoothingAmount( float amount )
+bool EnvironmentOptions::GetGlesCallAccumulate() const
{
- mPanGestureSmoothingAmount = amount;
+ return mGlesCallAccumulate;
}
-void EnvironmentOptions::SetMinimumPanDistance( int distance )
+const std::string& EnvironmentOptions::GetWindowName() const
{
- mPanMinimumDistance = distance;
+ return mWindowName;
}
-void EnvironmentOptions::SetMinimumPanEvents( int events )
+const std::string& EnvironmentOptions::GetWindowClassName() const
{
- mPanMinimumEvents = events;
+ return mWindowClassName;
}
-void EnvironmentOptions::SetGlesCallTime( int time )
+ThreadingMode::Type EnvironmentOptions::GetThreadingMode() const
{
- mGlesCallTime = time;
+ return mThreadingMode;
}
-int EnvironmentOptions::GetGlesCallTime() const
+unsigned int EnvironmentOptions::GetRenderRefreshRate() const
{
- return mGlesCallTime;
+ return mRenderRefreshRate;
}
-void EnvironmentOptions::SetWindowWidth( int width )
+unsigned int EnvironmentOptions::GetMultiSamplingLevel() const
{
- mWindowWidth = width;
-}
-
-void EnvironmentOptions::SetWindowHeight( int height )
-{
- mWindowHeight = height;
+ return mMultiSamplingLevel;
}
bool EnvironmentOptions::PerformanceServerRequired() const
{
- return ( (GetPerformanceStatsLoggingOptions() > 0) ||
+ return ( ( GetPerformanceStatsLoggingOptions() > 0) ||
( GetPerformanceTimeStampOutput() > 0 ) ||
( GetNetworkControlMode() > 0) );
}
// get logging options
mFpsFrequency = GetIntegerEnvironmentVariable( DALI_ENV_FPS_TRACKING, 0 );
mUpdateStatusFrequency = GetIntegerEnvironmentVariable( DALI_ENV_UPDATE_STATUS_INTERVAL, 0 );
+ mObjectProfilerInterval = GetIntegerEnvironmentVariable( DALI_ENV_OBJECT_PROFILER_INTERVAL, 0 );
mPerformanceStatsLevel = GetIntegerEnvironmentVariable( DALI_ENV_LOG_PERFORMANCE_STATS, 0 );
mPerformanceStatsFrequency = GetIntegerEnvironmentVariable( DALI_ENV_LOG_PERFORMANCE_STATS_FREQUENCY, 0 );
mPerformanceTimeStampOutput = GetIntegerEnvironmentVariable( DALI_ENV_PERFORMANCE_TIMESTAMP_OUTPUT, 0 );
int predictionMode;
if( GetIntegerEnvironmentVariable(DALI_ENV_PAN_PREDICTION_MODE, predictionMode) )
{
- SetPanGesturePredictionMode(predictionMode);
+ mPanGesturePredictionMode = predictionMode;
}
int predictionAmount(-1);
if( GetIntegerEnvironmentVariable(DALI_ENV_PAN_PREDICTION_AMOUNT, predictionAmount) )
// do not support times in the past
predictionAmount = 0;
}
- SetPanGesturePredictionAmount(predictionAmount);
+ mPanGesturePredictionAmount = predictionAmount;
}
int minPredictionAmount(-1);
if( GetIntegerEnvironmentVariable(DALI_ENV_PAN_MIN_PREDICTION_AMOUNT, minPredictionAmount) )
// do not support times in the past
minPredictionAmount = 0;
}
- SetPanGestureMinimumPredictionAmount(minPredictionAmount);
+ mPanGestureMinPredictionAmount = minPredictionAmount;
}
int maxPredictionAmount(-1);
if( GetIntegerEnvironmentVariable(DALI_ENV_PAN_MAX_PREDICTION_AMOUNT, maxPredictionAmount) )
// maximum amount should not be smaller than minimum amount
maxPredictionAmount = minPredictionAmount;
}
- SetPanGestureMaximumPredictionAmount(maxPredictionAmount);
+ mPanGestureMaxPredictionAmount = maxPredictionAmount;
}
int predictionAmountAdjustment(-1);
if( GetIntegerEnvironmentVariable(DALI_ENV_PAN_PREDICTION_AMOUNT_ADJUSTMENT, predictionAmountAdjustment) )
// negative amount doesn't make sense
predictionAmountAdjustment = 0;
}
- SetPanGesturePredictionAmountAdjustment(predictionAmountAdjustment);
+ mPanGesturePredictionAmountAdjustment = predictionAmountAdjustment;
}
int smoothingMode;
if( GetIntegerEnvironmentVariable(DALI_ENV_PAN_SMOOTHING_MODE, smoothingMode) )
{
- SetPanGestureSmoothingMode(smoothingMode);
+ mPanGestureSmoothingMode = smoothingMode;
}
float smoothingAmount = 1.0f;
if( GetFloatEnvironmentVariable(DALI_ENV_PAN_SMOOTHING_AMOUNT, smoothingAmount) )
{
smoothingAmount = Clamp(smoothingAmount, 0.0f, 1.0f);
- SetPanGestureSmoothingAmount(smoothingAmount);
+ mPanGestureSmoothingAmount = smoothingAmount;
}
int minimumDistance(-1);
if ( GetIntegerEnvironmentVariable(DALI_ENV_PAN_MINIMUM_DISTANCE, minimumDistance ))
{
- SetMinimumPanDistance( minimumDistance );
+ mPanMinimumDistance = minimumDistance;
}
int minimumEvents(-1);
if ( GetIntegerEnvironmentVariable(DALI_ENV_PAN_MINIMUM_EVENTS, minimumEvents ))
{
- SetMinimumPanEvents( minimumEvents );
+ mPanMinimumEvents = minimumEvents;
}
int glesCallTime(0);
if ( GetIntegerEnvironmentVariable(DALI_GLES_CALL_TIME, glesCallTime ))
{
- SetGlesCallTime( glesCallTime );
+ mGlesCallTime = glesCallTime;
+ }
+
+ int glesCallAccumulate( 0 );
+ if ( GetIntegerEnvironmentVariable( DALI_GLES_CALL_ACCUMULATE, glesCallAccumulate ) )
+ {
+ mGlesCallAccumulate = glesCallAccumulate != 0;
}
int windowWidth(0), windowHeight(0);
if ( GetIntegerEnvironmentVariable( DALI_WINDOW_WIDTH, windowWidth ) && GetIntegerEnvironmentVariable( DALI_WINDOW_HEIGHT, windowHeight ) )
{
- SetWindowWidth( windowWidth );
- SetWindowHeight( windowHeight );
+ mWindowWidth = windowWidth;
+ mWindowHeight = windowHeight;
}
+ const char * windowName = GetCharEnvironmentVariable( DALI_WINDOW_NAME );
+ if ( windowName )
+ {
+ mWindowName = windowName;
+ }
+
+ const char * windowClassName = GetCharEnvironmentVariable( DALI_WINDOW_CLASS_NAME );
+ if ( windowClassName )
+ {
+ mWindowClassName = windowClassName;
+ }
+
+ int threadingMode(0);
+ if ( GetIntegerEnvironmentVariable( DALI_THREADING_MODE, threadingMode ) )
+ {
+ switch( threadingMode )
+ {
+ case ThreadingMode::SEPARATE_UPDATE_RENDER:
+ case ThreadingMode::COMBINED_UPDATE_RENDER:
+ case ThreadingMode::SINGLE_THREADED:
+ {
+ mThreadingMode = static_cast< ThreadingMode::Type >( threadingMode );
+ break;
+ }
+ }
+ }
+
+ int renderRefreshRate(0);
+ if ( GetIntegerEnvironmentVariable( DALI_REFRESH_RATE, renderRefreshRate ) )
+ {
+ // Only change it if it's valid
+ if( renderRefreshRate > 1 )
+ {
+ mRenderRefreshRate = renderRefreshRate;
+ }
+ }
+
+ int multiSamplingLevel( 0 );
+ if( GetIntegerEnvironmentVariable( DALI_ENV_MULTI_SAMPLING_LEVEL, multiSamplingLevel ) )
+ {
+ if( multiSamplingLevel > 0 )
+ {
+ mMultiSamplingLevel = multiSamplingLevel;
+ }
+ }
}
} // Adaptor