Window& windowImpl = Dali::GetImplementation(window);
Dali::Adaptor* adaptor = New( winId, windowImpl.GetSurface(), configuration, environmentOptions );
-
- Internal::Adaptor::Adaptor::GetImplementation( *adaptor ).SetWindow( window );
windowImpl.SetAdaptor(*adaptor);
return adaptor;
}
mGLES = new GlImplementation();
}
- mEglFactory = new EglFactory( mEnvironmentOptions->GetMultiSamplingLevel() );
+ const Integration::DepthBufferAvailable depthBufferAvailable = static_cast< Integration::DepthBufferAvailable >( mEnvironmentOptions->DepthBufferRequired() );
+ const Integration::StencilBufferAvailable stencilBufferAvailable = static_cast< Integration::StencilBufferAvailable >( mEnvironmentOptions->StencilBufferRequired() );
+
+ mEglFactory = new EglFactory( mEnvironmentOptions->GetMultiSamplingLevel(), depthBufferAvailable, stencilBufferAvailable );
EglSyncImplementation* eglSyncImpl = mEglFactory->GetSyncImplementation();
- mCore = Integration::Core::New( *this, *mPlatformAbstraction, *mGLES, *eglSyncImpl, *mGestureManager, dataRetentionPolicy );
+ mCore = Integration::Core::New( *this,
+ *mPlatformAbstraction,
+ *mGLES,
+ *eglSyncImpl,
+ *mGestureManager,
+ dataRetentionPolicy ,
+ ( 0u != mEnvironmentOptions->GetRenderToFboInterval() ) ? Integration::RenderToFrameBuffer::TRUE : Integration::RenderToFrameBuffer::FALSE,
+ depthBufferAvailable,
+ stencilBufferAvailable );
const unsigned int timeInterval = mEnvironmentOptions->GetObjectProfilerInterval();
if( 0u < timeInterval )
{
Integration::SetPanGestureSmoothingAmount(mEnvironmentOptions->GetPanGestureSmoothingAmount());
}
+ if( mEnvironmentOptions->GetPanGestureUseActualTimes() >= 0 )
+ {
+ Integration::SetPanGestureUseActualTimes( mEnvironmentOptions->GetPanGestureUseActualTimes() == 0 ? true : false );
+ }
+ if( mEnvironmentOptions->GetPanGestureInterpolationTimeRange() >= 0 )
+ {
+ Integration::SetPanGestureInterpolationTimeRange( mEnvironmentOptions->GetPanGestureInterpolationTimeRange() );
+ }
+ if( mEnvironmentOptions->GetPanGestureScalarOnlyPredictionEnabled() >= 0 )
+ {
+ Integration::SetPanGestureScalarOnlyPredictionEnabled( mEnvironmentOptions->GetPanGestureScalarOnlyPredictionEnabled() == 0 ? true : false );
+ }
+ if( mEnvironmentOptions->GetPanGestureTwoPointPredictionEnabled() >= 0 )
+ {
+ Integration::SetPanGestureTwoPointPredictionEnabled( mEnvironmentOptions->GetPanGestureTwoPointPredictionEnabled() == 0 ? true : false );
+ }
+ if( mEnvironmentOptions->GetPanGestureTwoPointInterpolatePastTime() >= 0 )
+ {
+ Integration::SetPanGestureTwoPointInterpolatePastTime( mEnvironmentOptions->GetPanGestureTwoPointInterpolatePastTime() );
+ }
+ if( mEnvironmentOptions->GetPanGestureTwoPointVelocityBias() >= 0.0f )
+ {
+ Integration::SetPanGestureTwoPointVelocityBias( mEnvironmentOptions->GetPanGestureTwoPointVelocityBias() );
+ }
+ if( mEnvironmentOptions->GetPanGestureTwoPointAccelerationBias() >= 0.0f )
+ {
+ Integration::SetPanGestureTwoPointAccelerationBias( mEnvironmentOptions->GetPanGestureTwoPointAccelerationBias() );
+ }
+ if( mEnvironmentOptions->GetPanGestureMultitapSmoothingRange() >= 0 )
+ {
+ Integration::SetPanGestureMultitapSmoothingRange( mEnvironmentOptions->GetPanGestureMultitapSmoothingRange() );
+ }
// Set max texture size
if( mEnvironmentOptions->GetMaxTextureSize() > 0 )
// Initialize the thread controller
mThreadController->Initialize();
- mState = RUNNING;
-
ProcessCoreEvents(); // Ensure any startup messages are processed.
for ( ObserverContainer::iterator iter = mObservers.begin(), endIter = mObservers.end(); iter != endIter; ++iter )
// Dali::Internal::Adaptor::Adaptor::Pause
void Adaptor::Pause()
{
+ DALI_LOG_RELEASE_INFO( "Adaptor::Pause: mState [%d]\n", mState );
+
// Only pause the adaptor if we're actually running.
if( RUNNING == mState )
{
mThreadController->Pause();
mState = PAUSED;
- // Process remained events and rendering in the update thread
+ // Ensure any messages queued during pause callbacks are processed by doing another update.
RequestUpdateOnce();
}
}
// Dali::Internal::Adaptor::Adaptor::Resume
void Adaptor::Resume()
{
+ DALI_LOG_RELEASE_INFO( "Adaptor::Resume: mState [%d]\n", mState );
+
// Only resume the adaptor if we are in the suspended state.
if( PAUSED == mState )
{
bool idleAdded(false);
// Only add an idle if the Adaptor is actually running
- if( RUNNING == mState || forceAdd )
+ if( RUNNING == mState || READY == mState || forceAdd )
{
idleAdded = mCallbackManager->AddIdleCallback( callback );
}
{
// Only request a notification if the Adaptor is actually running
// and we haven't installed the idle notification
- if( ( ! mNotificationOnIdleInstalled ) && ( RUNNING == mState || forceProcess ) )
+ if( ( ! mNotificationOnIdleInstalled ) && ( RUNNING == mState || READY == mState || forceProcess ) )
{
mNotificationOnIdleInstalled = AddIdle( MakeCallback( this, &Adaptor::ProcessCoreEventsFromIdle ), forceProcess );
}
void Adaptor::OnWindowShown()
{
+ DALI_LOG_RELEASE_INFO( "Adaptor::OnWindowShown: mState [%d]\n", mState );
+
if ( PAUSED_WHILE_HIDDEN == mState )
{
// Adaptor can now be resumed
void Adaptor::OnWindowHidden()
{
- if ( STOPPED != mState )
+ DALI_LOG_RELEASE_INFO( "Adaptor::OnWindowHidden: mState [%d]\n", mState );
+
+ if ( RUNNING == mState )
{
Pause();
RequestUpdate( false );
}
+void Adaptor::SurfaceResizePrepare( SurfaceSize surfaceSize, int orientation )
+{
+ // let the core know the surface size and orientation has changed
+ mCore->SurfaceResized( surfaceSize.GetWidth(), surfaceSize.GetHeight(), orientation );
+
+ mResizedSignal.Emit( mAdaptor );
+}
+
void Adaptor::SurfaceResizePrepare( SurfaceSize surfaceSize )
{
// let the core know the surface size has changed
// to start processing messages for new camera setup etc as soon as possible
ProcessCoreEvents();
- // this method blocks until the render thread has completed the resizing.
mThreadController->ResizeSurface();
}
// process after surface is created (registering to remote surface provider if required)
SurfaceInitialized();
+
+ mState = RUNNING;
}
void Adaptor::NotifyLanguageChanged()
mTriggerEventFactory(),
mObjectProfiler( NULL ),
mSocketFactory(),
- mWindow(),
mEnvironmentOptionsOwned( environmentOptions ? false : true /* If not provided then we own the object */ ),
mUseRemoteSurface( false )
{
static_cast< LayoutDirection::Type >( Internal::Adaptor::Locale::GetDirection( std::string( locale ) ) ) );
}
-void Adaptor::SetWindow( Dali::Window window )
-{
- mWindow = window;
-}
-
-Dali::Window Adaptor::GetWindow()
-{
- return mWindow;
-}
-
} // namespace Adaptor
} // namespace Internal