共用方式為


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

指定 directDraw Microsoft寫入 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位。 dwBackBufferCountDDSURFACEDESC 結構的成員必須設定為至少 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 像素格式的亮度數據有效。 在凸起地圖表面懸掛亮度時,會使用此旗標;圖元的亮度部分的位掩碼接著會以 dwBumpLuminanceBitCountDDPIXELFORMAT 結構的成員表示。
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