X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=automated-tests%2Fsrc%2Fdali-toolkit%2Futc-Dali-AnimatedImageVisual.cpp;h=7edefb1f7fd06f1f71110709d5e58ec158c07461;hb=d124a23dd94e5119147b127286d2e5ad687f0efd;hp=98703086038327a69f1c6c0e4c00868d9ba56113;hpb=091c63501b18f17786c8ec850c7708837568e2ef;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedImageVisual.cpp b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedImageVisual.cpp index 9870308..7edefb1 100644 --- a/automated-tests/src/dali-toolkit/utc-Dali-AnimatedImageVisual.cpp +++ b/automated-tests/src/dali-toolkit/utc-Dali-AnimatedImageVisual.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Samsung Electronics Co., Ltd. + * Copyright (c) 2023 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. @@ -80,6 +80,10 @@ int UtcDaliAnimatedImageVisualGetPropertyMap01(void) .Add(ImageVisual::Property::PIXEL_AREA, Vector4()) .Add(ImageVisual::Property::WRAP_MODE_U, WrapMode::REPEAT) .Add(ImageVisual::Property::WRAP_MODE_V, WrapMode::DEFAULT) + .Add(ImageVisual::Property::FITTING_MODE, FittingMode::FIT_WIDTH) + .Add(ImageVisual::Property::SAMPLING_MODE, SamplingMode::NEAREST) + .Add(ImageVisual::Property::DESIRED_WIDTH, 154) + .Add(ImageVisual::Property::DESIRED_HEIGHT, 79) .Add(ImageVisual::Property::ALPHA_MASK_URL, TEST_MASK_IMAGE_FILE_NAME) .Add(ImageVisual::Property::MASK_CONTENT_SCALE, 1.6f) .Add(ImageVisual::Property::CROP_TO_MASK, true) @@ -101,6 +105,30 @@ int UtcDaliAnimatedImageVisualGetPropertyMap01(void) DALI_TEST_CHECK(value); DALI_TEST_CHECK(value->Get() == TEST_GIF_FILE_NAME); + value = resultMap.Find(Toolkit::ImageVisual::Property::WRAP_MODE_U, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == WrapMode::REPEAT); + + value = resultMap.Find(Toolkit::ImageVisual::Property::WRAP_MODE_V, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == WrapMode::DEFAULT); + + value = resultMap.Find(Toolkit::ImageVisual::Property::FITTING_MODE, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == FittingMode::FIT_WIDTH); + + value = resultMap.Find(Toolkit::ImageVisual::Property::SAMPLING_MODE, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == SamplingMode::NEAREST); + + value = resultMap.Find(Toolkit::ImageVisual::Property::DESIRED_WIDTH, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == 154); + + value = resultMap.Find(Toolkit::ImageVisual::Property::DESIRED_HEIGHT, Property::INTEGER); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == 79); + value = resultMap.Find(DevelVisual::Property::CORNER_RADIUS, Property::VECTOR4); DALI_TEST_CHECK(value); DALI_TEST_EQUALS(value->Get(), Vector4(22.2f, 22.2f, 22.2f, 22.2f), TEST_LOCATION); @@ -138,9 +166,10 @@ int UtcDaliAnimatedImageVisualGetPropertyMap01(void) DALI_TEST_CHECK(value); DALI_TEST_CHECK(value->Get() == DevelImageVisual::MaskingType::MASKING_ON_RENDERING); + // Natural size getted as desired size Vector2 naturalSize; animatedImageVisual.GetNaturalSize(naturalSize); - DALI_TEST_EQUALS(naturalSize, Vector2(100, 100), TEST_LOCATION); + DALI_TEST_EQUALS(naturalSize, Vector2(154, 79), TEST_LOCATION); // request AnimatedImageVisual with an URL Visual::Base animatedImageVisual2 = factory.CreateVisual(TEST_GIF_FILE_NAME, ImageDimensions()); @@ -155,6 +184,10 @@ int UtcDaliAnimatedImageVisualGetPropertyMap01(void) DALI_TEST_CHECK(value); DALI_TEST_CHECK(value->Get() == TEST_GIF_FILE_NAME); + // Natural size getted as image size + animatedImageVisual2.GetNaturalSize(naturalSize); + DALI_TEST_EQUALS(naturalSize, Vector2(50, 50), TEST_LOCATION); + END_TEST; } @@ -179,6 +212,10 @@ int UtcDaliAnimatedImageVisualGetPropertyMap02(void) .Add("pixelArea", Vector4()) .Add("wrapModeU", WrapMode::REPEAT) .Add("wrapModeV", WrapMode::DEFAULT) + .Add("fittingMode", FittingMode::FIT_WIDTH) + .Add("samplingMode", SamplingMode::NEAREST) + .Add("desiredWidth", 154) + .Add("desiredHeight", 79) .Add("alphaMaskUrl", TEST_MASK_IMAGE_FILE_NAME) .Add("maskContentScale", 1.6f) .Add("cropToMask", true) @@ -222,6 +259,30 @@ int UtcDaliAnimatedImageVisualGetPropertyMap02(void) DALI_TEST_CHECK(value); DALI_TEST_EQUALS(value->Get(), 11, TEST_LOCATION); + value = resultMap.Find(Toolkit::ImageVisual::Property::WRAP_MODE_U, "wrapModeU"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == WrapMode::REPEAT); + + value = resultMap.Find(Toolkit::ImageVisual::Property::WRAP_MODE_V, "wrapModeV"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == WrapMode::DEFAULT); + + value = resultMap.Find(Toolkit::ImageVisual::Property::FITTING_MODE, "fittingMode"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == FittingMode::FIT_WIDTH); + + value = resultMap.Find(Toolkit::ImageVisual::Property::SAMPLING_MODE, "samplingMode"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == SamplingMode::NEAREST); + + value = resultMap.Find(Toolkit::ImageVisual::Property::DESIRED_WIDTH, "desiredWidth"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == 154); + + value = resultMap.Find(Toolkit::ImageVisual::Property::DESIRED_HEIGHT, "desiredHeight"); + DALI_TEST_CHECK(value); + DALI_TEST_CHECK(value->Get() == 79); + value = resultMap.Find(Toolkit::DevelVisual::Property::CORNER_RADIUS, "cornerRadius"); DALI_TEST_CHECK(value); DALI_TEST_EQUALS(value->Get(), Vector4(50.0f, 25.0f, 12.5f, 33.0f), TEST_LOCATION); @@ -359,6 +420,11 @@ int UtcDaliAnimatedImageVisualGetPropertyMap03(void) DALI_TEST_CHECK(value); DALI_TEST_CHECK(value->Get() == DevelImageVisual::MaskingType::MASKING_ON_RENDERING); + // Natural size getted as masked image size + Vector2 naturalSize; + animatedImageVisual.GetNaturalSize(naturalSize); + DALI_TEST_EQUALS(naturalSize, Vector2(100, 100), TEST_LOCATION); + END_TEST; } @@ -1037,6 +1103,9 @@ int UtcDaliAnimatedImageVisualAnimatedImageWithAlphaMask02(void) dummyControl.SetResizePolicy(ResizePolicy::FILL_TO_PARENT, Dimension::ALL_DIMENSIONS); application.GetScene().Add(dummyControl); + Property::Map attributes; + DevelControl::DoAction(dummyControl, DummyControl::Property::TEST_VISUAL, Dali::Toolkit::DevelAnimatedImageVisual::Action::STOP, attributes); + application.SendNotification(); application.Render(); @@ -1046,7 +1115,7 @@ int UtcDaliAnimatedImageVisualAnimatedImageWithAlphaMask02(void) application.SendNotification(); application.Render(20); - DALI_TEST_EQUALS(gl.GetLastGenTextureId(), 3, TEST_LOCATION); + DALI_TEST_EQUALS(gl.GetNumGeneratedTextures(), 3, TEST_LOCATION); dummyControl.Unparent(); } @@ -1792,7 +1861,7 @@ int UtcDaliAnimatedImageVisualWrapMode(void) // Test wrap mode in animated image visual. const int width = 950; const int height = 1080; - const Vector4 pixelArea(0.0f, 0.0f, 950/ 40, 1.0f); + const Vector4 pixelArea(0.0f, 0.0f, 950 / 40, 1.0f); Property::Map propertyMap; propertyMap.Insert(Toolkit::Visual::Property::TYPE, Visual::IMAGE); @@ -1848,3 +1917,72 @@ int UtcDaliAnimatedImageVisualWrapMode(void) END_TEST; } + +int UtcDaliAnimatedImageVisualDesiredSize(void) +{ + ToolkitTestApplication application; + tet_infoline("UtcDaliAnimatedImageVisualDesiredSize"); + + TestGlAbstraction& gl = application.GetGlAbstraction(); + TraceCallStack& textureTrace = gl.GetTextureTrace(); + + // Set desiredWidth < 37 and desiredHeight < 50, which is smaller than original image's size. + int desiredWidth = 15; + int desiredHeight = 20; + + Visual::Base visual = VisualFactory::Get().CreateVisual(TEST_GIF_FILE_NAME, ImageDimensions(desiredWidth, desiredHeight)); + DALI_TEST_CHECK(visual); + + DummyControl actor = DummyControl::New(true); + DummyControlImpl& dummyImpl = static_cast(actor.GetImplementation()); + dummyImpl.RegisterVisual(DummyControl::Property::TEST_VISUAL, visual); + + application.GetScene().Add(actor); + + application.SendNotification(); + application.Render(); + + // Trigger count is 2 - first frame and second frame. + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + + textureTrace.Enable(true); + textureTrace.EnableLogging(true); + + application.SendNotification(); + application.Render(); + + { + std::stringstream out; + out << GL_TEXTURE_2D << ", " << 0u << ", " << desiredWidth << ", " << desiredHeight; + DALI_TEST_CHECK(textureTrace.FindMethodAndParams("TexImage2D", out.str().c_str())); + } + + // Unparent to make next trigger + actor.Unparent(); + + application.SendNotification(); + application.Render(); + + // Set visual size + actor.SetProperty(Actor::Property::SIZE, Vector2(300.0f, 300.0f)); + application.GetScene().Add(actor); + + application.SendNotification(); + application.Render(); + + // Trigger count is 2 - first frame and second frame. + DALI_TEST_EQUALS(Test::WaitForEventThreadTrigger(2), true, TEST_LOCATION); + + textureTrace.Reset(); + + application.SendNotification(); + application.Render(); + + { + std::stringstream out; + out << GL_TEXTURE_2D << ", " << 0u << ", " << desiredWidth << ", " << desiredHeight; + DALI_TEST_CHECK(textureTrace.FindMethodAndParams("TexImage2D", out.str().c_str())); // The size should not be changed + } + + END_TEST; +}