DDSCAPS 結構 (ddraw.h)

DDSCAPS 結構會定義 Microsoft DirectDraw 介面物件的功能。

語法

typedef struct _DDSCAPS {
  DWORD dwCaps;
} DDSCAPS;

成員

dwCaps

指出一組旗標,指定表面的功能。 這個成員是下列任何一個旗標的位 OR:

旗標 意義

DDSCAPS_3DDEVICE

此表面可用於 3D 轉譯。 應用程式可以使用此旗標來確保只能轉譯到特定堆積的裝置已從正確的堆積配置螢幕外表面。 如果已針對堆積設定此旗標,則介面不會從該堆積配置。

DDSCAPS_ALLOCONLOAD

在應用程式使用 IDirect3DTexture::Load 方法載入表面之前,不會配置表面的記憶體。

DDSCAPS_ALPHA

此表面僅包含 Alpha 資訊。

DDSCAPS_BACKBUFFER

此表面是表面翻轉結構的後台緩衝區。 一般而言,使用 DDSCAPS_FLIP 旗標時,這個功能是由應用程式的 CreateSurface 方法所設定。 只有緊接在DDSCAPS_FRONTBUFFER介面前面的表面才會設定這項功能。 其他表面會藉由存在DDSCAPS_FLIP旗標、其附件順序,以及缺少DDSCAPS_FRONTBUFFER和DDSCAPS_BACKBUFFER功能來識別為後台緩衝區。 如果將這項功能傳送至應用程式的 CreateSurface 方法,則會建立獨立的後台緩衝區。 呼叫這個方法之後,這個表面可以附加至前端緩衝區、另一個後台緩衝區,或兩者都形成翻轉表面結構。 如需詳細資訊,請參閱 DirectX SDK 中的 AddAttachedSurface 方法。 DirectDraw 支援翻轉結構中的任意數目表面。

DDSCAPS_COMPLEX

正在描述複雜的表面。 複雜的表面會導致建立多個表面。 其他表面會附加至根表面。 複雜結構只能藉由終結根來終結。

DDSCAPS_EXECUTEBUFFER

表面是執行緩衝區,這是保留 Microsoft Direct3D 顯示清單的系統或視訊記憶體線性區塊。 驅動程式會報告這項功能位,指出它可以在視訊記憶體中建立執行緩衝區。 如果 Direct3D 執行時間偵測到此位,它可以向驅動程式要求執行緩衝區。 應用程式無法偵測這項功能位。

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 表面。 如果 Microsoft Windows 2000 或更新版本驅動程式已設定此功能位,則會停用 DirectDraw。

DDSCAPS_NONLOCALVIDMEM

此表面存在於非本機顯示記憶體中,而不是 true 的本機顯示記憶體。 如果指定此旗標,也必須指定DDSCAPS_VIDEOMEMORY旗標。 這無法與 DDSCAPS_LOCALVIDMEM 旗標搭配使用。

DDSCAPS_OFFSCREENPLAIN

此表面是非重疊、紋理、z 緩衝區、前端緩衝區、後台緩衝區或Alpha表面的任何離螢幕表面。 它用來識別純面。

DDSCAPS_OVERLAY

此表面是重疊。 此重疊的可見性取決於它目前是否重疊到主要表面。 DDSCAPS_VISIBLE可用來判斷目前是否要重載。

DDSCAPS_OPTIMIZED

此旗標目前未實作。

DDSCAPS_OWNDC

此表面會有一段長時間的DC) 關聯 (裝置內容。 如果 Windows 2000 或更新版本的驅動程式已設定此功能位,則會停用 DirectDraw。

DDSCAPS_PALETTE

此設備驅動器允許建立唯一的 DirectDrawPalette 物件並附加至此表面。

DDSCAPS_PRIMARYSURFACE

此表面是主要表面。 它代表使用者目前可以看到的內容。

DDSCAPS_PRIMARYSURFACELEFT

此表面是左眼的主要表面。 它代表使用者目前看得見的內容。 建立此表面時,具有DDSCAPS_PRIMARYSURFACE功能的介面代表使用者右眼所看到的內容。

DDSCAPS_STANDARDVGAMODE

此表面是標準的 VGA 模式介面,而不是 ModeX 表面。 這個旗標不能與 DDSCAPS_MODEX 旗標搭配使用。

DDSCAPS_SYSTEMMEMORY

此表面記憶體已從系統記憶體配置。 如果 Windows 2000 或更新版本驅動程式已設定此功能位,則會停用 DirectDraw。

DDSCAPS_TEXTURE

此表面可作為 3D 紋理。 它不會指出介面是否用於該用途。

DDSCAPS_VIDEOMEMORY

此表面存在於顯示記憶體中。

DDSCAPS_VIDEOPORT

此介面可以從 視訊埠延伸模組接收數據, (VPE) 物件。

DDSCAPS_VISIBLE

對這個表面所做的變更會立即顯示。 它一律會針對主要表面設定,以及在重疊重疊和紋理貼圖進行紋理貼圖時設定。

DDSCAPS_WRITEONLY

只允許介面的寫入許可權。 從表面讀取存取可能會產生一般保護錯誤 (GPF) ,但來自此表面的讀取結果沒有意義。 如果 Windows 2000 或更新版本驅動程式已設定此功能位,則會停用 DirectDraw。

DDSCAPS_ZBUFFER

此表面是 z 緩衝區。 它包含位深度資訊,可用來判斷哪些像素是可見的,以及哪些圖元被遮蔽。 z 緩衝區包含無法顯示的資訊。

備註

驅動程式會使用此結構來報告驅動程式支援的介面類型。 它也會由應用程式填入,以指定要建立的介面類型。

規格需求

需求
標頭 ddraw.h