Bagikan melalui


Metode ID2D1SpriteBatch::AddSprites (d2d1_3.h)

Menambahkan sprite yang diberikan ke akhir batch sprite ini.

Sintaks

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
);

Parameter

spriteCount

Jenis: UINT32

Jumlah sprite yang akan ditambahkan. Ini menentukan berapa banyak langkah ke dalam setiap array direct2D yang diberikan akan dibaca.

[in] destinationRectangles

Jenis: const D2D1_RECT_F*

Penunjuk ke array yang berisi persegi panjang tujuan yang menentukan tempat untuk menggambar sprite pada konteks perangkat tujuan.

[in, optional] sourceRectangles

Jenis: const D2D1_RECT_U*

Penunjuk ke array yang berisi persegi panjang sumber yang menentukan wilayah bitmap sumber untuk digambar sebagai sprite. Direct2D akan menggunakan seluruh bitmap sumber untuk sprite yang diberi nilai null atau InfiniteRectU. Jika parameter ini dihilangkan sepenuhnya atau diatur ke nilai null, maka Direct2D akan menggunakan seluruh bitmap sumber untuk semua sprite yang ditambahkan.

[in, optional] colors

Jenis: const D2D1_COLOR_F*

Penunjuk ke array yang berisi warna untuk diterapkan ke setiap sprite. Warna output adalah hasil perkalian komponen dari warna bitmap sumber dan warna yang disediakan. Warna output tidak dijepit.

Direct2D tidak akan mengubah warna sprite yang diberi nilai null. Jika parameter ini dihilangkan sepenuhnya atau diatur ke nilai null, Maka Direct2D tidak akan mengubah warna salah satu sprite yang ditambahkan.

[in, optional] transforms

Jenis: const D2D1_MATRIX_3X2_F*

Penunjuk ke array yang berisi transformasi untuk diterapkan ke setiap persegi tujuan sprite.

Direct2D tidak akan mengubah persegi panjang tujuan dari sprite apa pun yang diberi nilai null. Jika parameter ini dihilangkan sepenuhnya atau diatur ke nilai null, maka Direct2D tidak akan mengubah persegi panjang tujuan dari salah satu sprite yang ditambahkan.

destinationRectanglesStride

Jenis: UINT32

Menentukan jarak, dalam byte, antara setiap persegi panjang dalam array destinationRectangles. Jika Anda memberikan langkah 0, persegi panjang tujuan yang sama akan digunakan untuk setiap sprite tambahan.

sourceRectanglesStride

Jenis: UINT32

Menentukan jarak, dalam byte, antara setiap persegi panjang dalam array sourceRectangles (jika array tersebut diberikan). Jika Anda memberikan langkah 0, maka persegi panjang sumber yang sama akan digunakan untuk setiap sprite yang ditambahkan.

colorsStride

Jenis: UINT32

Menentukan jarak, dalam byte, di antara setiap warna dalam array warna (jika array tersebut diberikan). Jika Anda memberikan langkah 0, maka warna yang sama akan digunakan untuk setiap sprite yang ditambahkan.

transformsStride

Jenis: UINT32

Menentukan jarak, dalam byte, antara setiap transformasi dalam array transformasi (jika array tersebut diberikan). Jika Anda memberikan langkah 0, maka transformasi yang sama akan digunakan untuk setiap sprite yang ditambahkan.

Mengembalikan nilai

Jenis: HRESULT

Jika metode ini berhasil, metode ini mengembalikan S_OK. Jika tidak, kode kesalahan HRESULT akan dikembalikan.

Keterangan

Di Direct2D, sprite didefinisikan oleh empat properti: persegi panjang tujuan, persegi panjang sumber, warna, dan transformasi. Persegi panjang tujuan bersifat wajib, tetapi properti yang tersisa bersifat opsional.

Catatan Selalu hilangkan atau berikan nilai null untuk properti yang tidak ingin Anda gunakan. Ini memungkinkan Direct2D untuk menghindari penyimpanan nilai untuk properti tersebut dan melewati penanganannya sepenuhnya, yang meningkatkan kecepatan menggambar. Misalnya, Anda memiliki batch 500 sprite, dan Anda tidak ingin mengubah persegi panjang tujuan apa pun. Daripada melewati array matriks identitas, cukup hilangkan parameter transformasi. Ini memungkinkan Direct2D untuk menghindari penyimpanan transformasi apa pun dan akan menghasilkan performa gambar tercepat. Di sisi lain, jika ada sprite dalam batch yang memiliki nilai yang ditetapkan untuk properti, maka secara internal Direct2D harus mengalokasikan ruang untuk array properti tersebut dan menetapkan setiap sprite nilai untuk properti tersebut (bahkan jika itu hanya nilai default).
 

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header d2d1_3.h
Pustaka D2d1.lib
DLL D2d1.dll

Lihat juga

ID2D1SpriteBatch