ID2D1DeviceContext2::CreateImageSourceFromDxgi 方法 (d2d1_3.h)
從一組 DXGI 表面建立影像來源, (s) 。 YCbCr surface (s) 會在後續繪圖期間自動轉換成 RGBA。
語法
HRESULT CreateImageSourceFromDxgi(
IDXGISurface **surfaces,
UINT32 surfaceCount,
DXGI_COLOR_SPACE_TYPE colorSpace,
D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS options,
ID2D1ImageSource **imageSource
);
參數
surfaces
類型:[in] IDXGISurface**
要從中建立影像來源的 DXGI 表面。
surfaceCount
類型: UINT32
提供的介面數目;必須介於一到三之間。
colorSpace
輸入的色彩空間。
options
類型: D2D1_IMAGE_SOURCE_FROM_DXGI_OPTIONS
控制色彩空間轉換的選項。
imageSource
類型:[out] ID2D1ImageSource**
接收新的映像來源實例。
傳回值
類型: HRESULT
如果成功,S_OK否則為失敗的 HRESULT。
備註
這個方法會建立影像來源,可用來繪製影像。
這個方法支援使用一組有限 DXGI 格式和 DXGI 色彩空間類型的介面。 只支援下列一組色彩空間類型、表面格式和表面計數的組合:
色彩空間類型 | Surface Count (s) | surface Format (s) |
---|---|---|
DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709 | 1 | 標準 D2D 支援的像素格式:
|
DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601 | 1, 2, 3 | 當 Surface 計數為 1 時:
|
DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P601 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P709 DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020 DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020 |
1,2,3 |
當 Surface 計數為 1 時:
|
GPU 也必須有足夠的支援,才能讓 D2D 支援圖元格式。 若要判斷 D2D 是否支援格式,請呼叫 IsDxgiFormatSupported。
此 API 會使用提供的色彩空間類型和選項,將 YCbCr 格式轉換為 sRGB。 RGBA 數據假設位於所需的空間中,而 D2D 不會套用任何轉換。
如果提供多個表面,這個方法會從每個對應來源矩形的相對大小 (或來源矩形參數為 NULL,推斷色板的子取樣 (2x) ,或是來源矩形參數為 NULL,每個表面的界限) 。 第二個和第三個矩形的大小必須等於第一個矩形,或是第一個矩形,其中一個或兩個維度在四捨五入) 時縮放 0.5 (。
如果提供,來源矩形必須位於對應表面的界限內。 來源矩形可能有不同的原點。 在此情況下,這個方法會將數據從每個平面移位,以彼此對齊。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 10 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2016 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | d2d1_3.h |
Dll | D2d1.dll |