void GFXD3D9Device::reacquireDefaultPoolResources() { // Now do the dynamic index buffers if( mDynamicPB == NULL ) mDynamicPB = new GFXD3D9PrimitiveBuffer(this, 0, 0, GFXBufferTypeDynamic); D3D9Assert( mD3DDevice->CreateIndexBuffer( sizeof( U16 ) * MAX_DYNAMIC_INDICES, #ifdef TORQUE_OS_XENON D3DUSAGE_WRITEONLY, #else D3DUSAGE_WRITEONLY | D3DUSAGE_DYNAMIC, #endif GFXD3D9IndexFormat[GFXIndexFormat16], D3DPOOL_DEFAULT, &mDynamicPB->ib, NULL ), "Failed to allocate dynamic IB" ); // Grab the depth-stencil... SAFE_RELEASE(mDeviceDepthStencil); D3D9Assert(mD3DDevice->GetDepthStencilSurface(&mDeviceDepthStencil), "GFXD3D9Device::reacquireDefaultPoolResources - couldn't grab reference to device's depth-stencil surface."); SAFE_RELEASE(mDeviceBackbuffer); mD3DDevice->GetBackBuffer( 0, 0, D3DBACKBUFFER_TYPE_MONO, &mDeviceBackbuffer ); // Walk the resource list and zombify everything. GFXResource *walk = mResourceListHead; while(walk) { walk->resurrect(); walk = walk->getNextResource(); } if(mTextureManager) mTextureManager->resurrect(); }
void GFXGLDevice::resurrect() { GFXResource* walk = mResourceListHead; while(walk) { walk->resurrect(); walk = walk->getNextResource(); } for(int i = 0; i < VERTEX_STREAM_COUNT; ++i) if(mCurrentVB[i]) mCurrentVB[i]->prepare(); if(mCurrentPB) mCurrentPB->prepare(); mTextureManager->resurrect(); }