如何解决在directX中,是否可以保存Texture After效果的EndPass函数?
for (auto iter = m_listMaterial.begin(); iter != m_listMaterial.end();++iter)
{
Material* pMat = (*iter);
pMat->GetBuffer()->Ready_Component();
_uint numPass;
//if effect is different Changing Effect
if (pEffect != pMat->GetShader()->GetEffect())
{
if (pEffect)
{
for (int i = 0; i < 10; ++i)
{
m_pTextures[i] = nullptr;
}
pEffect->EndPass();
pEffect->End();
}
pEffect = pMat->GetShader()->GetEffect();
pEffect->Begin(&numPass,D3DXFX_DONOTSAVESTATE);
pEffect->BeginPass(0);
}
vector<Texture*> vecTex = pMat->GetTextures();
for (_uint i = 0;i < vecTex.size(); ++i)
{
// if texture is different changing texture
if (vecTex[i]->GetTexture() != m_pTextures[i])
{
pDev->SetTexture(i,vecTex[i]->GetTexture());
m_pTextures[i] = vecTex[i]->GetTexture();
}
}
pMat->RenderSettingFunc();
pEffect->CommitChanges();
pMat->GetBuffer()->RenderBuffer();
}
pEffect->EndPass();
pEffect->End();
我在DirectX9中制作了批处理系统
但是我发现在调用Effect的EndPass()函数后,gpu中的纹理信息消失了
那么,如何保存纹理信息?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。