Platform SDK: DirectX |
サーフェス メモリの部分を表す DirectDrawSurface オブジェクトが、必ずしも解放される必要がないにもかかわらず、DirectDrawSurface オブジェクトに関連付けられたサーフェス メモリが解放されることがある。DirectDrawSurface オブジェクトがサーフェス メモリを消失した場合、多くのメソッドでは DDERR_SURFACELOST を返して他のアクションを実行しない。
ディスプレイ モードが変更されたり、別のアプリケーションがディスプレイ カードへの排他アクセスを受け取り、そのディスプレイ カードに割り当てられたサーフェス メモリをすべて解放した場合、サーフェスは消失する。IDirectDrawSurface7::Restore メソッドは、消失したサーフェスを再作成し、DirectDrawSurface オブジェクトへ再接続する。アプリケーションで 1 つ以上のサーフェスを使用する場合、IDirectDraw7::RestoreAllSurfaces メソッドを呼び出すことで、一度にすべてのサーフェスをリストアできる。
ディスプレイ モードが変更されたり、別のアプリケーションがディスプレイ カードへの排他アクセスを受け取り、そのディスプレイ カードに割り当てられたサーフェス メモリをすべて解放した場合、サーフェスは消失する。DirectDrawSurface7.Restore メソッドは、消失したサーフェスを再作成し、DirectDrawSurface オブジェクトへ再接続する。アプリケーションで 1 つ以上のサーフェスを使用する場合、DirectDraw7.RestoreAllSurfaces メソッドを呼び出すことで、一度にすべてのサーフェスをリストアできる。
サーフェスのリストアでは、消失する前のサーフェスに存在する可能性のあるビットマップを再ロードしない。以前に保持したグラフィックスは、完全に再構成しなくてはならない。