From 67dd4af369a77aa7c0f3b55d3ffdff3ed73fb1ca Mon Sep 17 00:00:00 2001 From: "dongsug.song" Date: Tue, 27 Mar 2018 20:00:40 +0900 Subject: [PATCH] Revert "Revert "Change fitting mode to match previous behaviour."" This reverts commit 0bb1033cc6ab888e7fe5db8268fef8f0b6e83e47. Change-Id: I0e937ac1eb8a2c72d58f9e228edcf44b899a7059 --- .../animated-gradient-card-active.cpp | 12 +++- examples/blocks/blocks-example.cpp | 10 +++- examples/clipping/clipping-item-factory.cpp | 2 +- .../image-view-alpha-blending-example.cpp | 65 ++++++++++++++-------- examples/item-view/item-view-example.cpp | 2 +- examples/perf-scroll/perf-scroll.cpp | 12 +++- 6 files changed, 72 insertions(+), 31 deletions(-) diff --git a/examples/animated-gradient-card-active/animated-gradient-card-active.cpp b/examples/animated-gradient-card-active/animated-gradient-card-active.cpp index 2c436bb..3414361 100644 --- a/examples/animated-gradient-card-active/animated-gradient-card-active.cpp +++ b/examples/animated-gradient-card-active/animated-gradient-card-active.cpp @@ -1,5 +1,5 @@ /* -* Copyright (c) 2017 Samsung Electronics Co., Ltd. +* Copyright (c) 2018 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. @@ -141,8 +141,16 @@ public: mImageUrl[k] = CARD_IMAGE_LIST[k]; + // Create an image view for this item mCard[k] = ImageView::New(); - mCard[k].SetImage( mImageUrl[k] ); + { + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::IMAGE); + propertyMap.Insert(ImageVisual::Property::URL, mImageUrl[k]); + propertyMap.Insert(DevelVisual::Property::VISUAL_FITTING_MODE, DevelVisual::FILL); + mCard[k].SetProperty(Toolkit::ImageView::Property::IMAGE, propertyMap); + } + mCard[k].SetParentOrigin( ParentOrigin::CENTER ); mCard[k].SetAnchorPoint( AnchorPoint::CENTER ); mCard[k].SetSize( mSize.x, mSize.y ); diff --git a/examples/blocks/blocks-example.cpp b/examples/blocks/blocks-example.cpp index dc3b208..7cadbe2 100644 --- a/examples/blocks/blocks-example.cpp +++ b/examples/blocks/blocks-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -23,6 +23,7 @@ #include #include +#include #include "shared/view.h" using namespace Dali; @@ -586,7 +587,12 @@ private: */ ImageView CreateImage(const std::string& filename) { - ImageView actor = ImageView::New(filename); + Property::Map propertyMap; + propertyMap.Insert(Visual::Property::TYPE, Visual::IMAGE); + propertyMap.Insert(ImageVisual::Property::URL, filename); + propertyMap.Insert(DevelVisual::Property::VISUAL_FITTING_MODE, DevelVisual::FILL); + ImageView actor = ImageView::New(); + actor.SetProperty(Toolkit::ImageView::Property::IMAGE, propertyMap); actor.SetParentOrigin(ParentOrigin::TOP_LEFT); actor.SetAnchorPoint(AnchorPoint::CENTER); return actor; diff --git a/examples/clipping/clipping-item-factory.cpp b/examples/clipping/clipping-item-factory.cpp index f6cf377..9d3b886 100644 --- a/examples/clipping/clipping-item-factory.cpp +++ b/examples/clipping/clipping-item-factory.cpp @@ -107,7 +107,7 @@ Actor ClippingItemFactory::NewItem( unsigned int itemId ) Property::Map propertyMap; propertyMap.Insert(Visual::Property::TYPE, Visual::IMAGE); propertyMap.Insert(ImageVisual::Property::URL, IMAGE_PATHS[ itemId % NUM_IMAGES ] ); - propertyMap.Insert(DevelVisual::Property::FITTING_MODE, DevelVisual::FILL); + propertyMap.Insert(DevelVisual::Property::VISUAL_FITTING_MODE, DevelVisual::FILL); ImageView actor = ImageView::New(); actor.SetProperty(Toolkit::ImageView::Property::IMAGE, propertyMap); diff --git a/examples/image-view-alpha-blending/image-view-alpha-blending-example.cpp b/examples/image-view-alpha-blending/image-view-alpha-blending-example.cpp index 011e7c6..bf6067c 100644 --- a/examples/image-view-alpha-blending/image-view-alpha-blending-example.cpp +++ b/examples/image-view-alpha-blending/image-view-alpha-blending-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -16,6 +16,8 @@ */ #include +#include +#include using namespace Dali; @@ -48,28 +50,28 @@ private: Stage stage = Stage::GetCurrent(); stage.KeyEventSignal().Connect(this, &ImageViewAlphaBlendApp::OnKeyEvent); - Vector4 green0 = Vector4( 0.f, 1.f, 0.f, 0.25f ); - Vector4 green1 = Vector4( 0.f, 0.25f, 0.f, 0.25f ); - BufferImage redGreen0 = CreateBufferImage( Color::RED, green0 ); - BufferImage redGreen1 = CreateBufferImage( Color::RED, green1 ); + auto green0 = Vector4( 0.f, 1.f, 0.f, 0.25f ); + auto green1 = Vector4( 0.f, 0.25f, 0.f, 0.25f ); + auto redGreen0 = CreateTexture( Color::RED, green0 ); + auto redGreen1 = CreateTexture( Color::RED, green1 ); float imageSize = 512.f; - Toolkit::ImageView imageView0 = Toolkit::ImageView::New( IMAGE_PATH ); + Toolkit::ImageView imageView0 = CreateImageView( IMAGE_PATH ); imageView0.SetSize(imageSize, imageSize); imageView0.SetParentOrigin( ParentOrigin::CENTER ); imageView0.SetY( -imageSize*0.5f ); stage.Add(imageView0); - Toolkit::ImageView imageView1 = Toolkit::ImageView::New( redGreen0 ); + Toolkit::ImageView imageView1 = CreateImageView( redGreen0 ); imageView1.SetParentOrigin( ParentOrigin::CENTER ); imageView1.SetSize(imageSize, imageSize); imageView0.Add(imageView1); - Toolkit::ImageView imageView2 = Toolkit::ImageView::New( IMAGE_PATH ); + Toolkit::ImageView imageView2 = CreateImageView( IMAGE_PATH ); imageView2.SetSize(imageSize, imageSize); imageView2.SetParentOrigin( ParentOrigin::CENTER ); imageView2.SetY( imageSize*0.5f ); stage.Add(imageView2); - Toolkit::ImageView imageView3 = Toolkit::ImageView::New( redGreen1); + Toolkit::ImageView imageView3 = CreateImageView( redGreen1); imageView3.SetParentOrigin( ParentOrigin::CENTER ); imageView3.SetSize(imageSize, imageSize); imageView2.Add(imageView3); @@ -95,22 +97,41 @@ private: } } - BufferImage CreateBufferImage( const Vector4& color1, const Vector4& color2 ) + std::string CreateTexture( const Vector4& color1, const Vector4& color2 ) { - BufferImage image = BufferImage::New( 2, 1, Pixel::RGBA8888 ); - PixelBuffer* pixelBuffer = image.GetBuffer(); - pixelBuffer[0]=0xFF * color1.x; - pixelBuffer[1]=0xFF * color1.y; - pixelBuffer[2]=0xFF * color1.z; - pixelBuffer[3]=0xFF * color1.w; - pixelBuffer[4]=0xFF * color2.x; - pixelBuffer[5]=0xFF * color2.y; - pixelBuffer[6]=0xFF * color2.z; - pixelBuffer[7]=0xFF * color2.w; - image.Update(); - return image; + const auto width = 2u; + const auto height = 1u; + auto size = width * height * 4; + auto pixelBuffer = new unsigned char[size]; + pixelBuffer[0] = 0xFF * color1.x; + pixelBuffer[1] = 0xFF * color1.y; + pixelBuffer[2] = 0xFF * color1.z; + pixelBuffer[3] = 0xFF * color1.w; + pixelBuffer[4] = 0xFF * color2.x; + pixelBuffer[5] = 0xFF * color2.y; + pixelBuffer[6] = 0xFF * color2.z; + pixelBuffer[7] = 0xFF * color2.w; + + auto pixelData = PixelData::New(pixelBuffer, size, width, height, Pixel::RGBA8888, PixelData::ReleaseFunction::DELETE_ARRAY); + auto texture = Texture::New( TextureType::TEXTURE_2D, Pixel::RGBA8888, width, height ); + texture.Upload(pixelData); + + return Toolkit::TextureManager::AddTexture(texture); } + template + Toolkit::ImageView CreateImageView(TextT&& filename) + { + auto imageView = Toolkit::ImageView::New(); + + Property::Map propertyMap; + propertyMap.Insert(Toolkit::ImageVisual::Property::URL, std::forward(filename)); + propertyMap.Insert(Toolkit::Visual::Property::TYPE, Toolkit::Visual::IMAGE); + propertyMap.Insert(Toolkit::DevelVisual::Property::VISUAL_FITTING_MODE, Toolkit::DevelVisual::FILL); + imageView.SetProperty(Toolkit::ImageView::Property::IMAGE, propertyMap ); + + return imageView; + } private: Application& mApplication; diff --git a/examples/item-view/item-view-example.cpp b/examples/item-view/item-view-example.cpp index 61dce2d..6172a73 100644 --- a/examples/item-view/item-view-example.cpp +++ b/examples/item-view/item-view-example.cpp @@ -870,7 +870,7 @@ public: // From ItemFactory Property::Map propertyMap; propertyMap.Insert(Toolkit::Visual::Property::TYPE, Visual::IMAGE); propertyMap.Insert(ImageVisual::Property::URL, IMAGE_PATHS[ itemId % NUM_IMAGES ] ); - propertyMap.Insert(DevelVisual::Property::FITTING_MODE, DevelVisual::FILL); + propertyMap.Insert(DevelVisual::Property::VISUAL_FITTING_MODE, DevelVisual::FILL); ImageView actor = ImageView::New(); actor.SetProperty( Toolkit::ImageView::Property::IMAGE, propertyMap ); actor.SetZ( 0.0f ); diff --git a/examples/perf-scroll/perf-scroll.cpp b/examples/perf-scroll/perf-scroll.cpp index 6740eee..beedecf 100644 --- a/examples/perf-scroll/perf-scroll.cpp +++ b/examples/perf-scroll/perf-scroll.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2018 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. @@ -16,7 +16,7 @@ */ #include - +#include #include "shared/utility.h" using namespace Dali; @@ -278,7 +278,13 @@ public: for( size_t i(0); i