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 應該在 offscreen 記憶體中配置大小 為 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 報告較大的緩衝區大小。
需求
標頭 | ddrawint.h (包括 Winddi.h) |