Platform SDK: DirectX |
DirectDrawSurface7.AddAttachedSurface メソッドは、指定したサーフェスをこのサーフェスにアタッチする。
object.AddAttachedSurface(ddS As DirectDrawSurface7)
失敗すればエラーが発生し、Err.Number に次のいずれかの値が設定される。
DDERR_CANNOTATTACHSURFACE |
DDERR_GENERIC |
DDERR_INVALIDOBJECT |
DDERR_INVALIDPARAMS |
DDERR_SURFACEALREADYATTACHED |
DDERR_SURFACELOST |
DDERR_WASSTILLDRAWING |
DirectDrawSurface7.DeleteAttachedSurface メソッドを使って、明示的にサーフェスのアタッチを解除できる。DirectDraw7.CreateSurface の呼び出しで作成する複合サーフェスとは異なり、このメソッドでアタッチされるサーフェスは自動的に解放されない。このようなサーフェスの解放は、アプリケーションの役目である。
Z バッファ、アルファ チャネル、およびバック バッファを含むアタッチが可能である。自動的にほかのアタッチを切断するアタッチもある。たとえば、3D Z バッファを一度に 1 つのバック バッファだけにアタッチすることができる。アタッチは双方向的ではないので、サーフェスをそれ自体にアタッチすることはできない。エミュレートされていないサーフェスに、エミュレートされたサーフェス (システム メモリ内) をアタッチすることはできない。1 つのサーフェスがテクスチャ マップでない限り、2 つのアタッチされたサーフェスは同じサイズでなくてはらない。フリッピング サーフェスを同じ型の別のフリッピング サーフェスにアタッチできないが、異なるタイプの 2 つのサーフェスをアタッチすることができる。たとえば、フリッピング Z バッファを、通常のフリッピング サーフェスにアタッチできる。フリッピングしないサーフェスを同じタイプの別のフリッピングしないサーフェスにアタッチすると、2 つのサーフェスはフリッピング チェーンとなる。フリッピングしないサーフェスをフリッピング サーフェスにアタッチすると、既存のフリッピング チェーンの一部となる。追加サーフェスはこのチェーンに追加され、DirectDrawSurface7.Flip メソッドを呼び出すごとにサーフェスを 1 ステップ進ませる。
DirectDrawSurface7.DeleteAttachedSurface、DirectDrawSurface7.GetAttachedSurfaceEnum