DdResetVisrgn 関数 (ddrawgdi.h)

[この機能は、オペレーティング システムのリビジョンごとに変更される場合があります。 代わりに、Microsoft DirectDraw と Microsoft Direct3DAPIs を使用します。これらの API は、このようなオペレーティング システムの変更からアプリケーションを保護し、ディスプレイ ドライバーと直接やり取りすることに関連する他の多くの困難を隠します。

NtGdiDdResetVisrgn 関数のラッパー。デスクトップ上のウィンドウのクリッピング領域に関するユーザー モード情報をタイムリーに有効にします。

GdiEntry6 は、この関数のエイリアスとして定義されます。

構文

BOOL DdResetVisrgn(
  LPDDRAWI_DDRAWSURFACE_LCL pSurfaceLocal,
  HWND                      hWnd
);

パラメーター

pSurfaceLocal

クリッピングをリセットする DirectDraw デバイスに属する任意のサーフェスのユーザー モード オブジェクトへのポインター。 詳細については、DDK のドキュメントを参照してください。

hWnd

予約済み。

戻り値

成功した場合、この関数は TRUE を返します。それ以外の場合は FALSE を返します

注釈

クリッピングは、ユーザー モード スレッドの観点から非同期的に変更できます。 DirectDraw と Windows グラフィックス デバイス インターフェイス (GDI) のカーネル モード部分では、デスクトップ全体のクリッピング リストが変更されるたびにインクリメントされるカウンターが維持されます。 この関数を呼び出すと、このカウンターは、システム上の既存のすべての DirectDraw プライマリ サーフェスに記録されます。

これらのプライマリ サーフェスの 1 つが IDirectDrawSurface7::Blt または IDirectDrawSurface7::Lock 操作 (DDK ドキュメントを参照) によって変更されると、そのサーフェスに記録されたカウンターはグローバル カウンターと比較されます。 これらの値が異なる場合は、エラー コード DDERR_VISRGNCHANGEDがユーザー モード コードに返されます。 その後、ユーザー モード コードは、デスクトップの現在のクリッピングに対してクエリを再実行し、 NtGdiDdResetVisrgn を呼び出し、新しいクリッピングを考慮して、プライマリ サーフェスに適用された IDirectDrawSurface7::Blt を再試行します。 最終的には、ユーザー モード コードによってサンプリングされたクリッピングは、カーネル モードによって所有されている現在のクリッピングと同じになり、IDirectDrawSurface7::Blt の続行が許可されます。

アプリケーションでは、非同期クリッピングの変更を処理するために 、IDirectDrawClipper インターフェイスまたは IDirect3DDevice8::P resent メソッドを使用することをお勧めします。 これらのコンストラクトは、自動化されたオペレーティング システムに依存しない方法で非同期クリッピングを実装します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ddrawgdi.h

こちらもご覧ください

グラフィックスの低レベルクライアントサポート