1 #ifndef __DALI_TIZEN_PLATFORM_ABSTRACTION_H__
2 #define __DALI_TIZEN_PLATFORM_ABSTRACTION_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
21 #include <dali/integration-api/platform-abstraction.h>
22 #include <dali/integration-api/resource-cache.h>
23 #include <dali/public-api/common/dali-common.h>
26 #include FT_FREETYPE_H
33 * Construct a platform abstraction and return it.
35 Integration::PlatformAbstraction* CreatePlatformAbstraction();
37 namespace TizenPlatform
40 class DynamicsFactory;
44 * Concrete implementation of the platform abstraction class.
46 class TizenPlatformAbstraction : public Integration::PlatformAbstraction
49 public: // Construction & Destruction
54 TizenPlatformAbstraction();
59 virtual ~TizenPlatformAbstraction();
61 public: // PlatformAbstraction overrides
64 * @copydoc PlatformAbstraction::GetTimeMicroseconds()
66 virtual void GetTimeMicroseconds(unsigned int &seconds, unsigned int µSeconds);
69 * @copydoc PlatformAbstraction::Suspend()
71 virtual void Suspend();
74 * @copydoc PlatformAbstraction::Resume()
76 virtual void Resume();
79 * @copydoc PlatformAbstraction::GetClosestImageSize()
81 virtual void GetClosestImageSize( const std::string& filename,
82 const ImageAttributes& attributes,
83 Vector2& closestSize );
86 * @copydoc PlatformAbstraction::GetClosestImageSize()
88 virtual void GetClosestImageSize( Integration::ResourcePointer resourceBuffer,
89 const ImageAttributes& attributes,
90 Vector2& closestSize );
93 * @copydoc PlatformAbstraction::LoadResource()
95 virtual void LoadResource(const Integration::ResourceRequest& request);
98 * @copydoc PlatformAbstraction::LoadResourceSynchronously()
100 virtual Integration::ResourcePointer LoadResourceSynchronously(const Integration::ResourceType& resourceType, const std::string& resourcePath);
103 * @copydoc PlatformAbstraction::SaveResource()
105 virtual void SaveResource(const Integration::ResourceRequest& request);
108 * @copydoc PlatformAbstraction::CancelLoad()
110 virtual void CancelLoad(Integration::ResourceId id, Integration::ResourceTypeId typeId);
113 * @copydoc PlatformAbstraction::GetResources()
115 virtual void GetResources(Integration::ResourceCache& cache);
118 * @copydoc PlatformAbstraction::IsLoading()
120 virtual bool IsLoading();
123 * @copydoc PlatformAbstraction::JoinLoaderThreads()
125 virtual void JoinLoaderThreads();
128 *@copydoc PlatformAbstraction::GetDefaultFontFamily()
130 virtual const std::string& GetDefaultFontFamily() const;
133 *@copydoc PlatformAbstraction::GetDefaultFontSize()
135 virtual float GetDefaultFontSize() const;
138 *@copydoc PlatformAbstraction::GetFontLineHeightFromCapsHeight()
140 virtual PixelSize GetFontLineHeightFromCapsHeight(const std::string& fontFamily, const std::string& fontStyle, CapsHeight capsHeight) const;
143 * @copydoc PlatformAbstraction::GetGlyphData()
145 virtual Integration::GlyphSet* GetGlyphData ( const Dali::Integration::TextResourceType& textRequest,
146 const std::string& fontFamily,
147 bool getBitmap) const;
150 * @copydoc PlatformAbstraction::GetCachedGlyphData()
152 virtual Integration::GlyphSet* GetCachedGlyphData( const Integration::TextResourceType& textRequest,
153 const std::string& fontFamily ) const;
156 * @copydoc PlatformAbstraction::GetGlobalMetrics()
158 virtual void GetGlobalMetrics( const std::string& fontFamily,
159 const std::string& fontStyle,
160 Integration::GlobalMetrics& globalMetrics ) const;
163 * @copydoc PlatformAbstraction::SetDpi()
165 virtual void SetDpi (unsigned int DpiHorizontal, unsigned int DpiVertical);
168 * @copydoc PlatformAbstraction::GetFontFamilyForChars()
170 const std::string& GetFontFamilyForChars(const Integration::TextArray& charsRequested) const;
173 * @copydoc PlatformAbstraction::AllGlyphsSupported()
175 bool AllGlyphsSupported(const std::string &fontFamily, const std::string& fontStyle, const Integration::TextArray& charsRequested) const;
178 * @copydoc PlatformAbstraction::ValidateFontFamilyName()
180 virtual bool ValidateFontFamilyName( const std::string& fontFamily, const std::string& fontStyle, bool& isDefaultSystemFont, std::string& closestMatch, std::string& closestStyleMatch) const;
183 * @copydoc PlatformAbstraction::GetFontList()
185 virtual void GetFontList ( Dali::Integration::PlatformAbstraction::FontListMode mode, std::vector<std::string>& fontList ) const;
188 * @copydoc PlatformAbstraction::LoadFile()
190 virtual bool LoadFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
193 * @copydoc PlatformAbstraction::LoadFile()
195 virtual std::string LoadFile( const std::string& filename );
198 * @copydoc PlatformAbstraction::SaveFile()
200 virtual bool SaveFile(const std::string& filename, std::vector< unsigned char >& buffer) const;
203 * @copydoc PlatformAbstraction::UpdateDefaultsFromDevice();
205 virtual void UpdateDefaultsFromDevice();
208 * @copydoc PlatformAbstraction::GetDynamicsFactory();
210 virtual Integration::DynamicsFactory* GetDynamicsFactory();
213 * @copydoc PlatformAbstraction::ReadGlobalMetricsFromCacheFile
215 virtual bool ReadGlobalMetricsFromCache( const std::string& fontFamily,
216 const std::string& fontStyle,
217 Integration::GlobalMetrics& globalMetrics );
220 * @copydoc PlatformAbstraction::WriteGlobalMetricsToCacheFile
222 virtual void WriteGlobalMetricsToCache( const std::string& fontFamily,
223 const std::string& fontStyle,
224 const Integration::GlobalMetrics& globalMetrics );
227 * @copydoc PlatformAbstraction::ReadMetricsFromCacheFile
229 virtual bool ReadMetricsFromCache( const std::string& fontFamily,
230 const std::string& fontStyle,
231 std::vector<Integration::GlyphMetrics>& glyphMetricsContainer );
234 * @copydoc PlatformAbstraction::WriteMetricsToCacheFile
236 virtual void WriteMetricsToCache( const std::string& fontFamily,
237 const std::string& fontStyle,
238 const Integration::GlyphSet& glyphSet );
241 * @copydoc PlatformAbstraction::GetFileNamesFromDirectory()
243 virtual void GetFileNamesFromDirectory( const std::string& directoryName,
244 std::vector<std::string>& fileNames );
247 * @copydoc PlatformAbstraction::GetGlyphImage()
249 virtual Integration::BitmapPtr GetGlyphImage( const std::string& fontFamily, const std::string& fontStyle, float fontSize, uint32_t character ) const;
252 * @copydoc PlatformAbstraction::LoadShaderBinFile()
254 virtual bool LoadShaderBinFile( const std::string& filename, std::vector< unsigned char >& buffer ) const;
257 * Sets path for data/resource storage.
258 * @param[in] path data/resource storage path
260 void SetDataStoragePath( const std::string& path );
263 ResourceLoader* mResourceLoader;
264 DynamicsFactory* mDynamicsFactory;
265 FT_Library mFreeTypeHandle; ///< Freetype library
266 std::string mDefaultFontFamily;
267 std::string mDefaultFontStyle;
268 std::string mDefaultThemeFile;
269 std::string mDataStoragePath;
270 float mDefaultFontSize;
273 } // namespace TizenPlatform
276 #endif // __DALI_TIZEN_PLATFORM_ABSTRACTION_H__