Platform SDK: DirectX

Compress サンプル

[Visual Basic]

ここでは、C++ でのアプリケーション開発について説明する。Visual Basicについては、「Direct3D 直接モード Visual Basic サンプル」を参照すること。

[C++]

説明

Compress サンプルでは、DDS ファイル形式を圧縮されたテクスチャ サーフェスにロードする方法を示す。DDS テクスチャは、DirectX SDK のDirectDraw ツールに含まれている DxTex プログラムを使用して作成できる。

パス

ソース ファイル :(SDK ルート)\Samples\Multimedia\D3dim\Src\Compress

実行可能ファイル :(SDK ルート)\Samples\Multimedia\D3dim\Bin\Compress.exe

ユーザーズ ガイド

利用可能なコマンドを調べるには、F1 キーを押すか、メニューから選択する。

プログラミング上の注意

ファイル フォーマットが DDS と呼ばれるのは、情報を DirectDrawSurface にカプセル化するからである。データは、一致するフォーマットのサーフェスに直接読み込める。

ReadDDSTexture 関数は、DDS サーフェスが、ファイルからどのように読み込まれるかを示す。

DDS ファイルのフォーマットは、次のとおりである。

DWORD dwMagic (0x20534444、または "DDS ")
DDSURFACEDESC2 ddsd サーフェスのフォーマットに関する情報
BYTE bData1[] 主サーフェスのデータ
[BYTE bData2[] 追加サーフェスのデータがあれば、続く

このフォーマットは読み書きが簡単で、DXTn 圧縮だけでなく、アルファやマルチ ミップ レベルなどの機能もサポートする。DXTn 圧縮を使用する場合、5 つの圧縮タイプのどれかになる。「圧縮したテクスチャ サーフェス」を参照すること。

テクスチャが読み込まれた後、レンダラーがサポートするピクセル フォーマットを選択する必要がある。サンプルでは、サポートされているピクセル フォーマットが列挙され、連結リストに格納される。ピクセル フォーマットを収集してから、FindBestPixelFormatMatch 関数を使用して、最も適合するピクセル フォーマットをリストから探す。

リファレンス ラスタライザなど、一部の Direct3D デバイスや一部のハードウェア デバイスでは、圧縮テクスチャを直接レンダリングできる。これを直接サポートしないレンダラーでは、圧縮サーフェスを非圧縮サーフェスにブリットする必要がある。関数 BltToUncompressedSurface は、この方法を示している。