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 では、サイズ dwBlockSizeXdwBlockSizeY のメモリ ブロックをオフスクリーン メモリに割り当てる必要があります。
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 を含む)

関連項目

CreateD3DBuffer

D3dDrawPrimitives2

DDPIXELFORMAT

DdCreateSurface

VIDEOMEMORY