Platform SDK: DirectX

圧縮したテクスチャの作成

[C++]

サーフェスの作成時に DDSURFACEDESC2 構造体に圧縮したテクスチャ サーフェスを記述するには、次に示すステップを行うこと。

イメージ データを圧縮したテクスチャ サーフェスにロードするには、2 通りの方法がある。

 :  圧縮したサーフェスで IDirectDrawSurface7::Lock または IDirectDrawSurface7::GetSurfaceDesc を呼び出す場合、DDSD_LINEARSIZE フラグが DDSURFACEDESC 構造体の dwFlags メンバに設定されており、dwLinearSize メンバに圧縮したサーフェス データを含むために割り当てられたバイト数が含まれていなくてはならない。dwLinearSize パラメータは lPitch パラメータとの共用体なので、これらのパラメータは DDSD_LINEARSIZE および DDSD_PITCH フラグのように相互に排他となる。

[Visual Basic]

サーフェスの作成時に DDSURFACEDESC2 型に圧縮したテクスチャ サーフェスを記述するには、次に示すステップを行うこと。

イメージ データを圧縮したテクスチャ サーフェスにロードするには、2 通りの方法がある。

 :  圧縮したサーフェスで DirectDrawSurface7.Lock または DirectDrawSurface7.GetSurfaceDesc を呼び出す場合、DDSD_LINEARSIZE フラグが DDSURFACEDESC2 型の lFlags メンバに設定されており、lLinearSize メンバに圧縮されたサーフェス データを含むために割り当てられたバイト数が含まれていなくてはならない。lLinearSize パラメータは lPitch パラメータとの共用体なので、これらのパラメータは DDSD_LINEARSIZE および DDSD_PITCH フラグのように相互に排他となる。

この利点は、アプリケーション自体で特定のフォーマットに対するサーフェスの特定の幅と高さに必要なストレージ容量を計算せずに、圧縮したサーフェスのコンテンツをファイルにコピーできることにある。

圧縮したテクスチャの 5 つのタイプを以下の表に示す。データが格納される方法 (各自で圧縮ルーチンを記述する場合だけに必要となる) の詳細については、「圧縮したテクスチャ フォーマット」を参照すること。

FOURCC 説明 アルファ値事前掛け算済み?
DXT1 不透明/1 ビット アルファ n/a
DXT2 明示的なアルファ Yes
DXT3 明示的なアルファ No
DXT4 補間したアルファ Yes
DXT5 補間したアルファ No

注 :  値事前掛け算済みではないフォーマットから値事前掛け算済みのフォーマットにブリットする場合、DirectDraw はアルファ値を基に色をスケールする。値事前掛け算済みのファーマットから値事前掛け算済みではないフォーマットへのブリットはサポートされない。値事前掛け算済みのアルファ転送元から値事前掛け算済みではないアルファ転送先へのブリットを試すと、メソッドが DDERR_INVALIDPARAMS を返す値事前掛け算済みのアルファ転送元からアルファのない転送先へブリットすると、アルファでスケールされる転送元色成分は同様にコピーされる。