mThreadingMode( ThreadingMode::COMBINED_UPDATE_RENDER ),
mRenderRefreshRate( 1 ),
mGlesCallAccumulate( false ),
+ mMultiSamplingLevel( 0 ),
mLogFunction( NULL )
{
ParseEnvironmentOptions();
return mRenderRefreshRate;
}
+unsigned int EnvironmentOptions::GetMultiSamplingLevel() const
+{
+ return mMultiSamplingLevel;
+}
+
bool EnvironmentOptions::PerformanceServerRequired() const
{
return ( ( GetPerformanceStatsLoggingOptions() > 0) ||
mRenderRefreshRate = renderRefreshRate;
}
}
+
+ int multiSamplingLevel( 0 );
+ if( GetIntegerEnvironmentVariable( DALI_ENV_MULTI_SAMPLING_LEVEL, multiSamplingLevel ) )
+ {
+ if( multiSamplingLevel > 0 )
+ {
+ mMultiSamplingLevel = multiSamplingLevel;
+ }
+ }
}
} // Adaptor
*/
unsigned int GetRenderRefreshRate() const;
+ /**
+ * @return The number of samples required in multisample buffers
+ */
+ unsigned int GetMultiSamplingLevel() const;
+
private: // Internal
/**
ThreadingMode::Type mThreadingMode; ///< threading mode
unsigned int mRenderRefreshRate; ///< render refresh rate
bool mGlesCallAccumulate; ///< Whether or not to accumulate gles call statistics
+ unsigned int mMultiSamplingLevel; ///< The number of samples required in multisample buffers
Dali::Integration::Log::LogFunction mLogFunction;
#define DALI_REFRESH_RATE "DALI_REFRESH_RATE"
+#define DALI_ENV_MULTI_SAMPLING_LEVEL "DALI_MULTI_SAMPLING_LEVEL"
+
} // namespace Adaptor
} // namespace Internal
mGLES = new GlImplementation();
}
- mEglFactory = new EglFactory();
+ mEglFactory = new EglFactory( mEnvironmentOptions->GetMultiSamplingLevel() );
EglSyncImplementation* eglSyncImpl = mEglFactory->GetSyncImplementation();
namespace Adaptor
{
-EglFactory::EglFactory()
+EglFactory::EglFactory( unsigned int multiSamplingLevel )
: mEglImplementation(NULL),
mEglImageExtensions(NULL),
- mEglSync(new EglSyncImplementation) // Created early, as needed by Core constructor
+ mEglSync(new EglSyncImplementation), // Created early, as needed by Core constructor
+ mMultiSamplingLevel( 4 )
{
+ if( multiSamplingLevel > 0 )
+ {
+ mMultiSamplingLevel = multiSamplingLevel;
+ }
}
EglFactory::~EglFactory()
EglInterface* EglFactory::Create()
{
// Created by RenderThread (After Core construction)
- mEglImplementation = new EglImplementation();
- mEglImageExtensions = new EglImageExtensions(mEglImplementation);
+ mEglImplementation = new EglImplementation( mMultiSamplingLevel );
+ mEglImageExtensions = new EglImageExtensions( mEglImplementation );
mEglSync->Initialize(mEglImplementation); // The sync impl needs the EglDisplay
return mEglImplementation;
/**
* Constructor
*/
- EglFactory();
+ EglFactory( unsigned int multiSamplingLevel );
/**
* Destructor
EglImplementation* mEglImplementation;
EglImageExtensions* mEglImageExtensions;
EglSyncImplementation* mEglSync;
+
+ unsigned int mMultiSamplingLevel;
};
}
} \
}
-EglImplementation::EglImplementation()
+EglImplementation::EglImplementation( unsigned int multiSamplingLevel )
: mEglNativeDisplay(0),
mEglNativeWindow(0),
mCurrentEglNativePixmap(0),
mIsOwnSurface(true),
mContextCurrent(false),
mIsWindow(true),
- mColorDepth(COLOR_DEPTH_24)
+ mColorDepth(COLOR_DEPTH_24),
+ mMultiSamplingLevel( multiSamplingLevel )
{
}
configAttribs.PushBack( 8 );
#ifndef DALI_PROFILE_UBUNTU
configAttribs.PushBack( EGL_SAMPLES );
- configAttribs.PushBack( 4 );
+ configAttribs.PushBack( mMultiSamplingLevel );
configAttribs.PushBack( EGL_SAMPLE_BUFFERS );
configAttribs.PushBack( 1 );
#endif // DALI_PROFILE_UBUNTU
public:
/**
* Constructor
+ * @param environmentOptions To check the envirionment options
*/
- EglImplementation();
+ EglImplementation( unsigned int multiSamplingLevel );
/**
* Destructor
bool mContextCurrent;
bool mIsWindow;
ColorDepth mColorDepth;
+
+ unsigned int mMultiSamplingLevel;
};
} // namespace Adaptor