Use move semantics for osg::ref_ptr

This commit is contained in:
Andrei Kortunov 2024-01-21 13:48:33 +04:00
parent a41259cca8
commit 251d01304f
13 changed files with 23 additions and 22 deletions

View file

@ -740,7 +740,7 @@ namespace Shader
auto program = mShaderManager.getProgram(shaderPrefix, defineMap, mProgramTemplate);
writableStateSet->setAttributeAndModes(program, osg::StateAttribute::ON);
addedState->setAttributeAndModes(program);
addedState->setAttributeAndModes(std::move(program));
for (const auto& [unit, name] : reqs.mTextures)
{
@ -934,13 +934,13 @@ namespace Shader
{
osg::ref_ptr<osg::Geometry> sourceGeometry = rig->getSourceGeometry();
if (sourceGeometry && adjustGeometry(*sourceGeometry, reqs))
rig->setSourceGeometry(sourceGeometry);
rig->setSourceGeometry(std::move(sourceGeometry));
}
else if (auto morph = dynamic_cast<SceneUtil::MorphGeometry*>(&drawable))
{
osg::ref_ptr<osg::Geometry> sourceGeometry = morph->getSourceGeometry();
if (sourceGeometry && adjustGeometry(*sourceGeometry, reqs))
morph->setSourceGeometry(sourceGeometry);
morph->setSourceGeometry(std::move(sourceGeometry));
}
else if (auto osgaRig = dynamic_cast<SceneUtil::RigGeometryHolder*>(&drawable))
{
@ -948,8 +948,8 @@ namespace Shader
osg::ref_ptr<osg::Geometry> sourceGeometry = sourceOsgaRigGeometry->getSourceGeometry();
if (sourceGeometry && adjustGeometry(*sourceGeometry, reqs))
{
sourceOsgaRigGeometry->setSourceGeometry(sourceGeometry);
osgaRig->setSourceRigGeometry(sourceOsgaRigGeometry);
sourceOsgaRigGeometry->setSourceGeometry(std::move(sourceGeometry));
osgaRig->setSourceRigGeometry(std::move(sourceOsgaRigGeometry));
}
}