Graphics/Sprite: Fix #138
This commit is contained in:
@@ -282,9 +282,6 @@ namespace Nz
|
|||||||
*/
|
*/
|
||||||
inline void Sprite::SetTexture(std::size_t skinIndex, TextureRef texture, bool resizeSprite)
|
inline void Sprite::SetTexture(std::size_t skinIndex, TextureRef texture, bool resizeSprite)
|
||||||
{
|
{
|
||||||
if (resizeSprite && texture && texture->IsValid())
|
|
||||||
SetSize(Vector2f(Vector2ui(texture->GetSize())));
|
|
||||||
|
|
||||||
const MaterialRef& material = GetMaterial(skinIndex);
|
const MaterialRef& material = GetMaterial(skinIndex);
|
||||||
|
|
||||||
if (material->GetReferenceCount() > 1)
|
if (material->GetReferenceCount() > 1)
|
||||||
@@ -292,10 +289,14 @@ namespace Nz
|
|||||||
MaterialRef newMat = Material::New(*material); // Copy
|
MaterialRef newMat = Material::New(*material); // Copy
|
||||||
newMat->SetDiffuseMap(std::move(texture));
|
newMat->SetDiffuseMap(std::move(texture));
|
||||||
|
|
||||||
SetMaterial(skinIndex, std::move(newMat));
|
SetMaterial(skinIndex, std::move(newMat), resizeSprite);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
material->SetDiffuseMap(std::move(texture));
|
material->SetDiffuseMap(std::move(texture));
|
||||||
|
if (resizeSprite && texture && texture->IsValid())
|
||||||
|
SetSize(Vector2f(Vector2ui(texture->GetSize())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|||||||
Reference in New Issue
Block a user