#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.
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
};
/**
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
*/
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;
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
* @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