Platform SDK: DirectX |
サーフェスの固有値により、サーフェスが変更したかどうかを決定できる。DirectDraw がサーフェスを作成する場合、DirectDraw では IDirectDrawSurface7::GetUniquenessValue メソッドを使用して取得し格納できる固有値を割り当てる。そして、サーフェスが変更したかどうかを決定するときは常に、このメソッドを再び呼び出し、古い値に対して新しい値を比較する。値が異なる場合、サーフェスは変更している。
GetUniquenessValue により返される真の値が 0 でない限り、値は不適切となる。DirectDraw がサーフェスが制御以上のプロセスで変更されたことに気づくと、サーフェスにこの値を割り当てる。GetUniquenessValue が 0 を返すと、単にサーフェスの状態が未確定であるが分かる。
サーフェスの固有値を変更するために、アプリケーションは IDirectDrawSurface7::ChangeUniquenessValue メソッドを使用できる。たとえば、サーフェス自体を変更せずにサーフェスの固有値を変更するアプリケーションまたはコンポーネントからこのメソッドが呼び出され、変更の他のいくつかのプロセスに通知する。しかし、大部分のアプリケーションでは固有値の変更の必要はない。
サーフェスの固有値により、サーフェスが変更したかどうかを決定できる。DirectDraw がサーフェスを作成する場合、DirectDraw では DirectDrawSurface7.GetUniquenessValue メソッドを使用して取得し格納できる固有値を割り当てる。そして、サーフェスが変更したかどうかを決定するときは常に、このメソッドを再び呼び出し、古い値に対して新しい値を比較する。値が異なる場合、サーフェスは変更している。
GetUniquenessValue により返される真の値が 0 でない限り、値は不適切となる。DirectDraw がサーフェスが制御以上のプロセスで変更されたことに気づくと、サーフェスにこの値を割り当てる。GetUniquenessValue が 0 を返すと、単にサーフェスの状態が未確定であるが分かる。
サーフェスの固有値を変更するために、アプリケーションは DirectDrawSurface7.ChangeUniquenessValue メソッドを使用できる。たとえば、サーフェス自体を変更せずにサーフェスの固有値を変更するアプリケーションまたはコンポーネントからこのメソッドが呼び出され、変更の他のいくつかのプロセスに通知する。しかし、大部分のアプリケーションでは固有値の変更の必要はない。