apply new tangram
[platform/core/location/maps-plugin-mapzen.git] / src / mapzen / tangram / platform_tizen.h
index f286cc4..1b6fb14 100644 (file)
@@ -1,14 +1,65 @@
+#if 0
 #pragma once
 
 #include "platform.h"
-#include <functional>
-#include <Evas_GL.h>
 
 bool shouldRender();
 
-void setRenderCallbackFunction(std::function<void()> callback);
-
 void initUrlRequests(const char* proxyAddress);
 void stopUrlRequests();
 
-void setEvasGlAPI(Evas_GL_API* glApi);
+#endif
+
+#pragma once
+
+#include "platform.h"
+#include "urlClient.h"
+
+#include <functional>
+#include <Evas_GL.h>
+
+typedef struct _FcConfig    FcConfig;
+
+namespace Tangram {
+
+void setEvasGlAPI(Evas_GL_API *glApi);
+
+class TizenPlatform : public Platform {
+
+public:
+
+    TizenPlatform();
+    TizenPlatform(UrlClient::Options urlClientOptions);
+    ~TizenPlatform() override;
+    void requestRender() const override;
+    bool startUrlRequest(const std::string& _url, UrlCallback _callback) override;
+    void cancelUrlRequest(const std::string& _url) override;
+
+
+    std::vector<FontSourceHandle> systemFontFallbacksHandle() const override;
+
+    std::vector<char> systemFont(const std::string& _name, const std::string& _weight,
+                                 const std::string& _face) const override;
+
+    void setRenderCallbackFunction(std::function<void()> callback);
+
+    
+protected:
+
+    void initPlatformFontSetup() const;
+
+    std::string fontPath(const std::string& _name, const std::string& _weight,
+                         const std::string& _face) const;
+
+    UrlClient m_urlClient;
+
+    std::function<void()> m_renderCallbackFunction = nullptr;
+
+    mutable bool m_update = false;
+
+    mutable std::vector<std::string> m_fallbackFonts;
+    mutable FcConfig* m_fcConfig = nullptr;
+
+};
+
+} // namespace Tangram