/*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 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.
#include <cmath>
#include <dali/public-api/animation/constraint.h>
#include <dali/public-api/common/stage.h>
-#include <dali/public-api/object/type-registry.h>
#include <dali/public-api/object/property-map.h>
+#include <dali/public-api/object/type-registry.h>
#include <dali/public-api/object/type-registry-helper.h>
-#include <dali/devel-api/rendering/renderer.h>
+#include <dali/public-api/rendering/renderer.h>
#include <dali/devel-api/scripting/scripting.h>
#include <dali/integration-api/debug.h>
// INTERNAL_INCLUDES
-#include <dali-toolkit/internal/controls/renderers/control-renderer-impl.h>
+#include <dali-toolkit/internal/visuals/visual-base-impl.h>
namespace //Unnamed namespace
{
} // unnamed namespace
SuperBlurView::SuperBlurView( unsigned int blurLevels )
-: Control( ControlBehaviour( DISABLE_SIZE_NEGOTIATION ) ),
+: Control( ControlBehaviour( DISABLE_SIZE_NEGOTIATION | DISABLE_STYLE_CHANGE_SIGNALS ) ),
mTargetSize( Vector2::ZERO ),
mBlurStrengthPropertyIndex(Property::INVALID_INDEX),
mBlurLevels( blurLevels ),
DALI_ASSERT_ALWAYS( mBlurLevels > 0 && " Minimal blur level is one, otherwise no blur is needed" );
mGaussianBlurView.assign( blurLevels, Toolkit::GaussianBlurView() );
mBlurredImage.assign( blurLevels, FrameBufferImage() );
- mRenderers.assign( blurLevels+1, Toolkit::ControlRenderer() );
+ mVisuals.assign( blurLevels+1, Toolkit::Visual::Base() );
}
SuperBlurView::~SuperBlurView()
mInputImage = inputImage;
Actor self( Self() );
- InitializeControlRenderer( self, mRenderers[0], mInputImage );
- mRenderers[0].SetDepthIndex(0);
- SetShaderEffect( mRenderers[0] );
+ InitializeVisual( self, mVisuals[0], mInputImage );
+ mVisuals[0].SetDepthIndex(0);
+ SetShaderEffect( mVisuals[0] );
if( self.OnStage() )
{
- mRenderers[0].SetOnStage( self );
+ mVisuals[0].SetOnStage( self );
}
BlurImage( 0, inputImage);
mResourcesCleared = true;
}
}
-void SuperBlurView::SetShaderEffect( Toolkit::ControlRenderer& renderer )
+void SuperBlurView::SetShaderEffect( Toolkit::Visual::Base& visual )
{
Property::Map shaderMap;
std::stringstream verterShaderString;
shaderMap[ "fragmentShader" ] = FRAGMENT_SHADER;
- Internal::ControlRenderer& rendererImpl = GetImplementation( renderer );
+ Internal::Visual::Base& rendererImpl = Toolkit::GetImplementation( visual );
rendererImpl.SetCustomShader( shaderMap );
}
{
mTargetSize = Vector2(targetSize);
- Toolkit::RendererFactory rendererFactory = Toolkit::RendererFactory::Get();
Actor self = Self();
for( unsigned int i = 1; i <= mBlurLevels; i++ )
{
float exponent = static_cast<float>(i);
mBlurredImage[i-1] = FrameBufferImage::New( mTargetSize.width/std::pow(2.f,exponent) , mTargetSize.height/std::pow(2.f,exponent),
- GAUSSIAN_BLUR_RENDER_TARGET_PIXEL_FORMAT, Dali::Image::NEVER );
- InitializeControlRenderer( self, mRenderers[i], mBlurredImage[i - 1] );
- mRenderers[ i ].SetDepthIndex( i );
- SetShaderEffect( mRenderers[ i ] );
+ GAUSSIAN_BLUR_RENDER_TARGET_PIXEL_FORMAT );
+ InitializeVisual( self, mVisuals[i], mBlurredImage[i - 1] );
+ mVisuals[ i ].SetDepthIndex( i );
+ SetShaderEffect( mVisuals[ i ] );
}
if( mInputImage )
{
for( unsigned int i = 1; i <= mBlurLevels; i++ )
{
- mRenderers[i].SetOnStage( self );
+ mVisuals[i].SetOnStage( self );
}
}
}
}
Actor self = Self();
- if( mRenderers[0] )
+ if( mVisuals[0] )
{
- mRenderers[0].SetOnStage( self );
+ mVisuals[0].SetOnStage( self );
}
for(unsigned int i=1; i<=mBlurLevels;i++)
{
- if( mRenderers[i] )
+ if( mVisuals[i] )
{
- mRenderers[i].SetOnStage( self );
+ mVisuals[i].SetOnStage( self );
}
Renderer renderer = self.GetRendererAt( i );
Actor self = Self();
for(unsigned int i=0; i<mBlurLevels+1;i++)
{
- mRenderers[i].SetOffStage( self );
+ mVisuals[i].SetOffStage( self );
}
Control::OnStageDisconnection();