X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fcontrols%2Fbubble-effect%2Fbubble-emitter-impl.cpp;h=512640869995401c949b9a1a1580daf9238f7c2d;hp=1f5b966782c4b965abe5f82da0934ecf83ba4401;hb=ac03f72d0786ee02540106f1bc887a32f17fa786;hpb=6c6cdc0f1c2e6373e4eb3bf74397abba5befe026 diff --git a/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp b/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp index 1f5b966..5126408 100644 --- a/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp +++ b/dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp @@ -27,6 +27,8 @@ #include #include #include +#include + namespace { @@ -140,9 +142,9 @@ void BubbleEmitter::OnInitialize() Shader bubbleShader = CreateBubbleShader (mNumBubblePerActor ); - mMaterial = Material::New( bubbleShader ); - mMaterial.AddTexture( mEffectImage, "sBackground" ); - mMaterial.AddTexture( mShapeImage, "sBubbleShape" ); + mTextureSet = TextureSet::New(); + mTextureSet.SetImage( 0u, mEffectImage ); + mTextureSet.SetImage( 1u, mShapeImage ); mBubbleActors.resize( mNumActor ); @@ -150,7 +152,7 @@ void BubbleEmitter::OnInitialize() for(unsigned int i=0; i < mNumActor; i++ ) { mBubbleActors[i] = new BubbleActor( mNumBubblePerActor, mMovementArea ); - (mBubbleActors[i])->MakeRenderable( mMeshGeometry, mMaterial ); + (mBubbleActors[i])->MakeRenderable( mMeshGeometry, mTextureSet, bubbleShader ); mBubbleRoot.Add( (mBubbleActors[i])->GetMeshActor() ); } @@ -174,13 +176,15 @@ void BubbleEmitter::SetBackground( Image bgImage, const Vector3& hsvDelta ) mBackgroundImage = bgImage; mHSVDelta = hsvDelta; - ImageActor sourceActor = ImageActor::New( bgImage ); + Toolkit::ImageView sourceActor = Toolkit::ImageView::New( bgImage ); sourceActor.SetSize( mMovementArea ); sourceActor.SetParentOrigin(ParentOrigin::CENTER); - Stage::GetCurrent().Add( sourceActor ); - ShaderEffect colorAdjuster = CreateColorAdjuster( hsvDelta, true /*ignore alpha to make bubble color always*/ ); - sourceActor.SetShaderEffect( colorAdjuster ); + Property::Map colorAdjuster = CreateColorAdjuster(); + sourceActor.SetProperty( Toolkit::ImageView::Property::IMAGE, colorAdjuster); + SetColorAdjusterProperties( sourceActor, hsvDelta, true /*ignore alpha to make bubble color always*/ ); + + Stage::GetCurrent().Add( sourceActor ); RenderTaskList taskList = Stage::GetCurrent().GetRenderTaskList(); RenderTask task = taskList.CreateTask(); @@ -196,7 +200,7 @@ void BubbleEmitter::SetBackground( Image bgImage, const Vector3& hsvDelta ) void BubbleEmitter::SetShapeImage( Image shapeImage ) { - mMaterial.SetTextureImage( 1, shapeImage ); + mTextureSet.SetImage( 1, shapeImage ); } void BubbleEmitter::SetBubbleScale( float scale ) @@ -231,15 +235,6 @@ void BubbleEmitter::OnRenderFinished(RenderTask& source) { mRenderTaskRunning = false; Actor sourceActor = source.GetSourceActor(); - if( sourceActor ) - { - ImageActor renderable = ImageActor::DownCast( sourceActor ); - if( renderable ) - { - renderable.RemoveShaderEffect(); - } - } - Stage stage = Stage::GetCurrent(); stage.Remove(sourceActor); stage.GetRenderTaskList().RemoveTask(source); @@ -281,7 +276,7 @@ Geometry BubbleEmitter::CreateGeometry( unsigned int numOfPatch ) vertexData.reserve( numVertex ); unsigned int numIndex = numOfPatch*6u; - Vector indexData; + Vector indexData; indexData.Reserve( numIndex ); for(unsigned int i = 0; i < numOfPatch; i++) @@ -294,7 +289,7 @@ Geometry BubbleEmitter::CreateGeometry( unsigned int numOfPatch ) vertexData.push_back( Vertex( index, Vector2(curSize,curSize), Vector2(1.f,1.f) ) ); vertexData.push_back( Vertex( index, Vector2(curSize,0.f), Vector2(1.f,0.f) ) ); - unsigned int idx = index * 4; + unsigned short idx = index * 4; indexData.PushBack( idx ); indexData.PushBack( idx+1 ); indexData.PushBack( idx+2 ); @@ -310,14 +305,9 @@ Geometry BubbleEmitter::CreateGeometry( unsigned int numOfPatch ) PropertyBuffer vertices = PropertyBuffer::New( vertexFormat ); vertices.SetData( &vertexData[0], numVertex ); - Property::Map indexFormat; - indexFormat["indices"] = Property::INTEGER; - PropertyBuffer indices = PropertyBuffer::New( indexFormat ); - indices.SetData( &indexData[0], numIndex ); - Geometry geometry = Geometry::New(); geometry.AddVertexBuffer( vertices ); - geometry.SetIndexBuffer( indices ); + geometry.SetIndexBuffer( &indexData[0], numIndex ); return geometry; }