DD_LOCKDATA 構造体 (ddrawint.h)
DD_LOCKDATA構造体には、Microsoft DirectDraw パラメーター構造体で定義されているロックを行うために必要な情報が含まれています。
構文
typedef struct _DD_LOCKDATA {
PDD_DIRECTDRAW_GLOBAL lpDD;
PDD_SURFACE_LOCAL lpDDSurface;
DWORD bHasRect;
RECTL rArea;
LPVOID lpSurfData;
HRESULT ddRVal;
VOID *Lock;
DWORD dwFlags;
FLATPTR fpProcess;
} *PDD_LOCKDATA, DD_LOCKDATA;
メンバー
lpDD
ドライバーのデバイスを記述する DD_DIRECTDRAW_GLOBAL 構造体を指します。
lpDDSurface
ロックダウンするメモリ領域に関連付けられたバッファーである LockD3DBuffer の場合は、サーフェスを記述するDD_SURFACE_LOCAL構造体を指します。
bHasRect
rArea 内の領域が有効かどうかを指定します。 0x00000001の値は有効な領域を示し、0x00000000は無効な領域を示します。
rArea
ロックダウンするサーフェス上の領域を定義する RECTL 構造体を指定します。
lpSurfData
ドライバーがロックダウンしたメモリ領域へのポインターを返すことができる場所を指定します。
ddRVal
ドライバーが DdLock または LockD3DBuffer コールバックの戻り値を書き込む場所を指定します。 DD_OKのリターン コードは成功を示します。 詳細については、「 DirectDraw の戻り値」を参照してください。
Lock
DirectDraw API で使用され、ドライバーで入力しないでください。
dwFlags
メモリ ロックダウンの実行方法をドライバーに指示するビットマスクを指定します。 このメンバーは、次のいずれかの値のビットごとの OR です。
フラグ | 説明 |
---|---|
DDLOCK_DISCARDCONTENTS |
このフラグは、アプリケーションがサーフェスまたはロックされた四角形内のすべてのピクセルを上書きすることを計画しているため、並べ替え解除プロセスをスキップできることを示すヒントです (したがって、順序が変更されていないピクセルは消去されます)。 アプリケーションは、サーフェス全体またはロックされた四角形全体を上書きする場合は、常にこのフラグを設定する必要があります。 |
DDLOCK_DONOTWAIT | IDirectDrawSurface7 以降のインターフェイスでは、既定値は DDLOCK_WAIT です。 既定値をオーバーライドし、アクセラレータがビジー状態のときに時間を使用する場合 (DDERR_WASSTILLDRAWINGリターン コードで示されます)、このフラグを使用します。 |
DDLOCK_EVENT | イベント ハンドルが Lock に渡されている場合に設定します。これにより、要求されたサーフェス メモリ ポインターを返すことができるときにイベントがトリガーされます。 |
DDLOCK_HASVOLUMETEXTUREBOXRECT | ドライバーは、 rArea の四角形 (RECTL) で指定されたサブボリューム テクスチャの先頭への有効なメモリ ポインターを返す必要があります。 ドライバーは、左右の座標 (RECTL の左右のメンバー) の上位 16 ビットからサブボリュームの前面と背面の座標をそれぞれ取得します。 左右の座標は、下位 16 ビットに制限されます。 四角形が指定されていない場合、ドライバーはボリューム全体の上部へのポインターを返す必要があります。 この値は、DirectX 8.1 以降で使用できます。 |
DDLOCK_NODIRTYUPDATE |
|
DDLOCK_NOOVERWRITE | Direct3D 頂点バッファー ロックでのみ使用されます。 フレームの開始 (またはこのフラグのない最後のロック) 以降、 IDirect3DDevice7::D rawPrimitiveVB および IDirect3DDevice7::D rawIndexedPrimitiveVB 呼び出し (Direct3D SDK ドキュメントで説明) で参照されていた頂点がロック中に変更されていないことを示します。 これは、頂点バッファーにデータを追加するだけの場合に便利です。 |
DDLOCK_NOSYSLOCK |
|
DDLOCK_OKTOSWAP | DDLOCK_DISCARDCONTENTSと同じです。 |
DDLOCK_READONLY | ロックされているサーフェスは読み取り元のみです。 Windows 2000 以降では、このフラグは設定されません。 |
DDLOCK_SURFACEMEMORYPTR | ドライバーは、 rArea で指定された四角形の上部に有効なメモリ ポインターを返す必要があります。 四角形が指定されていない場合、ドライバーはサーフェスの上部へのポインターを返す必要があります。 |
DDLOCK_WAIT | Lock が有効なメモリ ポインターを取得できるようになるまで待機してから、返す必要があることを示す に設定します。 このビットが設定されている場合、 Lock はDDERR_WASSTILLDRAWINGを返しません。 |
DDLOCK_WRITEONLY | ロックされているサーフェスの書き込みのみが行われます。 Windows 2000 以降では、このフラグは設定されません。 |
fpProcess
ドライバーのメモリのユーザー モード マッピングへのポインターを指定します。 ドライバーは 、DdMapMemory でこのマッピングを実行します。 Windows 2000 以降のみ。
要件
Header | ddrawint.h (Winddi.h を含む) |