X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-RendererFactory.cpp;h=9a66d4b24e5a939c07d85442e916b24078a786b8;hb=8e3247866b55d0a5fbc361169eec6d40228e4fdf;hp=391bc7497b4d8209974ee7717094a08ba5a6464b;hpb=4bb73208b381ac496ea18f79700d41038b4e7c12;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp b/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp index 391bc74..9a66d4b 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-RendererFactory.cpp @@ -165,15 +165,26 @@ Integration::ResourcePointer CustomizeNinePatch( TestApplication& application, return resourcePtr; } -void TestControlRendererRender( ToolkitTestApplication& application, Actor& actor, ControlRenderer& controlRenderer, Integration::ResourcePointer resourcePtr = Integration::ResourcePointer(), std::size_t expectedSamplers = 0) +void TestControlRendererRender( ToolkitTestApplication& application, + Actor& actor, + ControlRenderer& controlRenderer, + std::size_t expectedSamplers = 0, + ImageDimensions imageDimensions = ImageDimensions(), + Integration::ResourcePointer resourcePtr = Integration::ResourcePointer()) { + if( resourcePtr ) + { + // set the image size, for test case, this needs to be set before loading started + application.GetPlatform().SetClosestImageSize( Vector2(imageDimensions.GetWidth(), imageDimensions.GetHeight()) ); + } + actor.SetSize( 200.f, 200.f ); Stage::GetCurrent().Add( actor ); controlRenderer.SetSize( Vector2(200.f, 200.f) ); controlRenderer.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); - DALI_TEST_CHECK( actor.GetRendererAt(0u).GetMaterial().GetNumberOfSamplers() == expectedSamplers ); + DALI_TEST_CHECK( actor.GetRendererAt(0u).GetMaterial().GetNumberOfTextures() == expectedSamplers ); application.SendNotification(); application.Render(); @@ -275,8 +286,8 @@ int UtcDaliRendererFactoryGetColorRenderer1(void) Property::Map propertyMap; Vector4 testColor( 1.f, 0.5f, 0.3f, 0.2f ); - propertyMap.Insert("renderer-type", "color-renderer"); - propertyMap.Insert("blend-color", testColor); + propertyMap.Insert("rendererType", "colorRenderer"); + propertyMap.Insert("blendColor", testColor); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); DALI_TEST_CHECK( controlRenderer ); @@ -286,7 +297,7 @@ int UtcDaliRendererFactoryGetColorRenderer1(void) Vector4 actualValue(Vector4::ZERO); TestGlAbstraction& gl = application.GetGlAbstraction(); - DALI_TEST_CHECK( gl.GetUniformValue( "uBlendColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "blendColor", actualValue ) ); DALI_TEST_EQUALS( actualValue, testColor, TEST_LOCATION ); END_TEST; @@ -309,7 +320,7 @@ int UtcDaliRendererFactoryGetColorRenderer2(void) Vector4 actualValue(Vector4::ZERO); TestGlAbstraction& gl = application.GetGlAbstraction(); - DALI_TEST_CHECK( gl.GetUniformValue( "uBlendColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "blendColor", actualValue ) ); DALI_TEST_EQUALS( actualValue, testColor, TEST_LOCATION ); controlRenderer.SetOffStage( actor ); @@ -329,9 +340,9 @@ int UtcDaliRendererFactoryGetBorderRenderer1(void) Property::Map propertyMap; Vector4 testColor( 1.f, 0.5f, 0.3f, 0.2f ); float testSize = 5.f; - propertyMap.Insert("renderer-type", "border-renderer"); - propertyMap.Insert("border-color", testColor); - propertyMap.Insert("border-size", testSize); + propertyMap.Insert("rendererType", "borderRenderer"); + propertyMap.Insert("borderColor", testColor); + propertyMap.Insert("borderSize", testSize); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); DALI_TEST_CHECK( controlRenderer ); @@ -343,6 +354,7 @@ int UtcDaliRendererFactoryGetBorderRenderer1(void) controlRenderer.SetOnStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 1u ); + DALI_TEST_EQUALS( actor.GetRendererAt(0).GetMaterial().GetBlendMode(), BlendingMode::ON, TEST_LOCATION ); TestGlAbstraction& gl = application.GetGlAbstraction(); @@ -350,11 +362,11 @@ int UtcDaliRendererFactoryGetBorderRenderer1(void) application.Render(0); Vector4 actualColor(Vector4::ZERO); - DALI_TEST_CHECK( gl.GetUniformValue( "uBorderColor", actualColor ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "borderColor", actualColor ) ); DALI_TEST_EQUALS( actualColor, testColor, TEST_LOCATION ); float actualSize = 0.f; - DALI_TEST_CHECK( gl.GetUniformValue( "uBorderSize", actualSize ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "borderSize", actualSize ) ); DALI_TEST_EQUALS( actualSize, testSize, TEST_LOCATION ); controlRenderer.SetOffStage( actor ); @@ -371,10 +383,10 @@ int UtcDaliRendererFactoryGetBorderRenderer2(void) RendererFactory factory = RendererFactory::Get(); DALI_TEST_CHECK( factory ); - Vector4 testColor( 1.f, 0.5f, 0.3f, 0.2f ); + Vector4 testColor( 1.f, 0.5f, 0.3f, 1.f ); float testSize = 5.f; - ControlRenderer controlRenderer = factory.GetControlRenderer(testSize, testColor); + ControlRenderer controlRenderer = factory.GetControlRenderer(testSize, testColor ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); @@ -390,18 +402,30 @@ int UtcDaliRendererFactoryGetBorderRenderer2(void) application.SendNotification(); application.Render(0); + DALI_TEST_EQUALS( actor.GetRendererAt(0).GetMaterial().GetBlendMode(), BlendingMode::AUTO, TEST_LOCATION ); + Vector4 actualColor(Vector4::ZERO); - DALI_TEST_CHECK( gl.GetUniformValue( "uBorderColor", actualColor ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "borderColor", actualColor ) ); DALI_TEST_EQUALS( actualColor, testColor, TEST_LOCATION ); float actualSize = 0.f; - DALI_TEST_CHECK( gl.GetUniformValue( "uBorderSize", actualSize ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "borderSize", actualSize ) ); DALI_TEST_EQUALS( actualSize, testSize, TEST_LOCATION ); + controlRenderer.SetOffStage( actor ); + + // enable the anti-aliasing + controlRenderer = factory.GetControlRenderer(testSize, testColor, true ); + controlRenderer.SetOnStage( actor ); + + application.SendNotification(); + application.Render(0); + DALI_TEST_EQUALS( actor.GetRendererAt(0).GetMaterial().GetBlendMode(), BlendingMode::ON, TEST_LOCATION ); + + END_TEST; } - int UtcDaliRendererFactoryGetLinearGradientRenderer(void) { ToolkitTestApplication application; @@ -411,30 +435,30 @@ int UtcDaliRendererFactoryGetLinearGradientRenderer(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert("renderer-type", "gradient-renderer"); + propertyMap.Insert("rendererType", "gradientRenderer"); Vector2 start(-1.f, -1.f); Vector2 end(1.f, 1.f); - propertyMap.Insert("gradient-start-position", start); - propertyMap.Insert("gradient-end-position", end); - propertyMap.Insert("gradient-spread-method", "repeat"); + propertyMap.Insert("gradientStartPosition", start); + propertyMap.Insert("gradientEndPosition", end); + propertyMap.Insert("gradientSpreadMethod", "repeat"); Property::Array stopOffsets; stopOffsets.PushBack( 0.2f ); stopOffsets.PushBack( 0.8f ); - propertyMap.Insert("gradient-stop-offset", stopOffsets); + propertyMap.Insert("gradientStopOffset", stopOffsets); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("gradient-stop-color", stopColors); + propertyMap.Insert("gradientStopColor", stopColors); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); DALI_TEST_CHECK( controlRenderer ); // A lookup texture is generated and pass to shader as sampler Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, Integration::ResourcePointer(), 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u ); controlRenderer.SetOffStage( actor ); DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); @@ -451,30 +475,30 @@ int UtcDaliRendererFactoryGetRadialGradientRenderer(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert("renderer-type", "gradient-renderer"); + propertyMap.Insert("rendererType", "gradientRenderer"); Vector2 center(100.f, 100.f); float radius = 100.f; - propertyMap.Insert("gradient-units", "user-space"); - propertyMap.Insert("gradient-center", center); - propertyMap.Insert("gradient-radius", radius); + propertyMap.Insert("gradientUnits", "userSpace"); + propertyMap.Insert("gradientCenter", center); + propertyMap.Insert("gradientRadius", radius); Property::Array stopOffsets; stopOffsets.PushBack( 0.0f ); stopOffsets.PushBack( 1.f ); - propertyMap.Insert("gradient-stop-offset", stopOffsets); + propertyMap.Insert("gradientStopOffset", stopOffsets); Property::Array stopColors; stopColors.PushBack( Color::RED ); stopColors.PushBack( Color::GREEN ); - propertyMap.Insert("gradient-stop-color", stopColors); + propertyMap.Insert("gradientStopColor", stopColors); ControlRenderer controlRenderer = factory.GetControlRenderer(propertyMap); DALI_TEST_CHECK( controlRenderer ); // A lookup texture is generated and pass to shader as sampler Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, Integration::ResourcePointer(), 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u ); Matrix3 alignMatrix( radius, 0.f, 0.f, 0.f, radius, 0.f, center.x, center.y, 1.f ); alignMatrix.Invert(); @@ -496,14 +520,18 @@ int UtcDaliRendererFactoryGetImageRenderer1(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert( "renderer-type", "image-renderer" ); - propertyMap.Insert( "image-url", TEST_IMAGE_FILE_NAME ); + propertyMap.Insert( "rendererType", "imageRenderer" ); + propertyMap.Insert( "imageUrl", TEST_IMAGE_FILE_NAME ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)), 1u ); + // For tesing the LoadResourceFunc is called, a big image size should be set, so the atlasing is not applied. + // Image with a size smaller than 512*512 will be uploaded as a part of the atlas. + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(512, 513), + Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD))); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -528,7 +556,11 @@ int UtcDaliRendererFactoryGetImageRenderer2(void) ControlRenderer controlRenderer = factory.GetControlRenderer( image ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)), 1u ); + // For tesing the LoadResourceFunc is called, a big image size should be set, so the atlasing is not applied. + // Image with a size smaller than 512*512 will be uploaded as a part of the atlas. + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(512, 513), + Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)) ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -555,15 +587,17 @@ int UtcDaliRendererFactoryGetNPatchRenderer1(void) Integration::ResourcePointer ninePatchResource = CustomizeNinePatch( application, ninePatchImageWidth, ninePatchImageHeight, stretchRangesX, stretchRangesY ); Property::Map propertyMap; - propertyMap.Insert( "renderer-type", "n-patch-renderer" ); - propertyMap.Insert( "image-url", TEST_NPATCH_FILE_NAME ); + propertyMap.Insert( "rendererType", "nPatchRenderer" ); + propertyMap.Insert( "imageUrl", TEST_NPATCH_FILE_NAME ); { tet_infoline( "whole grid" ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, ninePatchResource, 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -571,14 +605,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer1(void) DALI_TEST_EQUALS( textureUnit, 0, TEST_LOCATION ); } - propertyMap.Insert( "border-only", true ); + propertyMap.Insert( "borderOnly", true ); { tet_infoline( "border only" ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, ninePatchResource, 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -611,14 +647,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer2(void) Integration::ResourcePointer ninePatchResource = CustomizeNinePatch( application, ninePatchImageWidth, ninePatchImageHeight, stretchRangesX, stretchRangesY ); Property::Map propertyMap; - propertyMap.Insert( "renderer-type", "n-patch-renderer" ); - propertyMap.Insert( "image-url", TEST_NPATCH_FILE_NAME ); + propertyMap.Insert( "rendererType", "nPatchRenderer" ); + propertyMap.Insert( "imageUrl", TEST_NPATCH_FILE_NAME ); { ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, ninePatchResource, 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -629,14 +667,16 @@ int UtcDaliRendererFactoryGetNPatchRenderer2(void) DALI_TEST_CHECK( actor.GetRendererCount() == 0u ); } - propertyMap.Insert( "border-only", true ); + propertyMap.Insert( "borderOnly", true ); { tet_infoline( "border only" ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, ninePatchResource, 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -670,7 +710,9 @@ int UtcDaliRendererFactoryGetNPatchRenderer3(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, ninePatchResource, 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -705,7 +747,9 @@ int UtcDaliRendererFactoryGetNPatchRenderer4(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, ninePatchResource, 1u ); + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(ninePatchImageWidth, ninePatchImageHeight), + ninePatchResource ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -729,7 +773,10 @@ int UtcDaliRendererFactoryGetNPatchRendererN1(void) DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, Integration::ResourcePointer(), 1u ); + //The testkit still has to load a bitmap for the broken renderer image + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(), + Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)) ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -750,14 +797,17 @@ int UtcDaliRendererFactoryGetNPatchRendererN2(void) DALI_TEST_CHECK( factory ); Property::Map propertyMap; - propertyMap.Insert( "renderer-type", "n-patch-renderer" ); - propertyMap.Insert( "image-url", 111 ); + propertyMap.Insert( "rendererType", "nPatchRenderer" ); + propertyMap.Insert( "imageUrl", 111 ); ControlRenderer controlRenderer = factory.GetControlRenderer( propertyMap ); DALI_TEST_CHECK( controlRenderer ); Actor actor = Actor::New(); - TestControlRendererRender( application, actor, controlRenderer, Integration::ResourcePointer(), 1u ); + //The testkit still has to load a bitmap for the broken renderer image + TestControlRendererRender( application, actor, controlRenderer, 1u, + ImageDimensions(), + Integration::ResourcePointer(Integration::Bitmap::New(Integration::Bitmap::BITMAP_2D_PACKED_PIXELS, ResourcePolicy::OWNED_DISCARD)) ); TestGlAbstraction& gl = application.GetGlAbstraction(); int textureUnit = -1; @@ -783,19 +833,17 @@ int UtcDaliRendererFactoryResetRenderer1(void) Vector4 actualValue(Vector4::ZERO); TestGlAbstraction& gl = application.GetGlAbstraction(); - DALI_TEST_CHECK( gl.GetUniformValue( "uBlendColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "blendColor", actualValue ) ); DALI_TEST_EQUALS( actualValue, Color::RED, TEST_LOCATION ); - bool isNewRenderer = factory.ResetRenderer( controlRenderer, Color::GREEN ); - DALI_TEST_CHECK( !isNewRenderer ); + factory.ResetRenderer( controlRenderer, actor, Color::GREEN ); application.SendNotification(); application.Render(0); - DALI_TEST_CHECK( gl.GetUniformValue( "uBlendColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "blendColor", actualValue ) ); DALI_TEST_EQUALS( actualValue, Color::GREEN, TEST_LOCATION ); Image bufferImage = CreateBufferImage( 100, 200, Vector4( 1.f, 1.f, 1.f, 1.f ) ); - isNewRenderer = factory.ResetRenderer( controlRenderer, bufferImage ); - DALI_TEST_CHECK( isNewRenderer ); + factory.ResetRenderer( controlRenderer, actor, bufferImage ); Actor actor2 = Actor::New(); actor2.SetSize(200.f, 200.f); @@ -804,8 +852,6 @@ int UtcDaliRendererFactoryResetRenderer1(void) controlRenderer.SetOnStage( actor2 ); application.SendNotification(); application.Render(0); - Image samplerImage = actor2.GetRendererAt(0u).GetMaterial().GetSamplerAt(0u).GetImage(); - DALI_TEST_CHECK( BufferImage::DownCast( samplerImage ) ); END_TEST; } @@ -830,19 +876,13 @@ int UtcDaliRendererFactoryResetRenderer2(void) application.SendNotification(); application.Render(0); - Image samplerImage = actor.GetRendererAt(0u).GetMaterial().GetSamplerAt(0u).GetImage(); - DALI_TEST_CHECK( ResourceImage::DownCast( samplerImage ) ); Image bufferImage = CreateBufferImage( 100, 200, Vector4( 1.f, 1.f, 1.f, 1.f ) ); - bool isNewRenderer = factory.ResetRenderer( controlRenderer, bufferImage ); - DALI_TEST_CHECK( !isNewRenderer ); + factory.ResetRenderer( controlRenderer, actor, bufferImage ); application.SendNotification(); application.Render(0); - samplerImage = actor.GetRendererAt(0u).GetMaterial().GetSamplerAt(0u).GetImage(); - DALI_TEST_CHECK( BufferImage::DownCast( samplerImage ) ); - isNewRenderer = factory.ResetRenderer( controlRenderer, Color::RED ); - DALI_TEST_CHECK( isNewRenderer ); + factory.ResetRenderer( controlRenderer, actor, Color::RED ); Actor actor2 = Actor::New(); actor2.SetSize(200.f, 200.f); @@ -853,7 +893,7 @@ int UtcDaliRendererFactoryResetRenderer2(void) application.SendNotification(); application.Render(0); Vector4 actualValue(Vector4::ZERO); - DALI_TEST_CHECK( gl.GetUniformValue( "uBlendColor", actualValue ) ); + DALI_TEST_CHECK( gl.GetUniformValue( "blendColor", actualValue ) ); DALI_TEST_EQUALS( actualValue, Color::RED, TEST_LOCATION ); END_TEST;