トレーニング
認定資格
Microsoft Certified: Azure Virtual Desktop Specialty - Certifications
Microsoft Azure で任意のデバイスの仮想デスクトップ エクスペリエンスとリモート アプリを計画、配信、管理、監視します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
このドキュメントでは、特に DirectX グラフィックス用の Windows Vista 拡張機能を参照しています。 Windows Vista 用 DirectX の機能を開発するには、Windows Vista SDK と DirectX SDK をインストールする必要があります。 Windows Vista 用 DirectX を使用するアプリケーションでは、XPDM (XP ドライバー モデル) ではなく WDDM ドライバー (Windows デバイス ドライバー モデル) を使用するハードウェアを使用している必要があります。WDDM を実装していないドライバーは、Windows Vista DirectX グラフィックス インターフェイスをインスタンス化できません。
次のいずれかのセクションで、Windows Vista の新しい DirectX グラフィックス機能について説明します。
デバイスは 2 つの状況でのみ失われるようになりました。ハードウェアがハングしているためにハードウェアがリセットされたとき、およびデバイス ドライバーが停止したとき。 ハードウェアがハングすると、 ResetEx を呼び出してデバイスをリセットできます。 ハードウェアがハングすると、テクスチャ メモリが失われます。
ドライバーが停止した後、レンダリングを再開するには、IDirect9Ex オブジェクトを再作成する必要があります。
ウィンドウ モードで別のウィンドウでプレゼンテーション領域が隠れている場合、または全画面表示アプリケーションが最小化されている場合、 PresentEx はS_D3DPRESENTATIONOCCLUDEDを返します。 全画面表示アプリケーションは、 WM_ACTIVATEAPP コールバック メッセージを受信したときにレンダリングを再開できます。
以前のバージョンの DirectX では、アプリケーションでモードの変更が発生したときに、デバイスをリセットし、すべてのビデオ メモリ リソースとスワップ チェーンを再作成する唯一の方法でした。 Windows Vista 用 DirectX では、モード変更後に Reset を呼び出しても、テクスチャ メモリサーフェス、テクスチャ、および状態情報が失われず、これらのリソースを再作成する必要はありません。
ソフトウェア頂点処理 (swvp) のマルチスレッドを無効にする新しいキャップ ビット (D3DCREATE_DISABLE_PSGP_THREADING) が追加されました。 このマクロを使用して、IDirect3D9::CreateDevice の動作フラグを生成します。
#define D3DCREATE_DISABLE_PSGP_THREADING
テキスト グリフの処理に特に役立つ新しい 1 ビットのサーフェス形式の種類があります。 新しい形式は D3DFMT_A1 と呼ばれます。 1 ビットサーフェスは、ピクセル単位のテクスチャとして使用するか、ComposeRects または ColorFill によって生成されるレンダー ターゲット出力として使用するように設計されています。 サーフェスの幅と高さには個別のキャップはありません。実装では、2K テクセル x 8K テクセルである単一サイズのサーフェスをサポートする必要があります。
1 ビットサーフェスにはテクセルあたり 1 ビットがあります。したがって、ピクセルのすべてのコンポーネント (r,g,b,a) が 1 であることを意味し、0 は、すべてのコンポーネントが 0 であることを意味します。 1 ビット サーフェスは、ColorFill、UpdateSurface、UpdateTexture の API で使用できます。
1 ビットサーフェスが読み取られた場合、ランタイムはポイント サンプルまたは畳み込みフィルター処理を実行できます。 畳み込みフィルターは調整可能です ( 「SetConvolutionMonoKernel」を参照)。
1 ビット サーフェスにはいくつかの制限があります。
IDirect3DDevice9::UpdateSurface を使用して、IDirect3DDevice9::CreateDepthStencilSurface または IDirect3DDevice9::GetDepthStencilSurface から取得したサーフェスから深度/ステンシル データを読み取りまたは書き込みます。
まず、IDirect3DDevice9::CreateOffscreenPlainSurface を使用して、ロック可能、奥行き専用、またはステンシルのみのサーフェスを作成します。 次のいずれかの形式を使用します。
次に、深度/ステンシル バッファーと、新しく作成されたロック可能な深度またはステンシル サーフェスの間でデータを転送します。 転送は IDirect3DDevice9::UpdateSurface を使用して実行されます。
両方のサーフェスが LOCKABLE 形式であるか、両方がロックできない場合、UpdateSurface は失敗します。
存在しないデータを転送すると、エラーが発生します (たとえば、ロックできない深度のみのサーフェスからD3DFMT_S8_LOCKABLEサーフェスに転送するなど)。
IDirect3DDevice9::UpdateSurface の残りの制限は引き続き適用されます。
Direct3D リソースをデバイスまたはプロセス間で共有できるようになりました。 これは、テクスチャ、頂点バッファー、インデックス バッファー、またはサーフェス (レンダー ターゲット、深度ステンシル バッファー、画面外のプレーン サーフェスなど) を含むすべての Direct3D リソースに適用されます。 共有するには、作成時に共有するリソースを指定し、既定のプール (D3DPOOL_DEFAULT) でそのリソースを見つける必要があります。 共有用にリソースを作成したら、プロセス内のデバイス間で共有することも、プロセス間で共有することもできます。
共有リソースを有効にするには、リソース作成 API に追加のハンドル パラメーターがあります。 これは、共有リソースを指す HANDLE です。 DirectX の以前のリビジョンでは、この引数は API シグネチャの一部でしたが、未使用であり、 NULL に設定する必要があります。 Windows Vista 以降では、次の方法で pSharedHandle を使用します。
リソース作成 API には、 CreateTexture、 CreateVolumeTexture、 CreateCubeTexture、 CreateRenderTarget、 CreateVertexBuffer、 CreateIndexBuffer、 CreateDepthStencilSurface、 CreateOffscreenPlainSurface、 CreateDepthStencilSurfaceEx、 CreateOffscreenPlainSurfaceEx、 CreateRenderTargetEx が含まれます。
共有リソースの使用にはいくつかの制限があります。 具体的な内容は次のとおりです。
チェックして、フレーム バッファー ブレンドの前に、デバイスがパイプライン データを sRGB に変換できるかどうかを確認できるようになりました。 これは、デバイスがレンダー ターゲットの値を sRGB から変換することを意味します。 変換がハードウェアでサポートされているかどうかを確認するには、次の上限をチェックします。
D3DPMISCCAPS_POSTBLENDSRGBCONVERT
このキャップは、ブレンド前に sRGB への変換をサポートするハードウェアを識別します。 この機能は、デスクトップ ウィンドウ マネージャー (DWM) の fp16 フレーム バッファーからの高品質のレンダリングに重要です。
以前のバージョンの DirectX では、StretchRect にはさまざまなドライバーに対応するための多くの制限があります (「IDirect3DDevice9::StretchRect」を参照)。 Windows Vista は、Windows デバイス ドライバー モデル (WDDM) 上に構築されています。 この新しいドライバー モデルははるかに堅牢であり、ドライバーはハードウェア内の特殊なケースを処理できます。
一般に、唯一の制限は、レンダー ターゲットをレンダー ターゲットの使用 (D3DUSAGE_RENDERTARGET) で作成する必要があるということです。 この制限は、単純なコピー (ソースと dest が同じ形式、同じサイズ、サブ四角形がない) を実行している場合に解除されます。
システム メモリの使用、割り当て、削除をより柔軟に行う必要があるアプリケーションで、システム メモリ ポインターからテクスチャを作成できるようになりました。 たとえば、アプリケーションは GDI システム メモリ ビットマップ ポインターから Direct3D テクスチャを作成できます。
このようなテクスチャを作成するには、次の 2 つの操作を行う必要があります。
IDirect3DDevice9::CreateTexture の関数プロトタイプを次に示します。
STDMETHOD(CreateTexture)(THIS_ UINT Width, UINT Height, UINT Levels,
DWORD Usage, D3DFORMAT Format, D3DPOOL Pool, IDirect3DTexture9** ppTexture,
HANDLE* pSharedHandle)
システム メモリ テクスチャには、次の制限があります。
トレーニング
認定資格
Microsoft Certified: Azure Virtual Desktop Specialty - Certifications
Microsoft Azure で任意のデバイスの仮想デスクトップ エクスペリエンスとリモート アプリを計画、配信、管理、監視します。