(Visual C++)游戏开发笔记二十七 Direct3D 11入门级知识介绍 (三)

2014-11-23 19:38:16 · 作者: · 浏览: 73
是安全的。通过运用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