diff --git a/source/anim/DynamicModelShared.cpp b/source/anim/DynamicModelShared.cpp index 992435fe9c53ff30097fc4850ccc9570a8064b1b..0216f5d03fbf0fd774c6b159872a853eb0be9020 100644 --- a/source/anim/DynamicModelShared.cpp +++ b/source/anim/DynamicModelShared.cpp @@ -126,6 +126,8 @@ bool CDynamicModelShared::init(IXResourceModelStatic *pResource) } { + bool useDelayInit = false; + UINT uLodCount = m_pResource->getLodCount(); m_aLods.resizeFast(uLodCount); if(m_pDevice) @@ -224,7 +226,7 @@ bool CDynamicModelShared::init(IXResourceModelStatic *pResource) m_puTempTotalIndices[i] = uTotalIndices; m_puTempTotalVertices[i] = uTotalVertices; - m_pProvider->scheduleSharedGPUinit(this); + useDelayInit = true; } } @@ -235,6 +237,11 @@ bool CDynamicModelShared::init(IXResourceModelStatic *pResource) //printf("Min: %.2f, %.2f, %.2f; Max: %.2f, %.2f, %.2f\n", m_vLocalMin.x, m_vLocalMin.y, m_vLocalMin.z, m_vLocalMax.x, m_vLocalMax.y, m_vLocalMax.z); } + + if(useDelayInit) + { + m_pProvider->scheduleSharedGPUinit(this); + } } for(UINT m = 0, ml = pResource->getPhysboxCount(); m < ml; ++m) @@ -244,6 +251,7 @@ bool CDynamicModelShared::init(IXResourceModelStatic *pResource) buildPSPs(); + return(true); }