X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ffilters%2Femboss-filter.cpp;h=7ea7fe1dedb733ad34f877bf13c16516417dfeda;hb=70510385d88cfbd5c232117d8436ca74c523e172;hp=d8349daa5553a0478bb6287281ee220ce87b88be;hpb=f3e8b0bf4eba4e2f76294c2ed3d83a4cc9ca4613;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/filters/emboss-filter.cpp b/dali-toolkit/internal/filters/emboss-filter.cpp index d8349da..7ea7fe1 100644 --- a/dali-toolkit/internal/filters/emboss-filter.cpp +++ b/dali-toolkit/internal/filters/emboss-filter.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -21,13 +21,14 @@ // EXTERNAL INCLUDES #include #include -#include +#include #include #include #include // INTERNAL INCLUDES #include +#include namespace Dali { @@ -41,35 +42,6 @@ namespace Internal namespace { -const char* EMBOSS_FRAGMENT_SOURCE = -{ - "precision highp float;\n" - "varying mediump vec2 vTexCoord;\n" - "uniform sampler2D sTexture;\n" - "uniform vec2 uTexScale;\n" - "uniform vec3 uCoefficient;\n" - "\n" - "void main()\n" - "{\n" - " vec4 color = uCoefficient.x * texture2D( sTexture, vTexCoord + vec2(0.0, -uTexScale.y) );\n" - " color += uCoefficient.y * texture2D( sTexture, vTexCoord );\n" - " color += uCoefficient.z * texture2D( sTexture, vTexCoord + vec2(0.0, uTexScale.y) );\n" - " gl_FragColor = color;\n" - "}\n" -}; - -const char* const COMPOSITE_FRAGMENT_SOURCE = -{ - "varying mediump vec2 vTexCoord;\n" - "uniform sampler2D sTexture;\n" - "uniform lowp vec4 uEffectColor;\n" - "void main()\n" - "{\n" - " gl_FragColor = uEffectColor;\n" - " gl_FragColor.a *= texture2D( sTexture, vTexCoord).a;\n" - "}\n" -}; - const char* const TEX_SCALE_UNIFORM_NAME( "uTexScale" ); const char* const COEFFICIENT_UNIFORM_NAME( "uCoefficient" ); const char* const COLOR_UNIFORM_NAME( "uEffectColor" ); @@ -97,41 +69,41 @@ void EmbossFilter::Enable() // create actor to render input with applied emboss effect mActorForInput1 = Actor::New(); - mActorForInput1.SetParentOrigin( ParentOrigin::CENTER ); - mActorForInput1.SetSize(mTargetSize); + mActorForInput1.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mActorForInput1.SetProperty( Actor::Property::SIZE, mTargetSize); Vector2 textureScale( 1.5f/mTargetSize.width, 1.5f/mTargetSize.height); mActorForInput1.RegisterProperty( TEX_SCALE_UNIFORM_NAME, textureScale ); mActorForInput1.RegisterProperty( COEFFICIENT_UNIFORM_NAME, Vector3( 2.f, -1.f, -1.f ) ); // set EMBOSS custom shader - Renderer renderer1 = CreateRenderer( BASIC_VERTEX_SOURCE, EMBOSS_FRAGMENT_SOURCE ); + Renderer renderer1 = CreateRenderer( BASIC_VERTEX_SOURCE, SHADER_EMBOSS_FILTER_SHADER_FRAG ); SetRendererTexture( renderer1, mInputTexture ); mActorForInput1.AddRenderer( renderer1 ); mRootActor.Add( mActorForInput1 ); mActorForInput2 = Actor::New(); - mActorForInput2.SetParentOrigin( ParentOrigin::CENTER ); - mActorForInput2.SetSize(mTargetSize); + mActorForInput2.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mActorForInput2.SetProperty( Actor::Property::SIZE, mTargetSize); mActorForInput2.RegisterProperty( TEX_SCALE_UNIFORM_NAME, textureScale ); mActorForInput2.RegisterProperty( COEFFICIENT_UNIFORM_NAME, Vector3( -1.f, -1.f, 2.f ) ); // set EMBOSS custom shader - Renderer renderer2 = CreateRenderer( BASIC_VERTEX_SOURCE, EMBOSS_FRAGMENT_SOURCE ); + Renderer renderer2 = CreateRenderer( BASIC_VERTEX_SOURCE, SHADER_EMBOSS_FILTER_SHADER_FRAG ); SetRendererTexture( renderer2, mInputTexture ); mActorForInput2.AddRenderer( renderer2 ); mRootActor.Add( mActorForInput2 ); mActorForComposite = Actor::New(); - mActorForComposite.SetParentOrigin( ParentOrigin::CENTER ); - mActorForComposite.SetSize(mTargetSize); - mActorForComposite.SetColor( Color::BLACK ); + mActorForComposite.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER ); + mActorForComposite.SetProperty( Actor::Property::SIZE, mTargetSize); + mActorForComposite.SetProperty( Actor::Property::COLOR, Color::BLACK ); mRootActor.Add( mActorForComposite ); - mRendererForEmboss1 = CreateRenderer( BASIC_VERTEX_SOURCE, COMPOSITE_FRAGMENT_SOURCE ); + mRendererForEmboss1 = CreateRenderer( BASIC_VERTEX_SOURCE, SHADER_EMBOSS_FILTER_COMPOSITE_SHADER_FRAG ); SetRendererTexture( mRendererForEmboss1, mFrameBufferForEmboss1 ); mRendererForEmboss1.RegisterProperty( COLOR_UNIFORM_NAME, Color::BLACK ); mActorForComposite.AddRenderer( mRendererForEmboss1 ); - mRendererForEmboss2 = CreateRenderer( BASIC_VERTEX_SOURCE, COMPOSITE_FRAGMENT_SOURCE ); + mRendererForEmboss2 = CreateRenderer( BASIC_VERTEX_SOURCE, SHADER_EMBOSS_FILTER_COMPOSITE_SHADER_FRAG ); SetRendererTexture( mRendererForEmboss2, mFrameBufferForEmboss2 ); mRendererForEmboss2.RegisterProperty( COLOR_UNIFORM_NAME, Color::WHITE ); mActorForComposite.AddRenderer( mRendererForEmboss2 ); @@ -211,15 +183,15 @@ void EmbossFilter::SetSize( const Vector2& size ) mTargetSize = size; if( mActorForInput1 ) { - mActorForInput1.SetSize(mTargetSize); + mActorForInput1.SetProperty( Actor::Property::SIZE, mTargetSize); } if( mActorForInput2 ) { - mActorForInput2.SetSize(mTargetSize); + mActorForInput2.SetProperty( Actor::Property::SIZE, mTargetSize); } if( mActorForComposite ) { - mActorForComposite.SetSize(mTargetSize); + mActorForComposite.SetProperty( Actor::Property::SIZE, mTargetSize); } }