2 * Copyright (c) 2018 Samsung Electronics Co., Ltd.
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #include <dali/devel-api/adaptor-framework/vector-animation-renderer.h>
19 #include <dali/public-api/object/base-object.h>
20 #include <toolkit-application.h>
31 class VectorAnimationRenderer: public Dali::BaseObject
35 VectorAnimationRenderer( const std::string& url )
43 void SetRenderer( Dali::Renderer renderer )
48 void SetSize( uint32_t width, uint32_t height )
63 void Render( uint32_t frameNumber )
67 uint32_t GetTotalFrameNumber() const
72 float GetFrameRate() const
80 Dali::Renderer mRenderer;
86 inline VectorAnimationRenderer& GetImplementation( Dali::VectorAnimationRenderer& renderer )
88 DALI_ASSERT_ALWAYS( renderer && "VectorAnimationRenderer handle is empty." );
89 BaseObject& handle = renderer.GetBaseObject();
90 return static_cast< Internal::Adaptor::VectorAnimationRenderer& >( handle );
93 inline const VectorAnimationRenderer& GetImplementation( const Dali::VectorAnimationRenderer& renderer )
95 DALI_ASSERT_ALWAYS( renderer && "VectorAnimationRenderer handle is empty." );
96 const BaseObject& handle = renderer.GetBaseObject();
97 return static_cast< const Internal::Adaptor::VectorAnimationRenderer& >( handle );
100 } // namespace Adaptor
102 } // namespace Internal
105 /********************************************************************************/
106 /********************************* PUBLIC CLASS *******************************/
107 /********************************************************************************/
109 VectorAnimationRenderer VectorAnimationRenderer::New( const std::string& url )
111 Internal::Adaptor::VectorAnimationRenderer* animationRenderer = new Internal::Adaptor::VectorAnimationRenderer( url );
113 return VectorAnimationRenderer( animationRenderer );
116 VectorAnimationRenderer::VectorAnimationRenderer()
120 VectorAnimationRenderer::~VectorAnimationRenderer()
124 VectorAnimationRenderer::VectorAnimationRenderer( Internal::Adaptor::VectorAnimationRenderer* internal )
125 : BaseHandle( internal )
129 VectorAnimationRenderer::VectorAnimationRenderer( const VectorAnimationRenderer& handle )
130 : BaseHandle( handle )
134 VectorAnimationRenderer& VectorAnimationRenderer::operator=( const VectorAnimationRenderer& rhs )
136 BaseHandle::operator=( rhs );
140 void VectorAnimationRenderer::SetRenderer( Renderer renderer )
142 Internal::Adaptor::GetImplementation( *this ).SetRenderer( renderer );
145 void VectorAnimationRenderer::SetSize( uint32_t width, uint32_t height )
147 Internal::Adaptor::GetImplementation( *this ).SetSize( width, height );
150 bool VectorAnimationRenderer::StartRender()
152 return Internal::Adaptor::GetImplementation( *this ).StartRender();
155 void VectorAnimationRenderer::StopRender()
157 Internal::Adaptor::GetImplementation( *this ).StopRender();
160 void VectorAnimationRenderer::Render( uint32_t frameNumber )
162 Internal::Adaptor::GetImplementation( *this ).Render( frameNumber );
165 uint32_t VectorAnimationRenderer::GetTotalFrameNumber() const
167 return Internal::Adaptor::GetImplementation( *this ).GetTotalFrameNumber();
170 float VectorAnimationRenderer::GetFrameRate() const
172 return Internal::Adaptor::GetImplementation( *this ).GetFrameRate();