Env EnvelopeComponent::getEnv() const
{
	if(handles.size() < 1) return Env(B(0.0, 0.0), B(0.0));
	if(handles.size() < 2) return Env(B(0.0, 0.0), B(handles.getUnchecked(0)->getValue()));
	
	EnvelopeHandleComponent* startHandle = handles.getUnchecked(0);
	double currentLevel = startHandle->getValue();
	double currentTime = startHandle->getTime();
	
	Buffer levels = Buffer::newClear(handles.size());
	Buffer times = Buffer::newClear(handles.size()-1);
	EnvCurveList curves = EnvCurveList(EnvCurve::Empty, handles.size()-1);
	
	levels.setSampleUnchecked(0, currentLevel);
	
	for(int i = 1; i < handles.size(); i++) 
	{
		EnvelopeHandleComponent* handle = handles.getUnchecked(i);
		
		currentLevel = handle->getValue();
		double time = handle->getTime();
		
		levels.setSampleUnchecked(i, currentLevel);
		times.setSampleUnchecked(i-1, time-currentTime);
		curves[i-1] = handle->getCurve();
		
		currentTime = time;
	}
	
	return Env(levels, times, curves, releaseNode, loopNode);
}
예제 #2
0
void UIManager::UpdateOfMenu()
{
	if (Env().isPushButton(Mouse::LEFT) == true && isSelectingMenu == false
		&& isHitMouseToBox(menuUI.Position(), menuUI.Size(), mousePosition) == true)
	{
		isSelectingMenu = true;
		isPausing = true;
	}

	if (isSelectingMenu == true)
	{
		if (Env().isPushButton(Mouse::LEFT) == true
			&& isHitMouseToBox(menuOfResetStageUI.Position(), menuOfResetStageUI.Size(), mousePosition) == true)
		{
			//battleBgm.stop();
			GameManager::ResetLists();
			//SceneManager::ChangeScene(Scene::GAME_MAIN);

		}

		else if (Env().isPushButton(Mouse::LEFT) == true
			&& isHitMouseToBox(menuOfBackSelectStageUI.Position(), menuOfBackSelectStageUI.Size(), mousePosition) == true)
		{
			//battleBgm.stop();
			GameManager::ResetLists();
			//SceneManager::ChangeScene(Scene::STAGE_SELECT);

		}
		else if (Env().isPushButton(Mouse::LEFT) == true
			&& isHitMouseToBox(menuOfReturnGameUI.Position(), menuOfReturnGameUI.Size(), mousePosition) == true)
			isSelectingMenu = false;
	}
}
예제 #3
0
파일: common.c 프로젝트: tari3x/csec-modex
void assume_string(const unsigned char * name)
{
  Env(name);
  SymN("ztpSafe", 1);
  Env(name);
  SymN("=", 2);
  Assume();
}
예제 #4
0
void UIManager::UpdateOfChangeUpdateSpeed()
{
	if (Env().isPushButton(Mouse::LEFT) == true && isChangeUpdateSpeed == false
	 && isHitMouseToBox(changeUpdateSpeedUI.Position(), changeUpdateSpeedUI.Size(), mousePosition) == true)
		isChangeUpdateSpeed = true;

	else if (Env().isPushButton(Mouse::LEFT) == true && isChangeUpdateSpeed == true
		  && isHitMouseToBox(changeUpdateSpeedUI.Position(), changeUpdateSpeedUI.Size(), mousePosition) == true)
		isChangeUpdateSpeed = false;
}
예제 #5
0
 ~CAlfControl2()
     {
     *iPtr = 0;
     
     // Remove possbile pointer observers
     if ( Env().DisplayCount() )
         {
         CHuiDisplay& disp = Env().PrimaryDisplay(); // assume one display
         disp.Roster().Observers(EHuiInputPointerDrag).RemoveIfFound(*this);
         disp.Roster().Observers(EHuiInputPointerLongTap).RemoveIfFound(*this);
         disp.Roster().Observers(EHuiInputPointerUnhandled).RemoveIfFound(*this);
         }
     }
예제 #6
0
void UIManager::Update()
{
	mousePosition = Env().mousePosition();

	if (canChangingPanel == false && isStartedChangePanelToMinNum == false)
	{
		if (isSelectingMenu == false)
		{
			playerCanAttackSizeAngle += 0.025f;

			UpdateOfMakingCharacter();

			UpdateOfTargetingEnemy();

			UpdateOfPausing();

			UpdateOfChangeUpdateSpeed();

			UpdateOfWaveEasing();

			UpdateOfSummonEffect();
		}

		UpdateOfMenu();
	}
    UpdateOfChangePanel();
}
예제 #7
0
파일: object.cpp 프로젝트: cesarvr/Ella
void Object<Broker>::CreateObject(JVMLoader env, std::string className, std::vector<BaseJavaValue *>& arguments) {
    
    jmethodID constructor;
    
    auto name = object.GetType();
    auto jni = Env();
    auto& findclazz = jni->functions->GetMethodID;
    
    auto member = Memoization(name, jni->functions->FindClass, jni, name.c_str());
    
    Utils::raiseNullError(member, "Class not found in: " + name);
    
    if(arguments.empty())
        constructor = Memoization(name, findclazz, jni, member,
                              CLASS_DEFAULT_CTS.c_str(), VOID_RETURN.c_str());
    else
        constructor = Memoization(name, findclazz, jni, member,
                              CLASS_DEFAULT_CTS.c_str(), Arguments::GetConstructorSignature(jni,arguments).c_str());
    
    
    auto javaValues = Arguments::GetValues(jni, arguments);
    auto tmp = Wrapper( jni->functions->NewObjectA, jni, member, constructor, (jvalue*)&javaValues[0] );
    
    object.Set(tmp);
    methodArray = broker.GetMethodsNative(object);
}
// ---------------------------------------------------------------------------
// Resolves current layout.
// ---------------------------------------------------------------------------
// 
CAlfExAnalogDialerControl::TLayoutMode CAlfExAnalogDialerControl::ResolveLayout(
                                            TInt& aShorterSide,
                                            TInt& aLongerSide) const
    {
    // Resolve whether application is now running in portrait or landscape mode
    // Function must also return the shorter extent of the application 
    // to be used as side length of the square of dialer plate.
    // Longer side is returned also to be used in grid weights.
    TLayoutMode layoutMode = ELayoutAnalogDialerPortrait;
    TRect displayRect = Env().PrimaryDisplay().VisibleArea();
    TInt height = displayRect.Height();
    TInt width = displayRect.Width();
    if (width > height)
        {
        layoutMode = ELayoutAnalogDialerLandscape;
        aShorterSide = height;
        aLongerSide = width;
        }
    else
        {
        // default mode is OK
        aShorterSide = width;
        aLongerSide = height;
        }
    return layoutMode;
    }
예제 #9
0
void CCmdCifTest::DoRunL()
	{
	if (iCmd)
		{
		CCommandInfoFile* cif = CCommandInfoFile::NewL(FsL(), Env(), *iCmd);
		TestCifL(cif); // Takes ownership
		}
	else
		{
		_LIT(KCifDir, "y:\\resource\\cif\\fshell\\");
		TFindFile find(FsL());
		CDir* dir = NULL;
		TInt found = find.FindWildByDir(_L("*.cif"), KCifDir, dir);
		while (found == KErrNone)
			{
			for (TInt i = 0; i < dir->Count(); i++)
				{
				iFileName.Copy(TParsePtrC(find.File()).DriveAndPath()); // The docs for TFindFile state you shouldn't need the extra TParsePtrC::DriveAndPath(). Sigh.
				iFileName.Append((*dir)[i].iName);
				iCifFiles.AppendL(iFileName.AllocLC());
				CleanupStack::Pop();
				}
			delete dir;
			dir = NULL;
			found = find.FindWild(dir);
			}
		NextCif();
		}
	}
예제 #10
0
void CCmdCifTest::TestCifL(CCommandInfoFile* aCif)
	{
	iCurrentCif = aCif;
	if (iVerbose) Printf(_L("Checking %S\r\n"), &aCif->CifFileName());

	const TDesC& scriptData = aCif->SmokeTest();
	if (scriptData.Length() == 0)
		{
		if (iVerbose) Printf(_L("Cif has no smoketest section\r\n"));
		TestCompleted(KErrNone);
		return;
		}

	iEnvForScript = CEnvironment::NewL(Env());
	iEnvForScript->SetL(_L("Error"), _L("fshell -e 'echo \"Test failed, env is:\" && env && error'"));
	iEnvForScript->SetL(_L("Quiet"), _L(">/dev/null"));
	iEnvForScript->SetL(_L("Silent"), _L("2>&1 >/dev/null"));
	iEnvForScript->Remove(_L("Verbose")); // In case it's ended up in our parent env
	if (iVerbose) iEnvForScript->SetL(_L("Verbose"), 1);
	iFileName.Copy(aCif->CifFileName());
	iFileName.Append(_L(":smoke-test"));
	TParsePtrC parse(iFileName);
	iEnvForScript->SetL(KScriptName, parse.NameAndExt());
	iEnvForScript->SetL(KScriptPath, parse.DriveAndPath());
	iEnvForScript->SetL(_L("0"), iFileName);

	iParser = CParser::NewL(CParser::EExportLineNumbers, scriptData, IoSession(), Stdin(), Stdout(), Stderr(), *iEnvForScript, gShell->CommandFactory(), this, aCif->GetSmokeTestStartingLineNumber());
	iParser->Start();
	}
예제 #11
0
파일: parse.c 프로젝트: shintoo/Saturn
/* Create an argument for a variable */
Arg * CreateVarArg(char *token) {
    DEBUG_PARS("Creating variable argument for \"%s\"\n", token);
    Arg *ret;
    int len = strlen(token);

    /* Check for illegal characters */
    for (int i = 0; i < len; i++) {
        if (!isalnum(token[i]) && token[i] != '_') {
            ABORT("Illegal character in variable name: %s", token);
        }
    }

    ret = malloc(sizeof(Arg));

    DEBUG_PARS("Searching environment for \"%s\"\n", token);
    if ((ret->var = Env(token)) != NULL) {
        DEBUG_PARS("Found %s in environment\n", ret->var->label);
        ret->isliteral = false;
        ret->token = token;
        return ret;
    }
    DEBUG_PARS(" \"%s\" not found in environment\n", token);

    ret->isliteral = false;
    ret->token = token;
    return ret;
}
예제 #12
0
void CMonitorControl::UpdateFrameRateTextL( TReal32 aFrameRate )
    {
    CHuiTextVisual* textVisual = static_cast<CHuiTextVisual*>(FindTag( KFrameRateTag ) );
        
    TBuf<32> buffer;
    buffer.AppendNum(aFrameRate,  TRealFormat( 4, 1 ) );
    buffer.Append( _L(" fps") );
    textVisual->SetTextL( buffer );
    
    // make sure we are on top
    if ( Env().DisplayCount() )
        {
        CHuiDisplay& display = Env().PrimaryDisplay();
        display.Roster().ShowL( *ControlGroup() );
        }
    }
예제 #13
0
int main(int argc, char* argv[]) {
  TEnv Env(argc, argv);
  TStr PrefixPath = Env.GetArgs() > 1 ? Env.GetArg(1) : TStr("");
  test_ints();
  test_strs();
  return 0;
}
예제 #14
0
int main() 
{
	Env();

	SceneManager sceneManager;

  while (Env().isOpen()) 
  {
	Env().begin();

	sceneManager.Update();

	sceneManager.Draw();

	Env().end();
  }
}
예제 #15
0
파일: common.c 프로젝트: tari3x/csec-modex
void readenvL(const unsigned char * buf, size_t len, const char * name)
{
  Env(name);
  assume_intype("bitstring");
  assume_len(&len, false, sizeof(len));

  StoreBuf(buf);
}
void CAlfPerfAppSuiteTestCaseControl::CompleteAfterL( TInt aDuration )
    {
    // In order to use this service, base class StartExecuteL must
    // have been called.
    __ASSERT_ALWAYS( iStatus, User::Invariant() );
    
    TAlfCustomEventCommand command( KAlfPerfAppSuiteCmdCompleteNow, this );
    User::LeaveIfError( Env().Send( command, aDuration ) );
    }
예제 #17
0
void UIManager::UpdateOfPausing()
{


	if (Env().isPushButton(Mouse::LEFT) == true
		&& isHitMouseToBox(pausingUI.Position(), pausingUI.Size(), mousePosition) == true)
	{
		if (isPausing == true && isSelectingMenu == false)
		{
			isPausing = false;
			Env().flushInput();
		}
		else if (isPausing == false)
		{
			isPausing = true;
			Env().flushInput();
		}
	}
}
// ---------------------------------------------------------------------------
// ~CAlfExAnalogDialerControl
// ---------------------------------------------------------------------------
//
CAlfExAnalogDialerControl::~CAlfExAnalogDialerControl()
    {
    // Remove observer is still there
    if (iFlags & EAnalogDialerControlFlagLongTapRegistered)
        {
        Display()->Roster().RemovePointerEventObserver(EAlfPointerEventReportLongTap, *this);
        }
    Env().CancelCommands(this);
    delete iFeedback;
    }
예제 #19
0
TBool CMonitorControl::OfferEventL(const THuiEvent& aEvent)
    {
    TBool handled = EFalse;
    if (aEvent.IsCustomEvent() && aEvent.iParam == EUpdateFrameRate )
        {
        UpdateFrameRateTextL( CHuiStatic::FrameRate() );
        
        THuiCustomEventCommand command( EUpdateFrameRate, static_cast<MHuiEventHandler*>(this) );
        Env().Send( command, iServerSession.iFpsUpdatePeriod );        
        
        handled = ETrue;
        }
    else if ( aEvent.IsCustomEvent() && aEvent.iParam == EUpdateServerHeap )
        {
        CHuiTextVisual* textVisual = static_cast<CHuiTextVisual*>(FindTag( KHeapTag ) );
        
        User::Heap().Compress();
        
        TInt totalSize = 0;
        TInt usedSize = User::AllocSize( totalSize );
        TBuf<32> buffer;
        buffer.AppendNum( usedSize );
        buffer.Append( _L(" cells\n") );
        buffer.AppendNum( totalSize );
        buffer.Append( _L("B") );

        textVisual->SetTextL( buffer );
        
        THuiCustomEventCommand command( EUpdateServerHeap, static_cast<MHuiEventHandler*>(this) );
        Env().Send( command, iServerSession.iServerHeapUpdatePeriod );
        
        // make sure we are on top
        if ( Env().DisplayCount() )
            {
            CHuiDisplay& display = Env().PrimaryDisplay();
            display.Roster().ShowL( *ControlGroup() );
            }
            
        handled = ETrue;
        }
        
    return handled;
    }
CWsRenderStage* CTestRenderStageFactory::CreateRenderStageL(MWsScreen*aScreen, MWsScreenRedraw* aScreenRedraw, CWsRenderStage* aNextStage)
	{
	CTestRenderStage* stage = CTestRenderStage::NewL(&Env(), aScreen, aScreenRedraw, aNextStage);
	CleanupStack::PushL(stage);
	CLogFile* log = CLogFile::NewL();
	CleanupStack::PushL(log);
	log->WriteToLogL(_L("TestRenderStage is created."));
	CleanupStack::PopAndDestroy(log);
	CleanupStack::Pop(stage);
	return stage;
	}
예제 #21
0
void CWsGraphicDrawerCoverage::SendInfo()
	{
	TPckgBuf<TGdCoverageInfo> buf;
	MWsScreen* scr = Env().Screen(iScreenId);
	if (scr)
		{
		buf().iSignature = KGdCoverageInfoSig;
		buf().iNumTests = 1;
		}
	TInt err = SendMessage(buf);
	__ASSERT_ALWAYS(err>=KErrNone, User::Invariant());
	}
void CAlfPerfAppAvkonTestCaseBasic::NextCycleL()
    {
    TAlfCustomEventCommand command( KAlfPerfAppAvkonCmdNext, this );
    User::LeaveIfError( Env().Send( command, KCycleDurationMs ) );
    
    iCycleCounter++;
   
    iAnimTimer->Cancel();
    iAnimTimer->Start(KAnimSleepTimeUs, KAnimSleepTimeUs, TCallBack(AnimTimerCbL, this));
    iAnimFrameNum = 0;
    iCycleStartTime.UniversalTime();
    }
예제 #23
0
void UIManager::UpdateOfTargetingEnemy()
{
	for (auto& enemy = GameManager::enemys.begin(); enemy != GameManager::enemys.end(); ++enemy)
	{
		if (Env().isPushButton(Mouse::LEFT) && GameManager::enemys.size() != 0 && enemy->CanMove() == true
			&& CollisionOfCircle(enemy->Position(), 40, mousePosition, 1) == true && isTargetingEnemy == false)
		{
			Env().flushInput();
			isTargetingEnemy = true;
			nowTargetingEnemyId = enemy->Id();
		}

		if (isTargetingEnemy == true)
		{
			if (Env().isPushButton(Mouse::LEFT))
			{
				if (nowTargetingEnemyId == enemy->Id()
					&& CollisionOfCircle(enemy->Position(), 40, mousePosition, 1) == true)
				{
					isTargetingEnemy = false;
					Env().flushInput();
				}
				else if (nowTargetingEnemyId != enemy->Id() && enemy->CanMove() == true
					&& CollisionOfCircle(enemy->Position(), 40, mousePosition, 1) == true)
				{
					nowTargetingEnemyId = enemy->Id();
					Env().flushInput();
				}
			}
		}
		if (isTargetingEnemy == true && nowTargetingEnemyId == enemy->Id())
		{
			targetingEnemyPosition = enemy->Position();
			if (enemy->Active() == false)
			{
				isTargetingEnemy = false;
			}
		}
	}
}
예제 #24
0
// --------------------------------------------------------------------------
// CAlfCrpPlugin::DoHandleMessageL
// --------------------------------------------------------------------------
//    
void CAlfCrpPlugin::DoHandleMessageL( const TDesC8& aData )
    {  
    RDesReadStream in( aData );
    switch( in.ReadInt32L() )
        {
        case KAlfCrpSynchronize:
            {
            MAlfSynchronizationInterface* synchronizer = NULL;            
            if ( Env().ScreenCount() )
                {
                MWsScreen* screen = Env().Screen(0);
                if ( screen )
                    {
                    synchronizer = 
                        (MAlfSynchronizationInterface*)screen->ResolveObjectInterface(
                            KAlfSynchronizationInterfaceUid);
                    }
                }
            
            if ( synchronizer )
                {
                _LIT_SECURITY_POLICY_S0(KAlfSynchronizerPolicy, 0x10003B20);
                RProperty::Define( KAlfPSUidSynchronizer, KAlfPSKeySynchronizer, RProperty::EInt, KAlfSynchronizerPolicy, KAlfSynchronizerPolicy );
                RProperty::Set( KAlfPSUidSynchronizer, KAlfPSKeySynchronizer, 0 );
                    
                CAlfSynchronizer* synch = CAlfSynchronizer::NewL();
                CleanupStack::PushL( synch );
                TInt syncId = 0;
                synchronizer->Synchronize(syncId);
                synch->Start( syncId );
                            
                CleanupStack::PopAndDestroy( synch );
                }
            }
            break;
        default:
            break;
        }
    }
void CAlfPerfAppAvkonTestCaseBasic::SetVisibleArea( 
        const TRect& /*aVisibleArea*/ )
    {
    if ( IsExecutionOngoing() )
        {
        Env().CancelCustomCommands( this, KAlfPerfAppAvkonCmdNext );
        TRAPD( err, NextCycleL() );
        if ( err != KErrNone )
            {
            CompleteNow( err );
            }
        }
    }
// ---------------------------------------------------------------------------
// Adds content into dialer pane of the application
// ---------------------------------------------------------------------------
//
void CAlfExAnalogDialerControl::AddDialerL()
    {
    // Dialer consists of three images on top of each other. Deck is needed to manage them
    // Parent layout is grid
    CAlfDeckLayout* dialerDeck = CAlfDeckLayout::AddNewL(*this, iRootLayout);
    dialerDeck->SetTagL(_L8(KTagArray[ETagAnalogDialerPlateDeck]));
        
	// Load images:    
    // 1) Image with the numbers
    CAlfTexture& numbersTexture = Env().TextureManager().LoadTextureL( KImageAnalogDialerNumbers, 
                                                                        EAlfTextureFlagDefault, 
                                                                        KAlfAutoGeneratedTextureId);

    // Parent layout is deck
	CAlfImageVisual* numbers  = CAlfImageVisual::AddNewL(*this,dialerDeck); 
    // Default scale mode CAlfImageVisual::EScaleFit is OK
	// attach texture to image visual
	numbers->SetImage(TAlfImage(numbersTexture));
	
	// 2) plate with holes
	CAlfTexture& plateTexture = Env().TextureManager().LoadTextureL(  KImageAnalogDialerPlate, 
	                                                            EAlfTextureFlagDefault, 
	                                                            KAlfAutoGeneratedTextureId);
    // Parent layout is deck
	iPlate = CAlfImageVisual::AddNewL(*this,dialerDeck); 
    // Default scale mode CAlfImageVisual::EScaleFit is OK
	iPlate->SetImage(TAlfImage(plateTexture));

	// 2) stopper
	CAlfTexture& stopper = Env().TextureManager().LoadTextureL( KImageAnalogDialerStopper, 
	                                                            EAlfTextureFlagDefault, 
	                                                            KAlfAutoGeneratedTextureId);
    // Parent layout is deck
	iStopper  = CAlfImageVisual::AddNewL(*this,dialerDeck); 
    // Default scale mode CAlfImageVisual::EScaleFit is OK
	iStopper->SetImage(TAlfImage(stopper));
    
    }
CAlfTexture& CAlfExStickersControl::CreateSVGTextureL(const TFileName& aFileName, 
        TSize& aSize, CAlfImageLoaderUtil* aImageLoaderUtil)
    {
    //Set size of the SVG image. Must be called before creating image loader.
    aImageLoaderUtil->SetSize(aSize, EAspectRatioNotPreserved);
    
    //Use image loader util to create SVG image loader. 
    MAlfBitmapProvider* provider = aImageLoaderUtil->CreateSVGImageLoaderL(aFileName);
            
    //Use texture manager to create the texture with given bitmap provider.
    return Env().TextureManager().CreateTextureL(KAlfAutoGeneratedTextureId, 
            provider, EAlfTextureFlagDefault);

    }
예제 #28
0
파일: UGenPlugin.cpp 프로젝트: 0x4d52/ugen
UGen UGenPlugin::getConv()
{
    const ScopedLock sl (backgroundLock);
    
    Env pause = Env(Buffer(0.0, 0.0, 1.0, 0.0),
                    Buffer(0.5, 0.1, 0.0),
                    EnvCurve::Linear, 2);
    
    bufferLock.enter();
    Buffer irBufferCopy = irBuffer;
    bufferLock.exit();
    
    return ZeroLatencyConvolve::AR(inputUGen, irBufferCopy) * 0.005 * EnvGen::AR(pause);
}
void CAlfExStickersControl::SetTextureManagerL()
	{
	//First create path to our textures
    User::LeaveIfError( iFs->CreatePrivatePath(EDriveC));
	TChar driveChar;
    iFs->DriveToChar( EDriveC,driveChar);
    TDriveName driveName;
    driveName.Append(driveChar);
    driveName.Append(KDriveDelimiter);
       
    iFs->PrivatePath(iPrivateFolderPath);
    iPrivateFolderPath.Insert(0,driveName);

    //Set texture manager path
    Env().TextureManager().SetImagePathL(iPrivateFolderPath);
	}
// ---------------------------------------------------------------------------
// SwitchLayoutL
// ---------------------------------------------------------------------------
//
void CAlfExAnalogDialerControl::SwitchLayoutL()
    {
    // Get access to first leafs (visuals) of grid layout
    CAlfVisual* displayDeck = FindTag(_L8( KTagArray[ETagAnalogDialerDisplayDeck]));
    CAlfVisual* dialerDeck = FindTag(_L8( KTagArray[ETagAnalogDialerPlateDeck]));
    
    if (displayDeck && dialerDeck)
        {
        // remove visuals from grid layout
        iRootLayout->Remove(displayDeck);
        iRootLayout->Remove(dialerDeck);
 
        // resolve new layout
        iLayoutMode = ResolveLayout(iSquareSide,
                                    iLongerSide);
        
        // modify grid layout
        AddGridLayoutL();
        
        // put visuals back to layout
        if (iLayoutMode == ELayoutAnalogDialerPortrait)
            {
            User::LeaveIfError(iRootLayout->Append(displayDeck));
            User::LeaveIfError(iRootLayout->Append(dialerDeck));
            }
        else
            {
            User::LeaveIfError(iRootLayout->Append(dialerDeck));
            User::LeaveIfError(iRootLayout->Append(displayDeck));
            }
            
        // Notify Alf about layout change
        Env().NotifyLayoutChangedL();
        }
    // else - better not to do anything

    iFeedback->Start();

    // expose new root layout
    /*TAlfTimedValue opacity(0.0f);
    opacity.SetTarget(255, 500);
    iRootLayout->SetOpacity(opacity);   */

    }