Microsoft DirectX 8.0 (Visual Basic) |
object.UpdateTexture( _ SourceTexture As Direct3DBaseTexture8, _ DestinationTexture As Direct3DBaseTexture8)
失敗した場合はエラーが発生し、Err.Number に D3DERR_INVALIDCALL が設定される。
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
テクスチャの一部分をダーティーにするには、その部分をロックするか、または次のいずれかのメソッドを呼び出す。
UpdateTexture は、最後の更新処理以降に蓄積された処理を計算することで、テクスチャのダーティー部分を取得する。
転送元と転送先のテクスチャのタイプが異なる場合、両方のテクスチャの最下位バッファのサイズが異なる場合、および一致レベルが一致しない場合、このメソッドは失敗する。たとえば、次のようなディメンジョンの 6 つのレベルの転送元テクスチャがあるとする。
32x16, 16x8, 8x4, 4x2, 2x1, 1x1
この 6 つのレベルの転送元テクスチャは、次の 1 つのレベルの転送先の転送元になる。
1x1
2 つのレベルの転送先の場合。
2x1, 1x1
または、3 つのレベルの転送先の場合。
4x2, 2x1, 1x1
また、テクスチャのフォーマットが異なる場合、このメソッドは失敗する。転送先テクスチャのレベル数が転送元より少ない場合は、一致するレベルだけがコピーされる。
転送元テクスチャにダーティー領域がある場合は、コピーをその領域だけに限定することで、コピー処理を最適化できる。ダーティーとしてマークされているバイトだけがコピーされる保証はない。
パフォーマンスの理由によって、ダーティーな範囲はテクスチャのレベルゼロに対して記録されるのみである。サブレベルについては、対応する (スケールされた) 矩形またはボックスもダーティーであると仮定される。D3DLOCK_NO_DIRTY_UPDATE または D3DLOCK_READONLY なしで LockRect か LockBox が呼び出されたとき、ダーティーな範囲は自動的に記録される。また CopyRects 呼び出しの宛先サーフェスはダーティーとしてマークされる。