#pragma once #include "drape/texture.hpp" #include <string> namespace dp { class StaticTexture : public Texture { using Base = Texture; public: class StaticKey : public Key { public: ResourceType GetType() const override { return ResourceType::Static; } }; static std::string const kDefaultResource; StaticTexture(); /// @todo All xxxName can be std::string_view after Platform::GetReader (StyleReader) refactoring. StaticTexture(ref_ptr<dp::GraphicsContext> context, std::string const & textureName, std::string const & skinPathName, dp::TextureFormat format, ref_ptr<HWTextureAllocator> allocator, bool allowOptional = false); ref_ptr<ResourceInfo> FindResource(Key const & key, bool & newResource) override; void Create(ref_ptr<dp::GraphicsContext> context, Params const & params) override; void Create(ref_ptr<dp::GraphicsContext> context, Params const & params, ref_ptr<void> data) override; bool IsLoadingCorrect() const { return m_isLoadingCorrect; } private: void Fail(ref_ptr<dp::GraphicsContext> context); drape_ptr<Texture::ResourceInfo> m_info; bool m_isLoadingCorrect = false; }; } // namespace dp