IDCompositionSurfaceFactory::CreateSurface 方法 (dcomp.h)
建立可以與一或多個視覺效果相關聯的 Surface 物件來進行組合。
語法
HRESULT CreateSurface(
[in] UINT width,
[in] UINT height,
[in] DXGI_FORMAT pixelFormat,
[in] DXGI_ALPHA_MODE alphaMode,
[out] IDCompositionSurface **surface
);
參數
[in] width
表面的寬度,以圖元為單位。
[in] height
表面的高度,以圖元為單位。
[in] pixelFormat
表面的像素格式。
[in] alphaMode
如果 Alpha 色板包含像素格式,則為 Alpha 色板的格式。 這可以是其中一個DXGI_ALPHA_MODE_PREMULTIPLIED或DXGI_ALPHA_MODE_IGNORE。 它也可以DXGI_ALPHA_MODE_UNSPECIFIED,它會解譯為DXGI_ALPHA_MODE_IGNORE。
[out] surface
新建立的 Surface 物件。 此參數不得為 Null。
傳回值
如果函式成功,則會傳回S_OK。 否則,它會傳回 HRESULT 錯誤碼。 如需錯誤碼清單,請參閱 DirectComposition 錯誤碼 。
備註
Microsoft DirectComposition 表面是一個矩形的圖元陣列,可以與視覺效果產生關聯以進行組合。
新建立的 Surface 物件處於未初始化的狀態。 雖然未初始化,但介面對視覺化樹狀結構的組合沒有任何作用。 其行為與具有 100% 透明圖元的表面完全相同。
若要使用圖元資料初始化表面,請使用 IDCompositionSurface::BeginDraw 方法。 第一次呼叫這個方法必須涵蓋整個介面區,以提供每個圖元的初始值。 後續呼叫可能會指定要更新之介面的較小子矩形。
如果寬度或高度超過紋理大小上限,這個方法將會失敗。 如果您的案例需要超過紋理大小上限的維度,請使用 CreateVirtualSurface 方法。
DirectComposition 表面支援下列像素格式:
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R16G16B16A16_FLOAT
需求
最低支援的用戶端 | Windows 8.1 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | dcomp.h |
程式庫 | Dcomp.lib |
Dll | Dcomp.dll |
另請參閱
IDCompositionDevice2::CreateSurface