本文整理汇总了C++中ToolkitTestApplication::GetGlAbstraction方法的典型用法代码示例。如果您正苦于以下问题:C++ ToolkitTestApplication::GetGlAbstraction方法的具体用法?C++ ToolkitTestApplication::GetGlAbstraction怎么用?C++ ToolkitTestApplication::GetGlAbstraction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ToolkitTestApplication
的用法示例。
在下文中一共展示了ToolkitTestApplication::GetGlAbstraction方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: UtcDaliRippleCustomValuesEffect
static void UtcDaliRippleCustomValuesEffect()
{
ToolkitTestApplication application;
Toolkit::RippleEffect effect = Toolkit::RippleEffect::New();
DALI_TEST_CHECK( effect );
BitmapImage image = CreateBitmapImage();
ImageActor actor = ImageActor::New( image );
actor.SetSize( 100.0f, 100.0f );
effect.SetAmplitude( 0.5f );
effect.SetCenter( Vector2( 10.0f, 10.0f ) );
effect.SetTime( 2.0f );
actor.SetShaderEffect( effect );
Stage::GetCurrent().Add( actor );
application.SendNotification();
application.Render();
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetAmplitudePropertyName().c_str(),
0.5f ) );
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetCenterPropertyName().c_str(),
Vector2( 10.0f, 10.0f ) ) );
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetTimePropertyName().c_str(),
2.0f ) );
}
示例2: UtcDaliSpotCustomValuesEffect
int UtcDaliSpotCustomValuesEffect(void)
{
ToolkitTestApplication application;
Toolkit::SpotEffect effect = Toolkit::SpotEffect::New();
DALI_TEST_CHECK( effect );
BitmapImage image = CreateBitmapImage();
ImageActor actor = ImageActor::New( image );
actor.SetSize( 100.0f, 100.0f );
effect.SetCenter( Vector2(480.0f, 800.0f) );
effect.SetRadius( 5.0f );
actor.SetShaderEffect( effect );
Stage::GetCurrent().Add( actor );
application.SendNotification();
application.Render();
// Gets converted to opengl viewport coordinates
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetCenterPropertyName().c_str(),
Vector2(480.0f, 800.0f) ) );
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetRadiusPropertyName().c_str(),
5.0f ) );
END_TEST;
}
示例3: UtcDaliSwirlDefaultValuesEffect
static void UtcDaliSwirlDefaultValuesEffect()
{
ToolkitTestApplication application;
Toolkit::SwirlEffect effect = Toolkit::SwirlEffect::New(true);
DALI_TEST_CHECK( effect );
BitmapImage image = CreateBitmapImage();
ImageActor actor = ImageActor::New( image );
actor.SetSize( 100.0f, 100.0f );
actor.SetShaderEffect( effect );
Stage::GetCurrent().Add( actor );
application.SendNotification();
application.Render();
// Gets converted to opengl viewport coordinates
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetAnglePropertyName().c_str(),
0.0f ) );
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetCenterPropertyName().c_str(),
Vector2(0.5f, 0.5f) ) );
DALI_TEST_CHECK(
application.GetGlAbstraction().CheckUniformValue(
effect.GetRadiusPropertyName().c_str(),
1.0f ) );
}
示例4: UtcDaliShearEffectCustomValues
static void UtcDaliShearEffectCustomValues()
{
ToolkitTestApplication application;
Toolkit::ShearEffect effect = Toolkit::ShearEffect::New();
DALI_TEST_CHECK( effect );
BitmapImage image = CreateBitmapImage();
ImageActor actor = ImageActor::New( image );
actor.SetSize( 100.0f, 100.0f );
const float angleXAxis(10.0f);
const float angleYAxis(22.5f);
const Vector2 centerValue(50.0f, 100.0f);
effect.SetAngleXAxis( angleXAxis );
effect.SetAngleYAxis( angleYAxis );
effect.SetCenter( centerValue );
actor.SetShaderEffect(effect);
Stage::GetCurrent().Add(actor);
application.SendNotification();
application.Render();
TestGlAbstraction& gl = application.GetGlAbstraction();
DALI_TEST_CHECK( gl.CheckUniformValue( effect.GetAngleXAxisPropertyName().c_str(), angleXAxis ) );
DALI_TEST_CHECK( gl.CheckUniformValue( effect.GetAngleYAxisPropertyName().c_str(), angleYAxis ) );
DALI_TEST_CHECK( gl.CheckUniformValue( effect.GetCenterPropertyName().c_str(), ToScreenPosition(centerValue) ) );
}
示例5: utcDaliTextFieldAtlasRenderP
// Positive Atlas Text Renderer test
int utcDaliTextFieldAtlasRenderP(void)
{
ToolkitTestApplication application;
tet_infoline(" UtcDaliToolkitTextFieldAtlasRenderP");
StyleManager styleManager = StyleManager::Get();
styleManager.RequestDefaultTheme();
TextField field = TextField::New();
DALI_TEST_CHECK( field );
field.SetProperty( TextField::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
Stage::GetCurrent().Add( field );
try
{
// Render some text with the shared atlas backend
field.SetProperty( TextField::Property::RENDERING_BACKEND, Text::RENDERING_SHARED_ATLAS );
application.SendNotification();
application.Render();
}
catch( ... )
{
tet_result(TET_FAIL);
}
END_TEST;
}
示例6: UtcDaliBubbleEmitterSetBubbleScale
int UtcDaliBubbleEmitterSetBubbleScale(void)
{
ToolkitTestApplication application;
tet_infoline( " UtcDaliBubbleEmitterSetBubbleScale " );
Image shapeImage = CreateSolidColorImage( application, Color::GREEN, 5, 5 );
BubbleEmitter emitter = BubbleEmitter::New( Vector2(50.f,50.f),shapeImage, 150, Vector2( 5.f, 10.f ));
DALI_TEST_CHECK(emitter);
Actor root = emitter.GetRootActor();
Stage::GetCurrent().Add( root );
root.SetPosition( Vector3::ZERO );
root.SetParentOrigin( ParentOrigin::CENTER );
root.SetAnchorPoint( AnchorPoint::CENTER );
TestGlAbstraction& gl = application.GetGlAbstraction();
Wait(application);
float scaleValue;
DALI_TEST_CHECK( gl.GetUniformValue<float>( "uDynamicScale", scaleValue ) );
DALI_TEST_EQUALS( scaleValue, 1.f, TEST_LOCATION );
emitter.SetBubbleScale( 2.f );
Wait(application);
DALI_TEST_CHECK( gl.GetUniformValue<float>( "uDynamicScale", scaleValue ) );
DALI_TEST_EQUALS( scaleValue, 2.f, TEST_LOCATION );
emitter.SetBubbleScale( 0.5f );
Wait(application);
DALI_TEST_CHECK( gl.GetUniformValue<float>( "uDynamicScale", scaleValue ) );
DALI_TEST_EQUALS( scaleValue, 0.5f, TEST_LOCATION );
END_TEST;
}
示例7: UtcDaliIrisEffectCustomValues
static void UtcDaliIrisEffectCustomValues()
{
ToolkitTestApplication application;
Toolkit::IrisEffect effect = Toolkit::IrisEffect::New();
DALI_TEST_CHECK( effect );
BitmapImage image = CreateBitmapImage();
ImageActor actor = ImageActor::New( image );
actor.SetSize( 100.0f, 100.0f );
const float radiusValue(23.0f);
const Vector2 centerValue(0.2f, 0.7f);
const float blendFactorValue(10.0f);
effect.SetRadius( radiusValue );
effect.SetCenter( centerValue );
effect.SetBlendFactor( blendFactorValue );
actor.SetShaderEffect(effect);
Stage::GetCurrent().Add(actor);
application.SendNotification();
application.Render();
TestGlAbstraction& gl = application.GetGlAbstraction();
DALI_TEST_CHECK( gl.CheckUniformValue( effect.GetRadiusPropertyName().c_str(), radiusValue ) );
DALI_TEST_CHECK( gl.CheckUniformValue( effect.GetCenterPropertyName().c_str(), centerValue ) );
DALI_TEST_CHECK( gl.CheckUniformValue( effect.GetBlendFactorPropertyName().c_str(), blendFactorValue ) );
}
示例8: UtcDaliBubbleEmitterRestore
int UtcDaliBubbleEmitterRestore(void)
{
ToolkitTestApplication application;
tet_infoline( " UtcDaliBubbleEmitterRestore " );
Image shapeImage = CreateSolidColorImage( application, Color::GREEN, 5, 5 );
BubbleEmitter emitter = BubbleEmitter::New( Vector2(50.f,50.f),shapeImage, 90, Vector2( 5.f, 10.f ));
Actor root = emitter.GetRootActor();
Stage::GetCurrent().Add( root );
root.SetPosition( Vector3::ZERO );
root.SetParentOrigin( ParentOrigin::CENTER );
root.SetAnchorPoint( AnchorPoint::CENTER );
Actor bubbleMesh = root.GetChildAt( 0 );
Renderer renderer = bubbleMesh.GetRendererAt( 0 );
DALI_TEST_CHECK( renderer );
TestGlAbstraction& gl = application.GetGlAbstraction();
float percentageValue;
Vector4 startEndPosValue;
Animation animation = Animation::New( 0.5f );
emitter.EmitBubble( animation, Vector2(40.f,40.f), Vector2(-5.f,-5.f), Vector2(30.f,30.f) );
Wait(application);
DALI_TEST_CHECK( gl.GetUniformValue<float>( "uPercentage[0]", percentageValue ) );
DALI_TEST_EQUALS( percentageValue, 0.f, TEST_LOCATION );
DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uStartEndPosition[0]", startEndPosValue ) );
DALI_TEST_EQUALS( startEndPosValue.x, 40.f, TEST_LOCATION );
DALI_TEST_EQUALS( startEndPosValue.y, 40.f, TEST_LOCATION );
animation.Play();
Wait(application, 200);
animation.Clear();
DALI_TEST_CHECK( gl.GetUniformValue<float>( "uPercentage[0]", percentageValue ) );
DALI_TEST_CHECK( percentageValue < 0.5f && percentageValue >= 0.4);
DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uStartEndPosition[0]", startEndPosValue ) );
DALI_TEST_EQUALS( startEndPosValue.x, 40.f, TEST_LOCATION );
DALI_TEST_EQUALS( startEndPosValue.y, 40.f, TEST_LOCATION );
emitter.Restore();
application.SendNotification();
application.Render();
DALI_TEST_CHECK( gl.GetUniformValue<float>( "uPercentage[0]", percentageValue ) );
DALI_TEST_EQUALS( percentageValue, 0.f, TEST_LOCATION );
DALI_TEST_CHECK( gl.GetUniformValue<Vector4>( "uStartEndPosition[0]", startEndPosValue ) );
DALI_TEST_EQUALS( startEndPosValue, Vector4::ZERO, TEST_LOCATION );
END_TEST;
}
示例9: utcDaliTextFieldEvent03
int utcDaliTextFieldEvent03(void)
{
ToolkitTestApplication application;
tet_infoline(" utcDaliTextFieldEvent03");
// Checks if the highlight actor is created.
TextField field = TextField::New();
DALI_TEST_CHECK( field );
Stage::GetCurrent().Add( field );
field.SetProperty( TextField::Property::TEXT, "This is a long text for the size of the text-field." );
field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
field.SetSize( 30.f, 50.f );
field.SetParentOrigin( ParentOrigin::TOP_LEFT );
field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
// Avoid a crash when core load gl resources.
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
// Render and notify
application.SendNotification();
application.Render();
// Tap first to get the focus.
application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 3.f, 25.0f ) ) );
application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 3.f, 25.0f ) ) );
// Render and notify
application.SendNotification();
application.Render();
// Double tap to select a word.
application.ProcessEvent( GenerateTap( Gesture::Possible, 2u, 1u, Vector2( 3.f, 25.0f ) ) );
application.ProcessEvent( GenerateTap( Gesture::Started, 2u, 1u, Vector2( 3.f, 25.0f ) ) );
// Render and notify
application.SendNotification();
application.Render();
// The offscreen root actor should have three actors: the camera, a renderer and the highlight actor.
Actor offscreenRoot = field.GetChildAt( 1u );
DALI_TEST_CHECK( offscreenRoot.IsLayer() );
CameraActor camera = CameraActor::DownCast( offscreenRoot.GetChildAt( 0u ) );
DALI_TEST_CHECK( camera );
Renderer renderer = offscreenRoot.GetChildAt( 1u ).GetRendererAt( 0u );
DALI_TEST_CHECK( renderer );
Renderer highlight = offscreenRoot.GetChildAt( 2u ).GetRendererAt( 0u );
DALI_TEST_CHECK( highlight );
END_TEST;
}
示例10: UtcDaliTextInputScroll
int UtcDaliTextInputScroll(void)
{
tet_infoline("UtcDaliTextInputScroll: ");
ToolkitTestApplication application;
// Avoids the frame buffer texture to throw an exception.
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
TextInput view = TextInput::New();
view.SetMultilinePolicy( TextView::SplitByNewLineChar );
view.SetWidthExceedPolicy( TextView::Original );
view.SetHeightExceedPolicy( TextView::Original );
view.SetTextAlignment( static_cast<Toolkit::Alignment::Type>( Toolkit::Alignment::HorizontalCenter | Toolkit::Alignment::VerticalCenter ) );
view.SetInitialText( "Hello world! This is a scroll test." );
view.SetSize( 100.f, 100.f );
view.SetSnapshotModeEnabled( false );
Stage::GetCurrent().Add( view );
application.SendNotification();
application.Render();
DALI_TEST_CHECK( !view.IsScrollEnabled() ); // Scroll should be disabled by default.
view.SetScrollEnabled( true );
DALI_TEST_CHECK( view.IsScrollEnabled() );
DALI_TEST_CHECK( view.IsSnapshotModeEnabled() ); // Scroll should enable snapshot mode.
view.SetScrollPosition( Vector2( 400.f, 400.f ) );
application.SendNotification();
application.Render();
const Vector2& scrollPosition = view.GetScrollPosition();
DALI_TEST_EQUALS( scrollPosition, Vector2( 149.153656f, 0.f ), Math::MACHINE_EPSILON_1000, TEST_LOCATION );
END_TEST;
}
示例11: UtcDaliBubbleEmitterSetBlendMode
int UtcDaliBubbleEmitterSetBlendMode(void)
{
ToolkitTestApplication application;
tet_infoline( " UtcDaliBubbleEmitterSetBlendMode " );
Image shapeImage = CreateSolidColorImage( application, Color::GREEN, 5, 5 );
BubbleEmitter emitter = BubbleEmitter::New( Vector2(50.f,50.f),shapeImage, 150, Vector2( 5.f, 10.f ));
DALI_TEST_CHECK(emitter);
Actor root = emitter.GetRootActor();
Stage::GetCurrent().Add( root );
root.SetPosition( Vector3::ZERO );
root.SetParentOrigin( ParentOrigin::CENTER );
root.SetAnchorPoint( AnchorPoint::CENTER );
TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
Wait(application);
DALI_TEST_EQUALS( (GLenum)GL_SRC_ALPHA, glAbstraction.GetLastBlendFuncSrcRgb(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_SRC_ALPHA, glAbstraction.GetLastBlendFuncDstRgb(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE, glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_SRC_ALPHA, glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION );
emitter.SetBlendMode( true );
Wait(application);
DALI_TEST_EQUALS( (GLenum)GL_SRC_ALPHA, glAbstraction.GetLastBlendFuncSrcRgb(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE, glAbstraction.GetLastBlendFuncDstRgb(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ZERO, glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE, glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION );
emitter.SetBlendMode( false );
Wait(application);
DALI_TEST_EQUALS( (GLenum)GL_SRC_ALPHA, glAbstraction.GetLastBlendFuncSrcRgb(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_SRC_ALPHA, glAbstraction.GetLastBlendFuncDstRgb(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE, glAbstraction.GetLastBlendFuncSrcAlpha(), TEST_LOCATION );
DALI_TEST_EQUALS( (GLenum)GL_ONE_MINUS_SRC_ALPHA, glAbstraction.GetLastBlendFuncDstAlpha(), TEST_LOCATION );
END_TEST;
}
示例12: utcDaliTextFieldEvent02
int utcDaliTextFieldEvent02(void)
{
ToolkitTestApplication application;
tet_infoline(" utcDaliTextFieldEvent02");
// Checks if the right number of actors are created.
TextField field = TextField::New();
field.SetProperty( TextField::Property::POINT_SIZE, 10.f );
DALI_TEST_CHECK( field );
Stage::GetCurrent().Add( field );
field.SetSize( 300.f, 50.f );
field.SetParentOrigin( ParentOrigin::TOP_LEFT );
field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
// Avoid a crash when core load gl resources.
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
// Render and notify
application.SendNotification();
application.Render();
// Check there are the expected number of children ( active layer, offscreen root actor, and the offscreen image actor
DALI_TEST_EQUALS( field.GetChildCount(), 3u, TEST_LOCATION );
Actor layer = field.GetChildAt( 0u );
DALI_TEST_CHECK( layer.IsLayer() );
Actor offscreenRoot = field.GetChildAt( 1u );
DALI_TEST_CHECK( offscreenRoot.IsLayer() );
DALI_TEST_EQUALS( offscreenRoot.GetChildCount(), 1u, TEST_LOCATION ); // The camera actor.
Actor offscreenImage = field.GetChildAt( 2u );
ImageActor imageActor = ImageActor::DownCast( offscreenImage );
DALI_TEST_CHECK( imageActor );
// Create a tap event to touch the text field.
application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
// Render and notify
application.SendNotification();
application.Render();
DALI_TEST_EQUALS( layer.GetChildCount(), 1u, TEST_LOCATION ); // The cursor.
DALI_TEST_EQUALS( offscreenRoot.GetChildCount(), 1u, TEST_LOCATION ); // The camera actor.
// Now the text field has the focus, so it can handle the key events.
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
// Render and notify
application.SendNotification();
application.Render();
// Checks the cursor and the renderer have been created.
DALI_TEST_EQUALS( layer.GetChildCount(), 1u, TEST_LOCATION ); // The cursor.
DALI_TEST_EQUALS( offscreenRoot.GetChildCount(), 2u, TEST_LOCATION ); // The camera actor and the renderer
ImageActor cursor = ImageActor::DownCast( layer.GetChildAt( 0u ) );
DALI_TEST_CHECK( cursor );
CameraActor camera = CameraActor::DownCast( offscreenRoot.GetChildAt( 0u ) );
DALI_TEST_CHECK( camera );
Renderer renderer = offscreenRoot.GetChildAt( 1u ).GetRendererAt( 0u );
DALI_TEST_CHECK( renderer );
// Move the cursor and check the position changes.
Vector3 position1 = cursor.GetCurrentPosition();
application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::Down ) );
application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_LEFT, 0, 0, Integration::KeyEvent::Down ) );
// Render and notify
application.SendNotification();
application.Render();
Vector3 position2 = cursor.GetCurrentPosition();
DALI_TEST_CHECK( position2.x < position1.x );
application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::Down ) );
application.ProcessEvent( GenerateKey( "", "", DALI_KEY_CURSOR_RIGHT, 0, 0, Integration::KeyEvent::Down ) );
// Render and notify
application.SendNotification();
application.Render();
Vector3 position3 = cursor.GetCurrentPosition();
DALI_TEST_EQUALS( position1, position3, TEST_LOCATION ); // Should be in the same position1.
// Send some taps and check the cursor positions.
// Try to tap at the beginning.
application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 1.f, 25.0f ) ) );
application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 1.f, 25.0f ) ) );
//.........这里部分代码省略.........
示例13: utcDaliTextFieldEvent01
int utcDaliTextFieldEvent01(void)
{
ToolkitTestApplication application;
tet_infoline(" utcDaliTextFieldEvent01");
// Creates a tap event. After creating a tap event the text field should
// have the focus and add text with key events should be possible.
TextField field = TextField::New();
DALI_TEST_CHECK( field );
Stage::GetCurrent().Add( field );
field.SetSize( 300.f, 50.f );
field.SetParentOrigin( ParentOrigin::TOP_LEFT );
field.SetAnchorPoint( AnchorPoint::TOP_LEFT );
// Avoid a crash when core load gl resources.
application.GetGlAbstraction().SetCheckFramebufferStatusResult( GL_FRAMEBUFFER_COMPLETE );
// Render and notify
application.SendNotification();
application.Render();
// Add a key event but as the text field has not the focus it should do nothing.
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
// Render and notify
application.SendNotification();
application.Render();
DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string(""), TEST_LOCATION );
// Create a tap event to touch the text field.
application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 25.0f ) ) );
// Render and notify
application.SendNotification();
application.Render();
// Now the text field has the focus, so it can handle the key events.
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
// Render and notify
application.SendNotification();
application.Render();
DALI_TEST_EQUALS( field.GetProperty<std::string>( TextField::Property::TEXT ), std::string("aa"), TEST_LOCATION );
// Create a second text field and send key events to it.
TextField field2 = TextField::New();
field2.SetParentOrigin( ParentOrigin::TOP_LEFT );
field2.SetAnchorPoint( AnchorPoint::TOP_LEFT );
field2.SetSize( 100.f, 100.f );
field2.SetPosition( 100.f, 100.f );
Stage::GetCurrent().Add( field2 );
// Render and notify
application.SendNotification();
application.Render();
// Create a tap event on the second text field.
application.ProcessEvent( GenerateTap( Gesture::Possible, 1u, 1u, Vector2( 150.0f, 125.0f ) ) );
application.ProcessEvent( GenerateTap( Gesture::Started, 1u, 1u, Vector2( 150.0f, 125.0f ) ) );
// Render and notify
application.SendNotification();
application.Render();
// The second text field has the focus. It should handle the key events.
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
application.ProcessEvent( GenerateKey( "a", "a", 0, 0, 0, Integration::KeyEvent::Down ) );
// Render and notify
application.SendNotification();
application.Render();
// Check the text has been added to the second text field.
DALI_TEST_EQUALS( field2.GetProperty<std::string>( TextField::Property::TEXT ), std::string("aa"), TEST_LOCATION );
END_TEST;
}