共用方式為


ID2D1SpriteBatch::AddSprites 方法 (d2d1_3.h)

將指定的Sprite新增至這個Sprite批次的結尾。

語法

HRESULT AddSprites(
                 UINT32                  spriteCount,
  [in]           const D2D1_RECT_F       *destinationRectangles,
  [in, optional] const D2D1_RECT_U       *sourceRectangles,
  [in, optional] const D2D1_COLOR_F      *colors,
  [in, optional] const D2D1_MATRIX_3X2_F *transforms,
                 UINT32                  destinationRectanglesStride,
                 UINT32                  sourceRectanglesStride,
                 UINT32                  colorsStride,
                 UINT32                  transformsStride
);

參數

spriteCount

類型: UINT32

要加入的Sprite數目。 這會決定每個指定陣列 Direct2D 將讀取多少步。

[in] destinationRectangles

類型: const D2D1_RECT_F*

陣列的指標,包含目的地矩形,指定要在目的地裝置內容上繪製Sprite的位置。

[in, optional] sourceRectangles

類型: const D2D1_RECT_U*

數位的指標,包含來源矩形,指定要繪製為Sprite的來源位圖區域。 Direct2D 會針對指派 Null 值或 InfiniteRectU 的 Sprite 使用整個來源位圖。 如果完全省略此參數或設定為 Null 值,則 Direct2D 會針對所有新增的 Sprite 使用整個來源位圖。

[in, optional] colors

類型: const D2D1_COLOR_F*

數位的指標,其中包含要套用至每個Sprite的色彩。 輸出色彩是來源位圖色彩和所提供色彩之元件乘法的結果。 輸出色彩不會受到限制。

Direct2D 不會變更指派 Null 值的 Sprite 色彩。 如果完全省略此參數或設定為 Null 值,則 Direct2D 不會變更任何新增的 Sprite 色彩。

[in, optional] transforms

類型: const D2D1_MATRIX_3X2_F*

數位的指標,其中包含要套用至每個Sprite目的地矩形的轉換。

Direct2D 不會轉換指派 Null 值之任何 Sprite 的目的地矩形。 如果完全省略此參數或設定為 Null 值,則 Direct2D 將不會轉換任何新增 Sprite 的目的地矩形。

destinationRectanglesStride

類型: UINT32

指定 destinationRectangles 陣列中每個矩形之間的距離,以位元組為單位。 如果您提供 0 的步幅,則每個新增的 Sprite 都會使用相同的目的地矩形。

sourceRectanglesStride

類型: UINT32

指定當指定陣列) 時,sourceRectangles 陣列中每個矩形之間的距離,以位元組為單位 (。 如果您提供 0 的步幅,則每個新增的 Sprite 都會使用相同的來源矩形。

colorsStride

類型: UINT32

指定當指定陣列) 時,色彩陣列中每個色彩之間的距離,以位元組為單位 (。 如果您提供 0 的步幅,則每個新增的 Sprite 都會使用相同的色彩。

transformsStride

類型: UINT32

指定當指定陣列) 時,轉換陣列中每個轉換之間的距離 (以位元組為單位。 如果您提供 0 的步幅,則每個新增的 Sprite 都會使用相同的轉換。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

在 Direct2D 中,Sprite 是由四個屬性所定義:目的地矩形、來源矩形、色彩和轉換。 目的地矩形是必要專案,但其餘屬性是選擇性的。

注意 請一律省略或傳遞您不想要使用之屬性的 Null 值。 這可讓 Direct2D 避免儲存這些屬性的值,並完全略過其處理,這可改善繪圖速度。 例如,假設您有 500 個 Sprite 的批次,而且您不想轉換其任何目的地矩形。 您不需要傳遞識別矩陣的陣列,只要省略 transforms 參數即可。 這可讓 Direct2D 避免儲存任何轉換,併產生最快的繪圖效能。 另一方面,如果批次中的任何Sprite都有針對屬性設定任何值,則內部 Direct2D 必須配置該屬性陣列的空間,並指派該屬性的值, (即使只是預設值) 也一樣。
 

規格需求

需求
目標平台 Windows
標頭 d2d1_3.h
程式庫 D2d1.lib
Dll D2d1.dll

另請參閱

ID2D1SpriteBatch