FORMATOP 結構 (d3dumddi.h)

FORMATOP 結構描述可透過這類表面執行的介面格式和作業。

語法

typedef struct _FORMATOP {
  [in]  D3DDDIFORMAT Format;
  [out] UINT         Operations;
  [out] UINT         FlipMsTypes;
  [out] UINT         BltMsTypes;
  [out] UINT         PrivateFormatBitCount;
} FORMATOP;

成員

[in] Format

表示表面圖元格式 的D3DDDIFORMAT型別值。

[out] Operations

下列旗標的有效位 OR ,表示可在介面上執行的作業,其圖元格式是在 Format 成員中指定的圖元格式。 下列部分旗標表示應該使用其他旗標。 如果驅動程式設定表示其他旗標的旗標,則不需要驅動程式來設定隱含旗標,而 Direct3D 運行時間會決定使用隱含旗標。

FORMATOP_TEXTURE (0x00000001L)

指定圖元格式的介面可以做為 MIP 對應的紋理。

FORMATOP_VOLUMETEXTURE (0x000000002L)

此格式的介面可以當做磁碟區紋理使用。 請注意,此旗標與FORMATOP_TEXTURE無關。 因此,圖元格式可用於磁碟區紋理,不適用於傳統 MIP 對應的紋理。

FORMATOP_CUBETEXTURE (0x00000004L)

此格式的介面可以當做立方環境地圖紋理使用。 請注意,此旗標與FORMATOP_TEXTURE無關。 因此,圖元格式可用於立方環境地圖紋理,不適用於傳統MIP對應的紋理。

FORMATOP_OFFSCREEN_RENDERTARGET (0x00000008L)

不論顯示模式的圖元格式為何,此格式的介面都可以當做螢幕外轉譯目標使用,如果目前顯示模式的圖元格式回報FORMATOP_DISPLAYMODE和FORMATOP_3DACCELERATION。 如果目前顯示模式的圖元格式未設定這些旗標,即使轉譯目標已關閉螢幕,此模式也不會提供 3D 加速。 FORMATOP_OFFSCREEN_RENDERTARGET旗標可以與FORMATOP_TEXTURE結合,以指出裝置可以轉譯為指定圖元格式的紋理。

FORMATOP_OFFSCREEN_RENDERTARGET旗標也表示FORMATOP_SAME_FORMAT_RENDERTARGET和FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET旗標。

FORMATOP_SAME_FORMAT_RENDERTARGET (0x000000010L)

這個格式的介面可以當做轉譯目標使用,但只有當表面的圖元格式符合目前顯示模式的圖元格式時。 此旗標不僅適用於螢幕外轉譯目標,還可以在顯示模式的圖元格式上指定,以指出轉譯目標功能。 此旗標可以與FORMATOP_TEXTURE結合,以指出裝置可以轉譯為指定圖元格式的紋理。

FORMATOP_SAME_FORMAT_RENDERTARGET旗標也表示FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET旗標。

FORMATOP_ZSTENCIL (0x00000040L)

這個格式的介面可以當做 Z/樣板緩衝區使用,但只有在 Z/樣板表面的深度符合深度緩衝區所附加之轉譯目標的色彩深度時才使用。 當您決定 Z/樣板與色彩緩衝區深度之間的相符專案時,請使用圖元步幅。

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH (0x000000080L)

不論介面所連接的轉譯目標色彩深度為何,此格式的介面都可以當做 Z/樣板緩衝區使用。

FORMATOP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH旗標也表示FORMATOP_ZSTENCIL旗標。

FORMATOP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET (0x000000100L)

如果目前的顯示模式是相同的深度,而且會忽略 Alpha 色板,則此格式的介面可以當做轉譯目標使用。 例如,如果裝置可以在顯示模式X8R8G8B8時轉譯為A8R8G8B8,則A8R8G8B8的格式作業清單專案應該已設定此旗標。

FORMATOP_DISPLAYMODE (0x00000400L)

驅動程式模型支援此像素格式的顯示模式, (包括翻轉) 。 此旗標不應該在Alpha格式上設定。

FORMATOP_3DACCELERATION (0x00000800L)

圖形加速器可以在具有此圖元格式的顯示模式中支援某些層級的 Microsoft Direct3D 加速,而驅動程式可以在此模式中建立內容, (某些轉譯目標格式) 。 只有在報告顯示模式格式 (指定FORMATOP_DISPLAYMODE) 时,才能使用此旗標。 此旗標不應該用來報告螢幕外轉譯目標格式。

FORMATOP_PIXELSIZE (0x00001000L)

驅動程式會針對 PrivateFormatBitCount 成員中的格式填入每個圖元的位。

如果驅動程式要求 Managed 表面和紋理使用私用格式 (驅動程式可以處理,但不是 Direct3D 運行時間原生處理的格式) ,驅動程式就必須在 PrivateFormatBitCount 中指定FORMATOP_PIXELSIZE和圖元大小。

FORMATOP_CONVERT_TO_ARGB (0x00002000L)

此格式的來源介面可以轉換成任何具有指定之FORMATOP_MEMBEROFGROUP_ARGB旗標的 RGB 像素格式的目標介面。

FORMATOP_OFFSCREENPLAIN (0x00004000L)

驅動程式可以延展到此格式的色彩填滿表面和從中延伸。

FORMATOP_SRGBREAD (0x00008000L)

此格式的介面可以讀取為 sRGB 格式紋理, (也就是取樣器會將查閱的數據線性化) 。

FORMATOP_BUMPMAP (0x00010000L)

此格式的介面可以當做凸起環境地圖紋理使用。 請注意,此旗標與FORMATOP_TEXTURE無關。 因此,圖元格式可用於凸起環境地圖紋理,而不是用於傳統MIP對應的紋理。

FORMATOP_DMAP (0x00020000L)

位移地圖取樣器可以取樣此格式的表面。

FORMATOP_NOFILTER (0x00040000L)

此格式的介面無法搭配紋理篩選使用。

FORMATOP_MEMBEROFGROUP_ARGB (0x00080000L)

此格式的目標介面可以從任何來源介面轉換,其中包含指定FORMATOP_CONVERT_TO_ARGB旗標的圖元格式。 驅動程式只能針對每個通道至少有5位色彩資訊的ARGB表面指定FORMATOP_MEMBEROFGROUP_ARGB。 也就是說,D3DDDIFMT_A1R5G5B5格式有效,但D3DDDIFMT_A4R4G4B4格式無效。 如果驅動程式指定格式無效的FORMATOP_MEMBEROFGROUP_ARGB,Direct3D 運行時間會防止 Direct3D HAL 載入。 請注意,雖然此旗標表示 ARGB 格式,但運行時間也允許驅動程式指定 XRGB 格式 (的介面,例如D3DDDIFMT_X1R5G5B5) 。

FORMATOP_SRGBWRITE (0x00100000L)

此格式的介面可以寫入為 sRGB 格式目標 (,也就是圖元管道會將輸出上的數據譯為) 。

FORMATOP_NOALPHABLEND (0x00200000L)

此格式的介面無法搭配 Alpha 混合使用。

FORMATOP_AUTOGENMIPMAP (0x00400000L)

您可以自動產生具有此格式之 MIP 對應紋理的子層級。 若要讓驅動程式接收其 GenerateMipSubLevels 函式的呼叫,必須公開此旗標。

FORMATOP_VERTEXTEXTURE (0x00800000L)

頂點紋理取樣器可以使用此格式的介面。 也就是說,只有這個格式的介面可以當做頂點紋理使用。

FORMATOP_NOTEXCOORDWRAPNORMIP (0x01000000L)

此格式的介面只能有條件地用於 2D 紋理的紋理對應,且維度不是 2。 如需詳細資訊,請參閱 D3DPRIMCAPS 參考頁面中D3DPTEXTURECAPS_POW2和D3DPTEXTURECAPS_NONPOW2CONDITIONAL的定義。

FORMATOP_PLANAR (0x02000000L)

此格式的介面是平面與封裝。 如果 Direct3D 執行時間在表面失去平面格式時呼叫使用者模式顯示驅動程式 的 Lock 函式,而且無法進行間距乘數高度的一般計算,則必須配置緩衝區。 除了 Microsoft DirectX 影片加速所使用的格式以外,大部分的格式都會封裝 (,例如 YUV 格式) 。

FORMATOP_OVERLAY (0x04000000L)

此格式的介面用於重迭作業。

FORMATOP_CAPTURE (0x08000000L)

如果已設定D3DDDI_RESOURCEFLAGS2結構的VideoEncoder成員,這個格式的介面可以當做擷取緩衝區使用。

從 Windows 8 開始支援。

FORMATOP_VIDEO_ENCODER (0x10000000L)

如果已設定D3DDDI_RESOURCEFLAGS2結構的 VideoEncoder 成員,這個格式的介面可以當做視訊編碼器輸入資源使用。

從 Windows 8 開始支援。

FORMATOP_MULTIPLANE_OVERLAY (0x20000000L)

此格式的介面支援多平面重疊。

從 Windows 8 開始支援。

[out] FlipMsTypes

全螢幕多重取樣的32位掩碼。

[out] BltMsTypes

視窗化多重取樣的 32 位掩碼。

[out] PrivateFormatBitCount

驅動程式 (私用的圖元格式每圖元位,而不是 D3DDDIFORMAT 列舉類型所定義的其中一個標準圖元格式) 。

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
標頭 d3dumddi.h (include D3dumddi.h)

另請參閱

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

D3DDDIFORMAT

D3DDDI_RESOURCEFLAGS2

GetCaps