X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Feffects-view%2Feffects-view-impl.cpp;h=0f3e141cf4237ad924c0cf4308dc4aa77aa92cd9;hp=ae4ac45fc79cdd644d9623cacf6ee708be6b29e5;hb=9a5ce98a301f74f8df8a3be6d223b525c8839b0b;hpb=8ddb15f9e047abe0f51f803f5418bcb9d22a821d diff --git a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp b/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp index ae4ac45..0f3e141 100644 --- a/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp +++ b/dali-toolkit/internal/controls/effects-view/effects-view-impl.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 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. @@ -19,112 +19,80 @@ #include "effects-view-impl.h" // EXTERNAL INCLUDES +#include #include #include -#include #include -#include +#include #include +#include #include -#include +#include // INTERNAL INCLUDES #include -#include +#include +#include +#include #include #include #include +#include namespace Dali { - namespace Toolkit { - namespace Internal { - namespace { - Dali::BaseHandle Create() { return EffectsView::New(); } -DALI_TYPE_REGISTRATION_BEGIN( Toolkit::EffectsView, Toolkit::Control, Create ) -DALI_PROPERTY_REGISTRATION( Toolkit, EffectsView, "effectSize", INTEGER, EFFECT_SIZE ) -DALI_ANIMATABLE_PROPERTY_REGISTRATION( Toolkit, EffectsView, "effectOffset", VECTOR3, EFFECT_OFFSET ) -DALI_ANIMATABLE_PROPERTY_REGISTRATION_WITH_DEFAULT( Toolkit, EffectsView, "effectColor", Color::WHITE, EFFECT_COLOR ) +DALI_TYPE_REGISTRATION_BEGIN(Toolkit::EffectsView, Toolkit::Control, Create) +DALI_PROPERTY_REGISTRATION(Toolkit, EffectsView, "effectSize", INTEGER, EFFECT_SIZE) +DALI_ANIMATABLE_PROPERTY_REGISTRATION(Toolkit, EffectsView, "effectOffset", VECTOR3, EFFECT_OFFSET) +DALI_ANIMATABLE_PROPERTY_REGISTRATION_WITH_DEFAULT(Toolkit, EffectsView, "effectColor", Color::WHITE, EFFECT_COLOR) DALI_TYPE_REGISTRATION_END() const Pixel::Format EFFECTS_VIEW_DEFAULT_PIXEL_FORMAT = Pixel::RGBA8888; -const float ARBITRARY_FIELD_OF_VIEW = Math::PI / 4.0f; -const Vector4 EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR( 1.0f, 1.0f, 1.0f, 0.0 ); +const float ARBITRARY_FIELD_OF_VIEW = Math::PI / 4.0f; +const Vector4 EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR(0.0f, 0.0f, 0.0f, 0.0); const bool EFFECTS_VIEW_REFRESH_ON_DEMAND(false); -#define DALI_COMPOSE_SHADER(STR) #STR - -const char* EFFECTS_VIEW_VERTEX_SOURCE = DALI_COMPOSE_SHADER( - attribute mediump vec2 aPosition;\n - varying mediump vec2 vTexCoord;\n - uniform mediump mat4 uMvpMatrix;\n - uniform mediump vec3 uSize;\n - uniform mediump vec3 effectOffset;\n - \n - void main()\n - {\n - mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\n - vertexPosition.xyz *= uSize;\n - vertexPosition.xyz += effectOffset;\n - vertexPosition = uMvpMatrix * vertexPosition;\n - \n - vTexCoord = aPosition + vec2(0.5);\n - gl_Position = vertexPosition;\n - }\n -); - -const char* EFFECTS_VIEW_FRAGMENT_SOURCE = DALI_COMPOSE_SHADER( - varying mediump vec2 vTexCoord;\n - uniform sampler2D sTexture;\n - uniform lowp vec4 effectColor;\n - \n - void main()\n - {\n - gl_FragColor = effectColor;\n - gl_FragColor.a *= texture2D( sTexture, vTexCoord).a;\n - }\n -); - -const float BLUR_KERNEL0[] = { 12.0f/16.0f, - 2.0f/16.0f, 2.0f/16.0f }; - -const float BLUR_KERNEL1[] = { 8.0f/16.0f, - 4.0f/16.0f, 4.0f/16.0f }; - -const float BLUR_KERNEL2[] = { 6.0f/16.0f, - 2.5f/16.0f, 2.5f/16.0f, - 1.5f/16.0f, 1.5f/16.0f, - 1.0f/16.0f, 1.0f/16.0f }; - -const float BLUR_KERNEL3[] = { 4.0f/16.0f, - 3.0f/16.0f, 2.0f/16.0f, - 2.0f/16.0f, 2.0f/16.0f, - 1.0f/16.0f, 1.0f/16.0f }; - -const float BLUR_KERNEL4[] = { 3.0f/16.0f, - 2.5f/16.0f, 2.5f/16.0f, - 1.75f/16.0f, 1.75f/16.0f, - 1.25f/16.0f, 1.25f/16.0f, - 1.0f/16.0f, 1.0f/16.0f }; - +// clang-format off +const float BLUR_KERNEL0[] = {12.0f/16.0f, + 2.0f/16.0f, 2.0f/16.0f}; + +const float BLUR_KERNEL1[] = {8.0f/16.0f, + 4.0f/16.0f, 4.0f/16.0f }; + +const float BLUR_KERNEL2[] = {6.0f/16.0f, + 2.5f/16.0f, 2.5f/16.0f, + 1.5f/16.0f, 1.5f/16.0f, + 1.0f/16.0f, 1.0f/16.0f}; + +const float BLUR_KERNEL3[] = {4.0f/16.0f, + 3.0f/16.0f, 2.0f/16.0f, + 2.0f/16.0f, 2.0f/16.0f, + 1.0f/16.0f, 1.0f/16.0f}; + +const float BLUR_KERNEL4[] = {3.0f/16.0f, + 2.5f/16.0f, 2.5f/16.0f, + 1.75f/16.0f, 1.75f/16.0f, + 1.25f/16.0f, 1.25f/16.0f, + 1.0f/16.0f, 1.0f/16.0f}; +// clang-format on } // namespace Toolkit::EffectsView EffectsView::New() { EffectsView* effectsView = new EffectsView; - Toolkit::EffectsView handle = Toolkit::EffectsView( *effectsView ); + Toolkit::EffectsView handle = Toolkit::EffectsView(*effectsView); // Second-phase init of the implementation // This can only be done after the CustomActor connection has been made... @@ -134,15 +102,15 @@ Toolkit::EffectsView EffectsView::New() } EffectsView::EffectsView() -: Control( ControlBehaviour( ACTOR_BEHAVIOUR_NONE ) ), +: Control(ControlBehaviour(CONTROL_BEHAVIOUR_DEFAULT)), mChildrenRoot(Actor::New()), - mBackgroundColor( EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR ), - mTargetSize( Vector2::ZERO ), - mLastSize( Vector2::ZERO ), + mBackgroundColor(EFFECTS_VIEW_DEFAULT_BACKGROUND_COLOR), + mTargetSize(Vector2::ZERO), + mLastSize(Vector2::ZERO), mEffectSize(0), - mEffectType( Toolkit::EffectsView::INVALID_TYPE ), - mPixelFormat( EFFECTS_VIEW_DEFAULT_PIXEL_FORMAT ), - mEnabled( false ), + mEffectType(Toolkit::EffectsView::INVALID_TYPE), + mPixelFormat(EFFECTS_VIEW_DEFAULT_PIXEL_FORMAT), + mEnabled(false), mRefreshOnDemand(EFFECTS_VIEW_REFRESH_ON_DEMAND) { } @@ -152,29 +120,27 @@ EffectsView::~EffectsView() RemoveFilters(); } -void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) +void EffectsView::SetType(Toolkit::EffectsView::EffectType type) { - if( mEffectType != type ) + if(mEffectType != type) { RemoveFilters(); Actor self = Self(); - Property::Map rendererMap; - rendererMap.Insert( "rendererType", "image" ); - switch( type ) + switch(type) { case Toolkit::EffectsView::DROP_SHADOW: { - mFilters.PushBack( new SpreadFilter ); - mFilters.PushBack( new BlurTwoPassFilter ); + mFilters.PushBack(new SpreadFilter); + mFilters.PushBack(new BlurTwoPassFilter); break; } case Toolkit::EffectsView::EMBOSS: { - mFilters.PushBack( new SpreadFilter ); - mFilters.PushBack( new EmbossFilter ); - mFilters.PushBack( new BlurTwoPassFilter ); + mFilters.PushBack(new SpreadFilter); + mFilters.PushBack(new EmbossFilter); + mFilters.PushBack(new BlurTwoPassFilter); break; } default: @@ -183,12 +149,6 @@ void EffectsView::SetType( Toolkit::EffectsView::EffectType type ) } } - Property::Map customShader; - customShader[ "vertexShader" ] = EFFECTS_VIEW_VERTEX_SOURCE; - customShader[ "fragmentShader" ] = EFFECTS_VIEW_FRAGMENT_SOURCE; - rendererMap[ "shader" ] = customShader; - InitializeControlRenderer( self, mRendererPostFilter, rendererMap ); - mEffectType = type; } } @@ -209,9 +169,9 @@ void EffectsView::Enable() void EffectsView::Disable() { // stop render tasks processing - // Note: render target resources are automatically freed since we set the Image::Unused flag RemoveRenderTasks(); - mEnabled = false; + mLastSize = Vector2::ZERO; // Ensure resources are reallocated on subsequent enable + mEnabled = false; } void EffectsView::Refresh() @@ -219,19 +179,19 @@ void EffectsView::Refresh() RefreshRenderTasks(); } -void EffectsView::SetRefreshOnDemand( bool onDemand ) +void EffectsView::SetRefreshOnDemand(bool onDemand) { mRefreshOnDemand = onDemand; RefreshRenderTasks(); } -void EffectsView::SetPixelFormat( Pixel::Format pixelFormat ) +void EffectsView::SetPixelFormat(Pixel::Format pixelFormat) { mPixelFormat = pixelFormat; } -void EffectsView::SetBackgroundColor( const Vector4& color ) +void EffectsView::SetBackgroundColor(const Vector4& color) { mBackgroundColor = color; } @@ -241,21 +201,21 @@ Vector4 EffectsView::GetBackgroundColor() const return mBackgroundColor; } -void EffectsView::SetEffectSize( int effectSize ) +void EffectsView::SetEffectSize(int effectSize) { mEffectSize = effectSize; - if( mEnabled ) + if(mEnabled) { - const size_t numFilters( mFilters.Size() ); - for( size_t i = 0; i < numFilters; ++i ) + const size_t numFilters(mFilters.Size()); + for(size_t i = 0; i < numFilters; ++i) { mFilters[i]->Disable(); } SetupFilters(); - for( size_t i = 0; i < numFilters; ++i ) + for(size_t i = 0; i < numFilters; ++i) { mFilters[i]->Enable(); } @@ -271,150 +231,181 @@ int EffectsView::GetEffectSize() void EffectsView::OnInitialize() { CustomActor self = Self(); - mChildrenRoot.SetParentOrigin( ParentOrigin::CENTER ); - self.Add( mChildrenRoot ); + mChildrenRoot.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + self.Add(mChildrenRoot); + + DevelControl::SetAccessibilityConstructor(self, [](Dali::Actor actor) { + return std::unique_ptr( + new DevelControl::ControlAccessible(actor, Dali::Accessibility::Role::FILLER)); + }); } void EffectsView::OnSizeSet(const Vector3& targetSize) { - Control::OnSizeSet( targetSize ); - mTargetSize = Vector2(targetSize); // if we are already on stage, need to update render target sizes now to reflect the new size of this actor if(mEnabled) { - if( mLastSize != Vector2::ZERO ) + if(mLastSize != Vector2::ZERO) { Disable(); } Enable(); } - mChildrenRoot.SetSize( targetSize ); + mChildrenRoot.SetProperty(Actor::Property::SIZE, targetSize); + + Control::OnSizeSet(targetSize); } -void EffectsView::OnStageConnection( int depth ) +void EffectsView::OnSceneConnection(int depth) { - Control::OnStageConnection( depth ); + Actor self(Self()); + + // Create renderers + mRendererPostFilter = CreateRenderer(SHADER_EFFECTS_VIEW_VERT, + SHADER_EFFECTS_VIEW_FRAG); + mRendererPostFilter.SetProperty(Dali::Renderer::Property::DEPTH_INDEX, DepthIndex::CONTENT); + self.AddRenderer(mRendererPostFilter); + + mRendererForChildren = CreateRenderer(BASIC_VERTEX_SOURCE, BASIC_FRAGMENT_SOURCE); + mRendererForChildren.SetProperty(Dali::Renderer::Property::DEPTH_INDEX, DepthIndex::CONTENT + 1); + self.AddRenderer(mRendererForChildren); Enable(); - Actor self = Self(); - if( mRendererPostFilter ) - { - mRendererPostFilter.SetOnStage( self ); - } - if( mRendererForChildren ) - { - mRendererForChildren.SetOnStage( self ); - } + Control::OnSceneConnection(depth); } -void EffectsView::OnStageDisconnection() +void EffectsView::OnSceneDisconnection() { + Actor self(Self()); + Disable(); - const size_t numFilters( mFilters.Size() ); - for( size_t i = 0; i < numFilters; ++i ) + const size_t numFilters(mFilters.Size()); + for(size_t i = 0; i < numFilters; ++i) { mFilters[i]->Disable(); } - Actor self = Self(); - if( mRendererPostFilter ) - { - mRendererPostFilter.SetOffStage( self ); - } - if( mRendererForChildren ) - { - mRendererForChildren.SetOffStage( self ); - } + // Remove renderers + self.RemoveRenderer(mRendererForChildren); + mRendererForChildren.Reset(); - Control::OnStageDisconnection(); + self.RemoveRenderer(mRendererPostFilter); + mRendererPostFilter.Reset(); + + Control::OnSceneDisconnection(); } -void EffectsView::OnChildAdd( Actor& child ) +void EffectsView::OnChildAdd(Actor& child) { - Control::OnChildAdd( child ); - - if( child != mChildrenRoot && child != mCameraForChildren ) + if(child != mChildrenRoot && child != mCameraForChildren) { - mChildrenRoot.Add( child ); + mChildrenRoot.Add(child); } + + Control::OnChildAdd(child); } -void EffectsView::OnChildRemove( Actor& child ) +void EffectsView::OnChildRemove(Actor& child) { - mChildrenRoot.Remove( child ); + mChildrenRoot.Remove(child); - Control::OnChildRemove( child ); + Control::OnChildRemove(child); } void EffectsView::SetupFilters() { - switch( mEffectType ) + switch(mEffectType) { case Toolkit::EffectsView::DROP_SHADOW: { - SpreadFilter* spreadFilter = static_cast< SpreadFilter* >( mFilters[0] ); - spreadFilter->SetInputImage( mImageForChildren ); - spreadFilter->SetOutputImage( mImagePostFilter ); - spreadFilter->SetRootActor( mChildrenRoot ); - spreadFilter->SetBackgroundColor( mBackgroundColor ); - spreadFilter->SetPixelFormat( mPixelFormat ); - spreadFilter->SetSize( mTargetSize ); - spreadFilter->SetSpread( mEffectSize ); - - BlurTwoPassFilter* blurFilter = static_cast< BlurTwoPassFilter* >( mFilters[1] ); - blurFilter->SetInputImage( mImagePostFilter ); - blurFilter->SetOutputImage( mImagePostFilter ); - blurFilter->SetRootActor( mChildrenRoot ); - blurFilter->SetBackgroundColor( mBackgroundColor ); - blurFilter->SetPixelFormat( mPixelFormat ); - blurFilter->SetSize( mTargetSize ); + SpreadFilter* spreadFilter = static_cast(mFilters[0]); + spreadFilter->SetInputTexture(mFrameBufferForChildren.GetColorTexture()); + spreadFilter->SetOutputFrameBuffer(mFrameBufferPostFilter); + spreadFilter->SetRootActor(mChildrenRoot); + spreadFilter->SetBackgroundColor(mBackgroundColor); + spreadFilter->SetPixelFormat(mPixelFormat); + spreadFilter->SetSize(mTargetSize); + spreadFilter->SetSpread(mEffectSize); + + BlurTwoPassFilter* blurFilter = static_cast(mFilters[1]); + blurFilter->SetInputTexture(mFrameBufferPostFilter.GetColorTexture()); + blurFilter->SetOutputFrameBuffer(mFrameBufferPostFilter); + blurFilter->SetRootActor(mChildrenRoot); + blurFilter->SetBackgroundColor(mBackgroundColor); + blurFilter->SetPixelFormat(mPixelFormat); + blurFilter->SetSize(mTargetSize); const float* kernel(NULL); - size_t kernelSize(0); - switch( mEffectSize ) + size_t kernelSize(0); + switch(mEffectSize) { - case 4: { kernel = BLUR_KERNEL4; kernelSize = sizeof(BLUR_KERNEL4)/sizeof(BLUR_KERNEL4[0]); break; } - case 3: { kernel = BLUR_KERNEL3; kernelSize = sizeof(BLUR_KERNEL3)/sizeof(BLUR_KERNEL3[0]); break; } - case 2: { kernel = BLUR_KERNEL2; kernelSize = sizeof(BLUR_KERNEL2)/sizeof(BLUR_KERNEL2[0]); break; } - case 1: { kernel = BLUR_KERNEL1; kernelSize = sizeof(BLUR_KERNEL1)/sizeof(BLUR_KERNEL1[0]); break; } + case 4: + { + kernel = BLUR_KERNEL4; + kernelSize = sizeof(BLUR_KERNEL4) / sizeof(BLUR_KERNEL4[0]); + break; + } + case 3: + { + kernel = BLUR_KERNEL3; + kernelSize = sizeof(BLUR_KERNEL3) / sizeof(BLUR_KERNEL3[0]); + break; + } + case 2: + { + kernel = BLUR_KERNEL2; + kernelSize = sizeof(BLUR_KERNEL2) / sizeof(BLUR_KERNEL2[0]); + break; + } + case 1: + { + kernel = BLUR_KERNEL1; + kernelSize = sizeof(BLUR_KERNEL1) / sizeof(BLUR_KERNEL1[0]); + break; + } case 0: - default: { kernel = BLUR_KERNEL0; kernelSize = sizeof(BLUR_KERNEL0)/sizeof(BLUR_KERNEL0[0]); break; } + default: + { + kernel = BLUR_KERNEL0; + kernelSize = sizeof(BLUR_KERNEL0) / sizeof(BLUR_KERNEL0[0]); + break; + } } - blurFilter->CreateKernel( kernel, kernelSize ); + blurFilter->CreateKernel(kernel, kernelSize); break; } case Toolkit::EffectsView::EMBOSS: { - SpreadFilter* spreadFilter = static_cast< SpreadFilter* >( mFilters[0] ); - spreadFilter->SetInputImage( mImageForChildren ); - spreadFilter->SetOutputImage( mImagePostFilter ); - spreadFilter->SetRootActor( mChildrenRoot ); - spreadFilter->SetBackgroundColor( mBackgroundColor ); - spreadFilter->SetPixelFormat( Pixel::RGBA8888 ); - spreadFilter->SetSize( mTargetSize ); - spreadFilter->SetSpread( mEffectSize ); - - EmbossFilter* embossFilter = static_cast< EmbossFilter* >( mFilters[1] ); - embossFilter->SetInputImage( mImagePostFilter ); - embossFilter->SetOutputImage( mImagePostFilter ); - embossFilter->SetRootActor( mChildrenRoot ); - embossFilter->SetBackgroundColor( mBackgroundColor ); - embossFilter->SetPixelFormat( Pixel::RGBA8888 ); - embossFilter->SetSize( mTargetSize ); - - BlurTwoPassFilter* blurFilter = static_cast< BlurTwoPassFilter* >( mFilters[2] ); - blurFilter->SetInputImage( mImagePostFilter ); - blurFilter->SetOutputImage( mImagePostFilter ); - blurFilter->SetRootActor( mChildrenRoot ); - blurFilter->SetBackgroundColor( Vector4( 0.5f, 0.5f, 0.5f, 0.0 ) ); - blurFilter->SetPixelFormat( Pixel::RGBA8888 ); - blurFilter->SetSize( mTargetSize ); - blurFilter->CreateKernel( BLUR_KERNEL0, sizeof(BLUR_KERNEL0)/sizeof(BLUR_KERNEL0[0]) ); + SpreadFilter* spreadFilter = static_cast(mFilters[0]); + spreadFilter->SetInputTexture(mFrameBufferForChildren.GetColorTexture()); + spreadFilter->SetOutputFrameBuffer(mFrameBufferPostFilter); + spreadFilter->SetRootActor(mChildrenRoot); + spreadFilter->SetBackgroundColor(mBackgroundColor); + spreadFilter->SetPixelFormat(Pixel::RGBA8888); + spreadFilter->SetSize(mTargetSize); + spreadFilter->SetSpread(mEffectSize); + + EmbossFilter* embossFilter = static_cast(mFilters[1]); + embossFilter->SetInputTexture(mFrameBufferPostFilter.GetColorTexture()); + embossFilter->SetOutputFrameBuffer(mFrameBufferPostFilter); + embossFilter->SetRootActor(mChildrenRoot); + embossFilter->SetBackgroundColor(mBackgroundColor); + embossFilter->SetPixelFormat(Pixel::RGBA8888); + embossFilter->SetSize(mTargetSize); + + BlurTwoPassFilter* blurFilter = static_cast(mFilters[2]); + blurFilter->SetInputTexture(mFrameBufferPostFilter.GetColorTexture()); + blurFilter->SetOutputFrameBuffer(mFrameBufferPostFilter); + blurFilter->SetRootActor(mChildrenRoot); + blurFilter->SetBackgroundColor(Vector4(0.5f, 0.5f, 0.5f, 0.0)); + blurFilter->SetPixelFormat(Pixel::RGBA8888); + blurFilter->SetSize(mTargetSize); + blurFilter->CreateKernel(BLUR_KERNEL0, sizeof(BLUR_KERNEL0) / sizeof(BLUR_KERNEL0[0])); break; } @@ -424,6 +415,7 @@ void EffectsView::SetupFilters() } } } + void EffectsView::AllocateResources() { if(mTargetSize != mLastSize) @@ -431,17 +423,19 @@ void EffectsView::AllocateResources() mLastSize = mTargetSize; SetupCameras(); - Actor self( Self() ); + Actor self(Self()); + + mFrameBufferForChildren = FrameBuffer::New(mTargetSize.width, mTargetSize.height, FrameBuffer::Attachment::NONE); + Texture textureForChildren = Texture::New(TextureType::TEXTURE_2D, mPixelFormat, unsigned(mTargetSize.width), unsigned(mTargetSize.height)); + mFrameBufferForChildren.AttachColorTexture(textureForChildren); + + SetRendererTexture(mRendererForChildren, textureForChildren); - mImageForChildren = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat, Dali::Image::UNUSED ); - InitializeControlRenderer( self, mRendererForChildren, mImageForChildren ); - mRendererForChildren.SetDepthIndex( DepthIndex::CONTENT+1 ); + mFrameBufferPostFilter = FrameBuffer::New(mTargetSize.width, mTargetSize.height, FrameBuffer::Attachment::NONE); + Texture texturePostFilter = Texture::New(TextureType::TEXTURE_2D, mPixelFormat, unsigned(mTargetSize.width), unsigned(mTargetSize.height)); + mFrameBufferPostFilter.AttachColorTexture(texturePostFilter); - mImagePostFilter = FrameBufferImage::New( mTargetSize.width, mTargetSize.height, mPixelFormat, Dali::Image::UNUSED ); - TextureSet textureSet = TextureSet::New(); - textureSet.SetImage( 0u, mImagePostFilter); - self.GetRendererAt( 0 ).SetTextures( textureSet ); - mRendererPostFilter.SetDepthIndex( DepthIndex::CONTENT ); + SetRendererTexture(mRendererPostFilter, texturePostFilter); SetupFilters(); } @@ -449,30 +443,30 @@ void EffectsView::AllocateResources() void EffectsView::SetupCameras() { - if( !mCameraForChildren ) + if(!mCameraForChildren) { // Create a camera for the children render, corresponding to its render target size mCameraForChildren = CameraActor::New(mTargetSize); - mCameraForChildren.SetParentOrigin(ParentOrigin::CENTER); - mCameraForChildren.SetInvertYAxis( true ); - Self().Add( mCameraForChildren ); + mCameraForChildren.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER); + mCameraForChildren.SetInvertYAxis(true); + Self().Add(mCameraForChildren); } else { // place the camera for the children render, corresponding to its render target size - const float cameraPosScale( 0.5f / tanf(ARBITRARY_FIELD_OF_VIEW * 0.5f) ); + const float cameraPosScale(0.5f / tanf(ARBITRARY_FIELD_OF_VIEW * 0.5f)); mCameraForChildren.SetFieldOfView(ARBITRARY_FIELD_OF_VIEW); mCameraForChildren.SetNearClippingPlane(1.0f); mCameraForChildren.SetAspectRatio(mTargetSize.width / mTargetSize.height); mCameraForChildren.SetType(Dali::Camera::FREE_LOOK); // camera orientation based solely on actor - mCameraForChildren.SetPosition(0.0f, 0.0f, mTargetSize.height * cameraPosScale); - mCameraForChildren.SetZ( mTargetSize.height * cameraPosScale ); + mCameraForChildren.SetProperty(Actor::Property::POSITION, Vector3(0.0f, 0.0f, mTargetSize.height * cameraPosScale)); + mCameraForChildren.SetProperty(Actor::Property::POSITION_Z, mTargetSize.height * cameraPosScale); } } void EffectsView::CreateRenderTasks() { - if( mTargetSize == Vector2::ZERO ) + if(mTargetSize == Vector2::ZERO) { return; } @@ -480,18 +474,18 @@ void EffectsView::CreateRenderTasks() // create render task to render our child actors to offscreen buffer mRenderTaskForChildren = taskList.CreateTask(); - mRenderTaskForChildren.SetRefreshRate( mRefreshOnDemand ? RenderTask::REFRESH_ONCE : RenderTask::REFRESH_ALWAYS ); - mRenderTaskForChildren.SetSourceActor( mChildrenRoot ); + mRenderTaskForChildren.SetRefreshRate(mRefreshOnDemand ? RenderTask::REFRESH_ONCE : RenderTask::REFRESH_ALWAYS); + mRenderTaskForChildren.SetSourceActor(mChildrenRoot); mRenderTaskForChildren.SetExclusive(true); - mRenderTaskForChildren.SetInputEnabled( false ); - mRenderTaskForChildren.SetClearColor( mBackgroundColor ); - mRenderTaskForChildren.SetClearEnabled( true ); - mRenderTaskForChildren.SetTargetFrameBuffer( mImageForChildren ); + mRenderTaskForChildren.SetInputEnabled(false); + mRenderTaskForChildren.SetClearColor(mBackgroundColor); + mRenderTaskForChildren.SetClearEnabled(true); + mRenderTaskForChildren.SetFrameBuffer(mFrameBufferForChildren); mRenderTaskForChildren.SetCameraActor(mCameraForChildren); // use camera that covers render target exactly // Enable image filters - const size_t numFilters( mFilters.Size() ); - for( size_t i = 0; i < numFilters; ++i ) + const size_t numFilters(mFilters.Size()); + for(size_t i = 0; i < numFilters; ++i) { mFilters[i]->Enable(); } @@ -499,7 +493,7 @@ void EffectsView::CreateRenderTasks() void EffectsView::RemoveRenderTasks() { - if( mTargetSize == Vector2::ZERO ) + if(mTargetSize == Vector2::ZERO) { return; } @@ -508,8 +502,8 @@ void EffectsView::RemoveRenderTasks() taskList.RemoveTask(mRenderTaskForChildren); - const size_t numFilters( mFilters.Size() ); - for( size_t i = 0; i < numFilters; ++i ) + const size_t numFilters(mFilters.Size()); + for(size_t i = 0; i < numFilters; ++i) { mFilters[i]->Disable(); } @@ -519,13 +513,13 @@ void EffectsView::RefreshRenderTasks() { RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); - if( mRenderTaskForChildren ) + if(mRenderTaskForChildren) { - mRenderTaskForChildren.SetRefreshRate( mRefreshOnDemand ? RenderTask::REFRESH_ONCE : RenderTask::REFRESH_ALWAYS ); + mRenderTaskForChildren.SetRefreshRate(mRefreshOnDemand ? RenderTask::REFRESH_ONCE : RenderTask::REFRESH_ALWAYS); } - const size_t numFilters( mFilters.Size() ); - for( size_t i = 0; i < numFilters; ++i ) + const size_t numFilters(mFilters.Size()); + for(size_t i = 0; i < numFilters; ++i) { mFilters[i]->Refresh(); } @@ -533,28 +527,28 @@ void EffectsView::RefreshRenderTasks() void EffectsView::RemoveFilters() { - const size_t numFilters( mFilters.Size() ); - for( size_t i = 0; i < numFilters; ++i ) + const size_t numFilters(mFilters.Size()); + for(size_t i = 0; i < numFilters; ++i) { delete mFilters[i]; } mFilters.Release(); } -void EffectsView::SetProperty( BaseObject* object, Property::Index index, const Property::Value& value ) +void EffectsView::SetProperty(BaseObject* object, Property::Index index, const Property::Value& value) { - Toolkit::EffectsView effectsView = Toolkit::EffectsView::DownCast( Dali::BaseHandle( object ) ); + Toolkit::EffectsView effectsView = Toolkit::EffectsView::DownCast(Dali::BaseHandle(object)); - if ( effectsView ) + if(effectsView) { - switch ( index ) + switch(index) { case Toolkit::EffectsView::Property::EFFECT_SIZE: { int effectSize; - if( value.Get( effectSize ) ) + if(value.Get(effectSize)) { - GetImpl( effectsView ).SetEffectSize( effectSize ); + GetImpl(effectsView).SetEffectSize(effectSize); } break; } @@ -566,20 +560,20 @@ void EffectsView::SetProperty( BaseObject* object, Property::Index index, const } } -Property::Value EffectsView::GetProperty( BaseObject* object, Property::Index propertyIndex ) +Property::Value EffectsView::GetProperty(BaseObject* object, Property::Index propertyIndex) { Property::Value value; - Toolkit::EffectsView imageview = Toolkit::EffectsView::DownCast( Dali::BaseHandle( object ) ); + Toolkit::EffectsView imageview = Toolkit::EffectsView::DownCast(Dali::BaseHandle(object)); - if ( imageview ) + if(imageview) { - EffectsView& impl = GetImpl( imageview ); - switch ( propertyIndex ) + EffectsView& impl = GetImpl(imageview); + switch(propertyIndex) { case Toolkit::EffectsView::Property::EFFECT_SIZE: { - value = impl.GetEffectSize(); + value = impl.GetEffectSize(); break; } default: