DD_SURFACE_GLOBAL 構造体 (ddrawint.h)
DD_SURFACE_GLOBAL構造には、複数のサーフェス間で共有できるグローバルサーフェス関連データが含まれています。
構文
typedef struct _DD_SURFACE_GLOBAL {
union {
DWORD dwBlockSizeY;
LONG lSlicePitch;
};
union {
LPVIDEOMEMORY lpVidMemHeap;
DWORD dwBlockSizeX;
DWORD dwUserMemSize;
};
FLATPTR fpVidMem;
union {
LONG lPitch;
DWORD dwLinearSize;
};
LONG yHint;
LONG xHint;
DWORD wHeight;
DWORD wWidth;
ULONG_PTR dwReserved1;
DDPIXELFORMAT ddpfSurface;
FLATPTR fpHeapOffset;
HANDLE hCreatorProcess;
} *PDD_SURFACE_GLOBAL, DD_SURFACE_GLOBAL;
メンバー
dwBlockSizeY
ドライバーが、Microsoft DirectDraw で割り当てる必要があるオフスクリーン メモリ ブロックの高さをスキャン行で返す場所を指定します。 ドライバーは、 fpVidMem メンバーのDDHAL_PLEASEALLOC_BLOCKSIZEを返すときに、この値を設定する必要があります。
lSlicePitch
ボリューム テクスチャのスライス ピッチ。
lpVidMemHeap
ヒープ表示メモリが割り当てられた VIDEOMEMORY 構造体を指します。
dwBlockSizeX
DirectDraw で割り当てる必要があるオフスクリーン メモリ ブロックの幅のバイト単位のサイズをドライバーが返す場所を指定します。 ドライバーは、 fpVidMem メンバーのDDHAL_PLEASEALLOC_BLOCKSIZEを返すときに、この値を設定する必要があります。
dwUserMemSize
DirectDraw がユーザー モードのシステム メモリに割り当てるメモリ ブロックのサイズをバイト単位でドライバーが返す場所を指定します。 ドライバーは、 fpVidMem メンバーでDDHAL_PLEASEALLOC_USERMEMを返すときに、この値を設定する必要があります。
fpVidMem
ドライバーがメモリ ブロックを割り当てる場合は、このメンバーの表示メモリにオフセットを返す必要があります。 ドライバーがメモリ割り当てを行うために DirectDraw を要求した場合は、代わりに DdCreateSurface ルーチンからこのメンバー内の次の値のいずれかを返すことができます。
値 | 意味 |
---|---|
DDHAL_PLEASEALLOC_BLOCKSIZE | DirectDraw では、サイズ dwBlockSizeX と dwBlockSizeY のメモリ ブロックをオフスクリーン メモリに割り当てる必要があります。 |
DDHAL_PLEASEALLOC_USERMEM | DirectDraw は、ユーザー モード メモリに dwUserMemSize サイズのメモリ ブロックを割り当てる必要があります。 |
lPitch
サーフェスのピッチを指定します。つまり、次の行の先頭までの距離 (バイト単位)。 これは、サーフェスのストライドとも呼ばれます。
dwLinearSize
非円形サーフェスの線形サイズをバイト単位で指定します。
yHint
サーフェスの y 座標を指定します。 このメンバーは、デバイス空間で指定された 2D デカルト座標です。
xHint
サーフェスの x 座標を指定します。 このメンバーは、デバイス空間で指定された 2D デカルト座標です。
wHeight
サーフェスの高さをピクセル単位で指定します。
wWidth
サーフェスの幅をピクセル単位で指定します。
dwReserved1
ディスプレイ ドライバーで使用するために予約されています。
ddpfSurface
サーフェスのピクセル形式を記述する DDPIXELFORMAT 構造体を指します。
fpHeapOffset
ソース ヒープ内の生オフセットをポイントします。
hCreatorProcess
システムで使用するために予約されており、ドライバーでは無視する必要があります。
解説
CreateD3DBuffer によって作成された頂点バッファーには、プリミティブのレンダリングに D3dDrawPrimitives2 コールバックによって使用される頂点の一覧が保持されます。 Microsoft Windows は、頂点バッファーを DirectDraw サーフェスとして表し、頂点バッファーとDD_SURFACE_GLOBAL構造体間の接続を確立します。
DirectX ドライバーが頂点バッファーを操作している場合、このバッファーのサイズを正しく判断できることが重要です。 DirectDraw は、この構造体の lPitch メンバー内のドライバーに線形バッファー サイズを渡します。 Windows 2000 以降のバージョンでは、Windows 98/Me では使用できませんが、この構造体の wWidth メンバーは同じ値に設定されます。 両方の構造体メンバーを読み取り専用と見なす必要があることに注意してください。 DirectDraw がこれらのメンバーに配置する値は、頂点バッファーの最小サイズを表します。 より大きなバッファーの必要性が発生した場合 (最適化など)、ドライバー ライターは、そのサイズよりも大きいバッファーを自由に作成できます。 ただし、状況によっては、ドライバーが DirectDraw に大きなバッファー サイズを報告する必要はありません。
要件
Header | ddrawint.h (Winddi.h を含む) |