X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Fvisual-url.h;h=941d0b8883fe3f11e6b9c143fafe1c8353aab0aa;hp=a772bd109456c445a67b8a4a53694fb184128530;hb=ff6ce970724ccc8bee65f7c93411b274907c09d7;hpb=0f5a244a8e8f8fa680dccafca44ccc9fedb387a8 diff --git a/dali-toolkit/internal/visuals/visual-url.h b/dali-toolkit/internal/visuals/visual-url.h index a772bd1..941d0b8 100644 --- a/dali-toolkit/internal/visuals/visual-url.h +++ b/dali-toolkit/internal/visuals/visual-url.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_INTERNAL_VISUAL_URL_H /* - * Copyright (c) 2021 Samsung Electronics Co., Ltd. + * Copyright (c) 2022 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. @@ -38,14 +38,16 @@ public: SVG, GIF, WEBP, - JSON + JSON, + TVG }; enum ProtocolType { LOCAL, ///< file in local file system TEXTURE, ///< texture uploaded to texture manager - REMOTE ///< remote image + REMOTE, ///< remote image + BUFFER ///< encoded image buffer }; /** @@ -88,6 +90,12 @@ public: const std::string& GetUrl() const; /** + * Get the hash value of full URL + * @return The hash value of url + */ + const std::uint64_t& GetUrlHash() const; + + /** * Get the visual type of the URL * @return The visual type of the URL */ @@ -111,6 +119,11 @@ public: bool IsLocalResource() const; /** + * @return true if the location is BUFFER, i.e. may contain EncodedImageBuffer + */ + bool IsBufferResource() const; + + /** * @return the location part of the url */ std::string GetLocation() const; @@ -123,6 +136,13 @@ public: static std::string CreateTextureUrl(const std::string& location); /** + * Helper to create a URL of type BUFFER + * @param location the location of the texture + * @return the Url + */ + static std::string CreateBufferUrl(const std::string& location); + + /** * Helper to get a ProtocolType from url * @param url the url of the texture * @return the protocol type @@ -135,10 +155,13 @@ public: * @return the location */ static std::string GetLocation(const std::string& url); + private: std::string mUrl; Type mType; ProtocolType mLocation; + + mutable std::uint64_t mUrlHash; }; } // namespace Internal