void Display::terminate() { for (SurfaceSet::iterator surface = mSurfaceSet.begin(); surface != mSurfaceSet.end(); surface++) { delete *surface; } for (ContextSet::iterator context = mContextSet.begin(); context != mContextSet.end(); context++) { glDestroyContext(*context); } if (mDevice) { mDevice->Release(); mDevice = NULL; } if (mD3d9) { mD3d9->Release(); mD3d9 = NULL; } if (mDeviceWindow) { DestroyWindow(mDeviceWindow); mDeviceWindow = NULL; } if (mD3d9ex) { mD3d9ex->Release(); mD3d9ex = NULL; } if (mD3d9Module) { FreeLibrary(mD3d9Module); mD3d9Module = NULL; } }
void Display::destroyContext(gl::Context *context) { glDestroyContext(context); mContextSet.erase(context); }