Platform SDK: DirectX |
ハードウェアの制限により、デバイスによっては、対応する転送元矩形と比較して転送先矩形の幅が制限を受ける場合がある。DirectDraw は、これらの制限を伸縮係数として伝える。伸縮係数とは、転送元矩形と転送先矩形の幅の比率である。ドライバが伸縮係数についての情報を提供する場合、IDirectDraw7::GetCaps メソッドを呼び出した後、ドライバは DDCAPS 構造体に DDCAPS_OVERLAYSTRETCH フラグを設定する。伸縮係数は 1000 を掛けて報告されるため、1300 の値は実際には 1.3 を意味することに注意する (750 は 0.75 になる)。
ハードウェアの制限により、デバイスによっては、対応する転送元矩形と比較して転送先矩形の幅が制限を受ける場合がある。DirectDraw は、これらの制限を伸縮係数として伝える。伸縮係数とは、転送元矩形と転送先矩形の幅の比率である。ドライバが伸縮係数についての情報を提供する場合、DirectDraw7.GetCaps メソッドを呼び出した後、ドライバは DDCAPS 型に DDCAPS_OVERLAYSTRETCH フラグを設定する。伸縮係数は 1000 を掛けて報告されるため、1300 の値は実際には 1.3 を意味することに注意する (750 は 0.75 になる)。
オーバーレイ転送先矩形の伸縮や収縮に制限を受けないデバイスでは、最小および最大伸縮係数 0 を報告する場合がある。
最小伸縮係数は、転送先矩形が転送元矩形と比較してどの程度幅が広くなければならないか、または狭くなければならないかを伝える。最小伸縮係数が 1000 よりも大きければ、その比率だけ転送先矩形の幅を広げなければならない。たとえば、ドライバが 1300 を報告すると、転送先矩形の幅が転送元矩形の幅の少なくとも 1.3 倍になるようにしなければならない。同様に、最小伸縮係数が 1000 よりも小さければ、転送先矩形は転送元矩形よりもその比率だけ小さくなる可能性があることを示す。
最大伸縮係数は、転送先矩形の幅を伸縮することのできる最大比率を伝える。たとえば、最大伸縮係数が 2000 の場合、転送先矩形は転送元矩形の 2 倍まで (2 倍を超えない) の幅を指定することができる。最大伸縮係数が 1000 よりも小さい場合、オーバーレイを表示するために転送先矩形の幅をその比率だけ収縮しなければならない。
伸縮した後、転送先矩形はデバイスの要求するサイズ アライメント制限に従う必要がある。このため、サイズ アライメントする前に転送先矩形を伸縮するとよい。詳細については、「境界とサイズ アライメント」を参照すること。
ハードウェアでは、転送先矩形の高さを調整しなくてもいい。アスペクト比を保持するため、ネガティブな結果を引き起こすことなく転送先矩形の高さを増やすことができる。