ResourcePtr ResourceManager::clone(const ResourcePtr &src)
    {
        uint32_t unCloneID = (++mCloneID);

        ResourcePtr res = src->clone();

        if (res != nullptr)
        {
            res->mCloneID = unCloneID;

            auto i = mResourceCache.find(src->getName());

            if (i != mResourceCache.end())
            {
                Resources &resources = i->second;
                resources.insert(ResPairValue(unCloneID, res));
            }
            else
            {
                T3D_ASSERT(0);
            }
        }
        
        return res;
    }