共用方式為


DDLOCKOUT 結構 (ddkmapi.h)

DDLOCKOUT 結構包含介面的描述。

語法

typedef struct _DDLOCKOUT {
  DWORD ddRVal;
  DWORD dwSurfHeight;
  DWORD dwSurfWidth;
  LONG  lSurfPitch;
  PVOID lpSurface;
  DWORD SurfaceCaps;
  DWORD dwFormatFlags;
  DWORD dwFormatFourCC;
  DWORD dwFormatBitCount;
  union {
    DWORD dwRBitMask;
    DWORD dwYBitMask;
  };
  union {
    DWORD dwGBitMask;
    DWORD dwUBitMask;
  };
  union {
    DWORD dwBBitMask;
    DWORD dwVBitMask;
  };
} DDLOCKOUT, *LPDDLOCKOUT;

成員

ddRVal

指定 Microsoft DirectDraw 針對DD_DXAPI_LOCK作業寫入 DxApi 函式傳回值的位置。 DD_OK的傳回碼表示成功。

dwSurfHeight

dwSurfWidth

以像素為單位指定表面的維度。

lSurfPitch

指定下一行開頭的距離,以位元組為單位。

lpSurface

指向表面記憶體。

SurfaceCaps

指出一組旗標,指定介面的功能。 這個成員可以設定為下列一或多個旗標:

旗標 意義
DDSCAPS_3DDEVICE 此表面可用於 3D 轉譯。 應用程式可以使用此旗標來確保只能轉譯至特定堆積的裝置已從正確的堆積配置螢幕外表面。 如果為堆積設定此旗標,則介面不會從該堆積配置。
DDSCAPS_ALLOCONLOAD 在應用程式使用 IDirect3DDevice7::Load 方法載入介面之前,不會配置介面的記憶體。
DDSCAPS_ALPHA 此表面包含Alpha資訊。 必須查詢圖元格式,以判斷此表面是否只包含 Alpha 資訊,或與圖元色彩數據交錯的 Alpha 資訊 (,例如 RGBA 或 YUVA) 。
DDSCAPS_BACKBUFFER 此表面是表面翻轉結構的後台緩衝區。 一般而言,使用 DDSCAPS_FLIP 旗標時,應用程式 CreateSurface 方法會設定這項功能。 只有緊接在DDSCAPS_FRONTBUFFER介面之前的表面才會設定這項功能。 其他表面會藉由存在DDSCAPS_FLIP旗標、其附件順序,以及沒有DDSCAPS_FRONTBUFFER和DDSCAPS_BACKBUFFER功能來識別為後台緩衝區。 如果這項功能傳送至應用程式的 CreateSurface 方法,則會建立獨立後台緩衝區。 呼叫這個方法之後,這個介面可以附加至前端緩衝區、另一個後台緩衝區,或兩者都形成翻轉表面結構。 如需詳細資訊,請參閱 DirectX SDK 檔中的 AddAttachedSurface 方法。 DirectDraw 支援翻轉結構中的任意數目表面。
DDSCAPS_COMPLEX 正在描述複雜的表面。 複雜的表面會導致建立多個表面。 其他表面會附加至根介面。 複雜結構只能藉由終結根來終結。
DDSCAPS_FLIP 此表面是表面翻轉結構的一部分。 當此功能傳遞至應用程式的 CreateSurface 方法時,會建立前端緩衝區和一或多個後端緩衝區。 DirectDraw 會在前端緩衝區介面上設定DDSCAPS_FRONTBUFFER位,並在與前端緩衝區介面相鄰的介面上設定DDSCAPS_BACKBUFFER位。 DDSURFACEDESC 結構的 dwBackBufferCount 成員必須設定為至少 1,方法呼叫才能成功。 使用 CreateSurface 方法建立多個表面時,必須一律設定DDSCAPS_COMPLEX功能。
DDSCAPS_FRONTBUFFER 此表面是表面翻轉結構的前端緩衝區。 設定DDSCAPS_FLIP功能時,應用程式 CreateSurface 方法通常會設定此旗標。 如果此功能傳送至 CreateSurface 方法,則會建立獨立前端緩衝區。 此介面沒有DDSCAPS_FLIP功能。 它可以使用應用程式的 AddAttachedSurface 方法,附加至其他後端緩衝區,以形成翻轉結構。
DDSCAPS_HWCODEC 此表面應該能夠讓硬體解壓縮數據流。
DDSCAPS_LIVEVIDEO 此表面應該能夠接收即時影片。
DDSCAPS_LOCALVIDMEM 此表面存在於 true 中,本機顯示記憶體,而不是非本機顯示記憶體。 如果指定此旗標,也必須指定DDSCAPS_VIDEOMEMORY。 此旗標不能與 DDSCAPS_NONLOCALVIDMEM 旗標搭配使用。
DDSCAPS_MIPMAP 此表面是Mipmap的一個層級。 此表面會附加至其他DDSCAPS_MIPMAP表面,以形成 mipmap。 這可以藉由建立許多表面,並使用應用程式的 AddAttachedSurface 方法進行附加,或由應用程式的 CreateSurface 方法隱含地附加它們來完成。 如果已設定此功能,也必須設定DDSCAPS_TEXTURE。
DDSCAPS_MODEX 此表面是 320x200 或 320x240 Mode X 介面。
DDSCAPS_NONLOCALVIDMEM 此表面存在於非本機顯示記憶體中,而不是 true 的本機顯示記憶體。 如果指定此旗標,也必須指定DDSCAPS_VIDEOMEMORY旗標。 這不能與 DDSCAPS_LOCALVIDMEM 旗標搭配使用。
DDSCAPS_OFFSCREENPLAIN 此表面是非重疊、紋理、z 緩衝區、前端緩衝區、後端緩衝區或Alpha表面的任何離線表面。 它用來識別純表面。
DDSCAPS_OPTIMIZED 目前未實作。
DDSCAPS_OVERLAY 此表面是重疊。 視它目前是否要覆寫到主要介面而定,它可能無法直接顯示。 DDSCAPS_VISIBLE可用來判斷目前是否要覆寫。
DDSCAPS_OWNDC 此表面會有一段長時間 (DC) 關聯的裝置內容。
DDSCAPS_PALETTE 此裝置驅動程式允許建立並附加至此介面的唯一 DirectDrawPalette 物件。
DDSCAPS_PRIMARYSURFACE 介面是主要介面。 它代表使用者目前可以看到的內容。
DDSCAPS_PRIMARYSURFACELEFT 此表面是左眼的主要表面。 它代表使用者目前左眼可以看到的內容。 建立此表面時,具有DDSCAPS_PRIMARYSURFACE功能的介面代表使用者右眼看到的內容。
DDSCAPS_STANDARDVGAMODE 此介面是標準 VGA 模式介面,而不是 ModeX 介面。 此旗標不能與 DDSCAPS_MODEX 旗標搭配使用。
DDSCAPS_SYSTEMMEMORY 此表面記憶體已配置於系統記憶體中。
DDSCAPS_TEXTURE 此表面可以當做 3D 紋理使用。 它不會指出介面是否用於該用途。
DDSCAPS_VIDEOMEMORY 此表面存在於顯示記憶體中。
DDSCAPS_VIDEOPORT 此介面可以從硬體視訊埠接收數據。
DDSCAPS_VISIBLE 對這個表面所做的變更會立即顯示。 它一律會針對主要表面設定,以及在重疊重疊和紋理貼圖進行紋理貼圖時設定。
DDSCAPS_WRITEONLY 只允許介面的寫入許可權。 從表面讀取存取可能會產生一般保護錯誤 (GPF) ,但來自此表面的讀取結果沒有意義。
DDSCAPS_ZBUFFER 此表面是 z 緩衝區。 z 緩衝區包含無法顯示的資訊。 相反地,它包含位深度資訊,可用來判斷哪些像素是可見的,以及哪些圖元被遮蔽。

dwFormatFlags

指定一組選擇性控件旗標。 此成員可以設定為下列旗標的組合:

旗標 意義
DDPF_ALPHA 圖元格式描述僅限 Alpha 表面。
DDPF_ALPHAPIXELS 表面具有圖元格式的 Alpha 色板資訊。
DDPF_ALPHAPREMULT 保留供系統使用。
DDPF_BUMPDUDV 以像素格式增加地圖 dUdV 數據有效。
DDPF_BUMPLUMINANCE 像素格式的亮度數據有效。 此旗標會在凸起圖表面的懸置亮度時使用;然後,圖元之亮度部分的位掩碼會由 DDPIXELFORMAT 結構的 dwBumpLuminanceBitCount 成員表示。
DDPF_COMPRESSED 介面會接受指定格式的像素數據,並在寫入作業期間加以壓縮。
DDPF_FOURCC FOURCC 程式代碼有效。
DDPF_LUMINANCE 像素格式的亮度數據有效。 此旗標僅用於亮度或亮度加上 Alpha 表面;然後,位深度會以 DDPIXELFORMAT 結構的 dwLuminanceBitCount 成員表示。
DDPF_PALETTEINDEXED1 表面為1位的索引色彩。
DDPF_PALETTEINDEXED2 表面為 2 位色彩索引。
DDPF_PALETTEINDEXED4 表面已編製 4 位色彩的索引。
DDPF_PALETTEINDEXED8 表面為8位的索引色彩。
DDPF_PALETTEINDEXEDTO8 表面是 1、2 位或 4 位色彩,索引為 8 位調色盤。
DDPF_RGB 像素格式結構的 RGB 資料有效。
DDPF_RGBTOYUV 表面會接受 RGB 數據,並在寫入作業期間將它轉譯為 YUV 數據。 要寫入的數據格式包含在像素格式結構中。 已設定DDPF_RGB旗標。
DDPF_STENCILBUFFER 表面包含樣板資訊以及 Z 資訊。
DDPF_YUV 像素格式結構的 YUV 數據有效。
DDPF_ZBUFFER 像素格式描述僅限 z 緩衝區的介面。
DDPF_ZPIXELS 表面為 RGBZ 格式。

dwFormatFourCC

指定 FOURCC 程式代碼。 如需FOURCC程式碼的詳細資訊,請參閱 DirectX SDK 檔。

dwFormatBitCount

指定 RGB 或 YUV 數據的每圖元 (4、8、16、24 或 32) 位數。

dwRBitMask

指定紅色位的遮罩。

dwYBitMask

指定 Y 位的遮罩。

dwGBitMask

指定綠色位的遮罩。

dwUBitMask

指定 U 位的遮罩。

dwBBitMask

指定藍色位的遮罩。

dwVBitMask

指定 V 位的遮罩。

規格需求

需求
標頭 ddkmapi.h (包含 Ddkmapi.h)

另請參閱

DD_DXAPI_LOCK

DxApi