/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
static int gTestSortFunctionCalled;
-static float TestSortFunction(const Vector3& /*position*/, float /*sortModifier*/)
+static float TestSortFunction(const Vector3& /*position*/)
{
++gTestSortFunctionCalled;
return 0.0f;
{
tet_infoline("Testing Dali::Layer::SetSortFunction()");
TestApplication application;
- BitmapImage img = BitmapImage::New( 1,1 );
+ BufferImage img = BufferImage::New( 1,1 );
// create two transparent actors so there is something to sort
- ImageActor actor = ImageActor::New( img );
- ImageActor actor2 = ImageActor::New( img );
+ Actor actor = CreateRenderableActor( img );
+ Actor actor2 = CreateRenderableActor( img );
actor.SetSize(1,1);
actor.SetColor( Vector4(1, 1, 1, 0.5f ) ); // 50% transparent
actor2.SetSize(1,1);
Layer actor = Layer::New();
- std::vector<Property::Index> indices ;
- indices.push_back(Layer::CLIPPING_ENABLE );
- indices.push_back(Layer::CLIPPING_BOX );
+ std::vector<Property::Index> indices;
+ indices.push_back(Layer::Property::CLIPPING_ENABLE);
+ indices.push_back(Layer::Property::CLIPPING_BOX);
+ indices.push_back(Layer::Property::BEHAVIOR);
DALI_TEST_CHECK(actor.GetPropertyCount() == ( Actor::New().GetPropertyCount() + indices.size() ) );
ClippingBox testBox(10,20,30,40);
DALI_TEST_CHECK(actor.GetClippingBox() != testBox);
- actor.SetProperty(Layer::CLIPPING_BOX, Property::Value(Rect<int>(testBox)));
+ actor.SetProperty(Layer::Property::CLIPPING_BOX, Property::Value(Rect<int>(testBox)));
- DALI_TEST_CHECK(Property::RECTANGLE == actor.GetPropertyType(Layer::CLIPPING_BOX)) ;
+ DALI_TEST_CHECK(Property::RECTANGLE == actor.GetPropertyType(Layer::Property::CLIPPING_BOX));
- Property::Value v = actor.GetProperty(Layer::CLIPPING_BOX);
+ Property::Value v = actor.GetProperty(Layer::Property::CLIPPING_BOX);
+ DALI_TEST_CHECK(v.Get<Rect<int> >() == testBox);
+ v = actor.GetCurrentProperty( Layer::Property::CLIPPING_BOX );
DALI_TEST_CHECK(v.Get<Rect<int> >() == testBox);
// set the same boundaries, but through a clipping box object
actor.SetClippingBox( testBox );
-
DALI_TEST_CHECK( actor.GetClippingBox() == testBox );
+ actor.SetProperty(Layer::Property::BEHAVIOR, Property::Value(Layer::LAYER_UI));
+ DALI_TEST_CHECK(Property::STRING == actor.GetPropertyType(Layer::Property::BEHAVIOR));
+
+ Property::Value behavior = actor.GetProperty(Layer::Property::BEHAVIOR);
+ DALI_TEST_EQUALS(behavior.Get<std::string>().c_str(), "LAYER_UI", TEST_LOCATION );
+
+ behavior = actor.GetCurrentProperty( Layer::Property::BEHAVIOR );
+ DALI_TEST_EQUALS(behavior.Get<std::string>().c_str(), "LAYER_UI", TEST_LOCATION );
+
END_TEST;
}
tet_infoline("Testing Dali::Layer::SetDepthTestDisabled() ");
Layer actor = Layer::New();
+ // Note that IsDepthTestDisabled does not depend on layer behavior,
+ // as 2D layers can still have depth tests performed on a per-renderer basis.
+ // Check default.
+ DALI_TEST_CHECK( actor.IsDepthTestDisabled() );
+ // Check Set / Unset.
+ actor.SetDepthTestDisabled( false );
DALI_TEST_CHECK( !actor.IsDepthTestDisabled() );
-
actor.SetDepthTestDisabled( true );
DALI_TEST_CHECK( actor.IsDepthTestDisabled() );
+
END_TEST;
}
Property::IndexContainer indices;
layer.GetPropertyIndices( indices );
- DALI_TEST_CHECK( indices.size() > basicActor.GetPropertyCount() );
- DALI_TEST_EQUALS( indices.size(), layer.GetPropertyCount(), TEST_LOCATION );
+ DALI_TEST_CHECK( indices.Size() > basicActor.GetPropertyCount() );
+ DALI_TEST_EQUALS( indices.Size(), layer.GetPropertyCount(), TEST_LOCATION );
END_TEST;
}
END_TEST;
}
+int UtcDaliLayerHoverConsumed(void)
+{
+ TestApplication application;
+ Layer layer = Layer::New();
+
+ DALI_TEST_EQUALS( layer.IsHoverConsumed(), false, TEST_LOCATION );
+ layer.SetHoverConsumed( true );
+ DALI_TEST_EQUALS( layer.IsHoverConsumed(), true, TEST_LOCATION );
+ END_TEST;
+}
+
int UtcDaliLayerClippingGLCalls(void)
{
TestApplication application;
layer.SetClippingBox( testBox );
// Add at least one renderable actor so the GL calls are actually made
- Actor textActor = TextActor::New("Hello");
- stage.Add( textActor );
+ BufferImage img = BufferImage::New( 1,1 );
+ Actor actor = CreateRenderableActor( img );
+ stage.Add( actor );
// flush the queue and render once
application.SendNotification();
application.Render();
DALI_TEST_EQUALS( testBox.x, glScissorParams.x, TEST_LOCATION );
- DALI_TEST_EQUALS( testBox.y, stage.GetSize().height - glScissorParams.y - testBox.height, TEST_LOCATION ); // GL Coordinates are from bottom left
+ DALI_TEST_EQUALS( testBox.y, (int)(stage.GetSize().height - glScissorParams.y - testBox.height), TEST_LOCATION ); // GL Coordinates are from bottom left
DALI_TEST_EQUALS( testBox.width, glScissorParams.width, TEST_LOCATION );
DALI_TEST_EQUALS( testBox.height, glScissorParams.height, TEST_LOCATION );
+ END_TEST;
+}
+
+int UtcDaliLayerBehaviour(void)
+{
+ TestApplication application;
+ Layer layer = Layer::New();
+
+ DALI_TEST_EQUALS( layer.GetBehavior(), Dali::Layer::LAYER_UI, TEST_LOCATION );
+ layer.SetBehavior( Dali::Layer::LAYER_3D );
+ DALI_TEST_EQUALS( layer.GetBehavior(), Dali::Layer::LAYER_3D, TEST_LOCATION );
+ END_TEST;
+}
+
+Actor CreateActor( bool withAlpha )
+{
+ Dali::BufferImage bufferImage;
+
+ if( withAlpha )
+ {
+ bufferImage = Dali::BufferImage::WHITE();
+ }
+ else
+ {
+ bufferImage = BufferImage::New( 1u, 1u, Pixel::RGB888 );
+ PixelBuffer* pBuffer = bufferImage.GetBuffer();
+ if( pBuffer )
+ {
+ pBuffer[0] = pBuffer[1] = pBuffer[2] = 0xFF;
+ }
+ }
+
+ Actor actor = CreateRenderableActor( bufferImage );
+ actor.SetParentOrigin( ParentOrigin::CENTER );
+ actor.SetAnchorPoint( AnchorPoint::CENTER );
+
+ return actor;
+}
+
+int UtcDaliLayer3DSort(void)
+{
+ tet_infoline( "Testing LAYER_3D sort coverage test" );
+ TestApplication application;
+ TestGlAbstraction& glAbstraction = application.GetGlAbstraction();
+ TraceCallStack& enabledDisableTrace = glAbstraction.GetEnableDisableTrace();
+
+ Stage::GetCurrent().GetRootLayer().SetBehavior( Layer::LAYER_3D );
+
+ // Create an actor.
+ Actor actor = CreateActor( false );
+ Stage::GetCurrent().Add( actor );
+
+ // Create child actors.
+ Actor child1 = CreateActor( true );
+ actor.Add( child1 );
+ Actor child2 = CreateActor( false );
+ child1.Add( child2 );
+
+ enabledDisableTrace.Reset();
+ enabledDisableTrace.Enable( true );
+ application.SendNotification();
+ application.Render();
+ enabledDisableTrace.Enable( false );
+
+ DALI_TEST_CHECK( enabledDisableTrace.FindMethodAndParams( "Enable", "2929" ) ); // 2929 is GL_DEPTH_TEST
END_TEST;
}