本文整理汇总了C++中TexturePtr::unlinkFrom方法的典型用法代码示例。如果您正苦于以下问题:C++ TexturePtr::unlinkFrom方法的具体用法?C++ TexturePtr::unlinkFrom怎么用?C++ TexturePtr::unlinkFrom使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TexturePtr
的用法示例。
在下文中一共展示了TexturePtr::unlinkFrom方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: unlinkFrom
bool Window::unlinkFrom(shared_ptr<BaseObject> obj)
{
if (dynamic_pointer_cast<Texture>(obj).get() != nullptr)
{
TexturePtr tex = dynamic_pointer_cast<Texture>(obj);
unsetTexture(tex);
}
else if (dynamic_pointer_cast<Image>(obj).get() != nullptr)
{
// Look for the corresponding texture
string texName = getName() + "_" + obj->getName() + "_tex";
TexturePtr tex = nullptr;
for (auto& inTex : _inTextures)
{
if (inTex.expired())
continue;
auto lockedTex = inTex.lock();
if (lockedTex->getName() == texName)
tex = lockedTex;
}
if (tex != nullptr)
{
tex->unlinkFrom(obj);
unsetTexture(tex);
}
}
else if (dynamic_pointer_cast<Camera>(obj).get() != nullptr)
{
CameraPtr cam = dynamic_pointer_cast<Camera>(obj);
for (auto& tex : cam->getTextures())
unsetTexture(tex);
}
else if (dynamic_pointer_cast<Gui>(obj).get() != nullptr)
{
GuiPtr gui = dynamic_pointer_cast<Gui>(obj);
if (gui->getTexture() == _guiTexture)
{
_screenGui->removeTexture(_guiTexture);
_guiTexture = nullptr;
}
}
return BaseObject::unlinkFrom(obj);
}