是安全的。通过运用Release函数,我们减少了一个对象的引用数量。当引用数量达到0,系统便会回收这些资源。
下面是一个释放D3D对象的范例。用首先用if条件句来确保对象不为null,然后调用Release函数。通常我们以和创建时相反的顺序来释放这些对象。
代码段7 释放Direct3D 11 main对象
[cpp]
if( backBufferTarget_ )backBufferTarget_->Release( );
if( swapChain_ ) swapChain_->Release( );
if( d3dContext_ ) d3dContext_->Release( );
if( d3dDevice_ ) d3dDevice_->Release( );
if( backBufferTarget_ )backBufferTarget_->Release( );
if( swapChain_ ) swapChain_->Release( );
if( d3dContext_ ) d3dContext_->Release( );
if( d3dDevice_ ) d3dDevice_->Release( );
心得:在释放对象前,我们经常通过检查来确保DirectX对象不为null。因为试图释放一个非法的指针是非常不科学的,这会使我们游戏程序的稳定性荡然无存,经常各种无故崩溃。
作者:zhmxy555