Platform SDK: DirectX |
DirectDrawSurface7.Restore メソッドは、消失されたサーフェスをリストアする。これは、DirectDrawSurface オブジェクトに関連付けられたサーフェス メモリを解放するときに生じる。
object.Restore()
失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。
DDERR_GENERIC |
DDERR_IMPLICITLYCREATED |
DDERR_INCOMPATIBLEPRIMARY |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_NOEXCLUSIVEMODE |
DDERR_OUTOFMEMORY |
DDERR_UNSUPPORTED |
DDERR_WRONGMODE |
このメソッドは、サーフェスに対して割り当てられたメモリをリストアするが、サーフェスが消失される前に存在した可能性のあるビットマップは再ロードしない。DDSCAPS2_PERSISTENTCONTENT フラグで作成されたサーフェスのコンテンツだけが自動的にリストアされる。このフラグがないサーフェスが消失されると、メモリをリストアしてから保持したグラフィックスを完全に再構成しなければならない。
ディスプレイ カードのモードを変更するため、またはアプリケーションがディスプレイ カードへの排他アクセスを受け取って、カードに割り当てられた現在のサーフェス メモリのすべてを解放するために、サーフェスを消失できる。DirectDrawSurface オブジェクトがそのサーフェス メモリを消失すると、大部分のメソッドは DDERR_SURFACELOST を返して、ほかのあらゆる機能が実行できなくなる。DirectDrawSurface7.Restore メソッドは、サーフェス メモリを再割り当てして、DirectDrawSurface オブジェクトに再びアタッチする。
このメソッドへの単一の呼び出しは、DirectDrawSurface オブジェクトの暗に関連付けられたサーフェス (バック バッファなど) をリストアする。暗に作成されたサーフェスをリストアしようとすると、エラーが生じる。DirectDrawSurface7.Restore は、DirectDrawSurface7.AddAttachedSurface メソッドを使って作成した明示的なアタッチには作用しない。つまり、これらの個々のサーフェスは、個別にリストアしなくてはならない。