DDSCAPS2 結構 (ddraw.h)
DDSCAPS2 結構會定義 Microsoft DirectDraw 介面物件的其他功能。
語法
typedef struct _DDSCAPS2 {
DWORD dwCaps;
DWORD dwCaps2;
DWORD dwCaps3;
union {
DWORD dwCaps4;
DWORD dwVolumeDepth;
} DUMMYUNIONNAMEN;
} DDSCAPS2;
成員
dwCaps
指定一組旗標,代表表面的功能。 這個成員中的旗標與 DDSCAPS 結構對應成員中的旗標相同。
dwCaps2
指定一組旗標,指出其他表面功能。 此成員可以包含下列一或多個功能旗標。 應用程式呼叫 其 CreateSurface 方法時,應用程式會設定這些旗標DDSCAPS2_TEXTUREMANAGE以外的每個旗標。
旗標 | 意義 |
---|---|
DDSCAPS2_ADDITIONALPRIMARY |
僅限 Microsoft DirectX 9.0 和更新版本。 表示多頭卡片的次級頭部在針對已設定此位的次級頭部建立表面之後,不再控制其視訊記憶體。 一旦終結這類表面,次級頭部就會重新取得其記憶體的控制。 如需詳細資訊,請參閱 管理 Multiple-Head 記憶體。 |
DDSCAPS2_COMMANDBUFFER |
標記 Microsoft Direct3D 用來批次處理命令的命令緩衝區。 |
DDSCAPS2_CUBEMAP |
此表面是立方體環境地圖。 使用此旗標時,也會指定要建立之立方體環境地圖的臉部或臉部。 |
DDSCAPS2_CUBEMAP_POSITIVEX |
此旗標會與DDSCAPS2_CUBEMAP旗標搭配使用,以建立三次方環境地圖的正 X 面。 |
DDSCAPS2_CUBEMAP_NEGATIVEX |
此旗標會與 DDSCAPS2_CUBEMAP 旗標搭配使用,以建立立方體環境對應的負 X 面。 |
DDSCAPS2_CUBEMAP_POSITIVEY |
此旗標會與DDSCAPS2_CUBEMAP旗標搭配使用,以建立三次方環境地圖的正 Y 面。 |
DDSCAPS2_CUBEMAP_NEGATIVEY |
此旗標會與 DDSCAPS2_CUBEMAP 旗標搭配使用,以建立三次方環境對應的負 Y 面。 |
DDSCAPS2_CUBEMAP_POSITIVEZ |
此旗標會與DDSCAPS2_CUBEMAP旗標搭配使用,以建立三次方環境地圖的正 Z 面。 |
DDSCAPS2_CUBEMAP_NEGATIVEZ |
此旗標會與DDSCAPS2_CUBEMAP旗標搭配使用,以建立三次方環境對應的負 Z 面。 |
DDSCAPS2_CUBEMAP_ALLFACES |
此旗標會與DDSCAPS2_CUBEMAP旗標搭配使用,以建立三次方環境地圖的所有六個臉部。 |
DDSCAPS2_D3DTEXTUREMANAGE |
紋理一律由 Direct3D 管理。 |
DDSCAPS2_DISCARDBACKBUFFER |
僅限 DirectX 8.0 和更新版本。 表示不需要保留背景緩衝區。 如果應用程式已在 Present API 上設定D3DSWAPEFFECT_DISCARD,則會在主要介面和背景緩衝區上設定它。 僅限 DirectX 9.0 和更新版本。 表示不需要保留深度樣板表面。 |
DDSCAPS2_DONOTPERSIST |
受控表面可以安全地遺失。 |
DDSCAPS2_ENABLEALPHACHANNEL |
僅限 DirectX 8.1 和更新版本。 表示建立屬於主要翻轉鏈結的一部分或位於獨立後端緩衝區的介面。 此旗標會開啟 Alpha 色板。 如需詳細資訊,請參閱 在 Full-Screen Back Buffers 上啟用 Alpha 通道。 |
DDSCAPS2_EXTENDEDFORMATPRIMARY |
僅限 DirectX 9.0 和更新版本。 表示建立虛擬主要表面以搭配非標準顯示模式使用。 如需詳細資訊,請參閱 在標準和非標準模式之間切換。 |
DDSCAPS2_HARDWAREDEINTERLACE |
驅動程式必須將交錯訊號轉換成漸進式畫面。 也必須設定這個結構中的DDSCAPS_VIDEOPORT和DDSCAPS_OVERLAY旗標。 |
DDSCAPS2_HINTANTIALIASING |
應用程式會使用反鋸齒。 只有在同時設定DDSCAPS_3DDEVICE旗標時,此旗標才有效。 |
DDSCAPS2_HINTDYNAMIC |
應用程式會經常更新介面。 具有此旗標集的介面也必須具有此結構集中的DDSCAPS_TEXTURE旗標。 這個旗標不能與DDSCAPS2_HINTSTATIC或DDSCAPS2_OPAQUE旗標搭配使用。 |
DDSCAPS2_HINTSTATIC |
應用程式會不常更新表面,但仍需要存取權。 具有此旗標集的介面也必須具有此結構集中的DDSCAPS_TEXTURE旗標。 此旗標無法與DDSCAPS2_HINTDYNAMIC或DDSCAPS2_OPAQUE旗標搭配使用。 |
DDSCAPS2_INDEXBUFFER |
僅限 DirectX 8.0 和更新版本。 標記由應用程式建立和控制的索引緩衝區。 |
DDSCAPS2_MIPMAPSUBLEVEL |
它可讓您更輕鬆地使用 GetAttachedSurface,而不是 EnumAttachedSurfaces,以進行 Cube 地圖之類的表面建構,其中有多個 Mipmap 表面附加至根表面。 這應該在 mipmapped Cube 地圖中的所有非頂端表面上設定,以便 呼叫 GetAttachedSurface 可以區分最上層臉部和附加 Mipmap 層級。 CreateSurface會忽略這項功能位。 |
DDSCAPS2_NOTUSERLOCKABLE |
僅限 DirectX 8.0 和更新版本。 如果翻轉鏈結無法鎖定,或在無法鎖定的任何轉譯目標上設定,請在主要和背景緩衝區上設定 。 這可讓驅動程式在幕後進行優化。 請注意,仍然可以鎖定表面,因此驅動程式必須處理這些案例,但這類鎖定不常發生,而且預期不會快速。 驅動程式也可以判斷深度/樣板緩衝區是否可透過此旗標的存在來鎖定。 |
DDSCAPS2_NPATCHES |
僅限 DirectX 8.0 和更新版本。 表示頂點緩衝區資料可用來呈現 n 修補程式。 |
DDSCAPS2_OPAQUE |
應用程式永遠不會鎖定、blit 或更新該表面存留期的其餘部分。 驅動程式可以壓縮或重新排清單面,而不需要解壓縮它。 具有此旗標集的介面也必須具有此結構集中的DDSCAPS_TEXTURE旗標。 此旗標不能與DDSCAPS2_HINTDYNAMIC或DDSCAPS2_HINTSTATIC旗標搭配使用。 |
DDSCAPS2_POINTS |
僅限 DirectX 8.0 和更新版本。 表示頂點緩衝區資料可用來轉譯點和點 Sprite。 |
DDSCAPS2_RTPATCHES |
僅限 DirectX 8.0 和更新版本。 表示頂點緩衝區資料可用來轉譯 rt-patch。 |
DDSCAPS2_STEREOSURFACELEFT |
這個表面是立體翻轉鏈結的一部分。 在 CreateSurface 呼叫期間設定此旗標時,會針對主要翻轉鏈結中的每個緩衝區建立一對身歷聲表面。 您必須建立具有背景緩衝區) 的複雜翻轉鏈結 (。 您無法建立一組身歷聲表面。 Flip方法需要背景緩衝區,因此必須建立至少 4 個表面。 此外,當此旗標在 DDSURFACEDESC 結構中設定為 EnumDisplayModes 或 GetDisplayMode 呼叫的結果時,表示支援該模式中的身歷聲。 |
DDSCAPS2_TEXTUREMANAGE |
用戶端指出此紋理表面應該盡可能由驅動程式管理;否則會由 Direct3D 即時模式管理。 這個旗標只能用於 dwCaps 成員) 中設定的紋理表面 (DDSCAPS_TEXTURE 旗標。 如需詳細資訊,請參閱 Direct3D 即時模式檔中的自動紋理管理。 |
DDSCAPS2_VERTEXBUFFER |
標記由應用程式建立和控制的明確頂點緩衝區。 |
DDSCAPS2_VOLUME |
僅限 DirectX 8.0 和更新版本。 如果紋理除了寬度和高度之外,還具有深度,就會設定此旗標。 |
dwCaps3
僅限 DirectX 8.0 和 DirectX 8.1 版本。
指定多重取樣表面的樣本數目。 此欄位會保存列舉型別D3DMULTISAMPLE_TYPE的其中一個值。 如果表面不是多重取樣, dwCaps3 的值會D3DMULTISAMPLE_NONE (0) 。
僅限 DirectX 9.0 和更新版本。
指定一組表示其他表面功能的位。 這個成員可以是下列位的位 OR。
Bits | 意義 |
---|---|
DDSCAPS3_MULTISAMPLE_MASK遮罩中的位 (0x00000001FL) 。 |
dwCaps3的前五個位表示多重取樣表面的樣本數目。 您可以使用列舉型別的其中一個值來指定樣本數目D3DMULTISAMPLE_TYPE。 如果表面不是多重取樣,這個值會D3DMULTISAMPLE_NONE (0) 。 |
DDSCAPS3_MULTISAMPLE_QUALITY_MASK遮罩中的位 (0x000000E0L) 。 |
接下來的三個 dwCaps3 位表示多取樣表面中轉譯樣本的品質等級。 品質等級必須是 0 到 7 的數位,分別代表 1 到 8 的品質等級。 請注意,即使表面不是使用 D3DMULTISAMPLE_NONE) 在前五個位中指定的多重取樣 (,它仍然可以使用大於 0) 的數位來指定大於 1 的品質等級 (。 |
DDSCAPS3_RESERVED1 (0x00000100L) | 保留 |
DDSCAPS3_VIDEO (0x00000200L) | 表示轉譯目標包含視訊資料。 請注意,您可以使用這個旗標來建立數個轉譯目標,如果其中兩個以上的轉譯目標屬於相同的 Direct3D 內容,則驅動程式會判斷這些轉譯目標全都會顯示相同的視訊資料流程,而不論轉譯目標介面是否彼此附加。 |
DDSCAPS3_LIGHTWEIGHTMIPMAP (0x00000400L) | 指出此表面是否有輕量型 Mip 層級 |
DDSCAPS3_AUTOGENMIPMAP (0x00000800L) | 表示會自動產生此表面的 mip 子層級。 |
DDSCAPS3_DMAP (0x00001000L) | 表示位移貼圖紋理,該紋理可由鑲嵌單位中的位移對應取樣器取樣。 |
DUMMYUNIONNAMEN
N/A
DUMMYUNIONNAMEN.dwCaps4
低字是磁片區紋理的深度。
DUMMYUNIONNAMEN.dwVolumeDepth
指定磁片區紋理位深度。
備註
驅動程式會使用此結構來報告驅動程式支援的介面類別型。 它也會由應用程式填入,以指定要建立的介面類別型。
需求
標頭 | ddraw.h |