Bagikan melalui


ID3D10Texture1D::Metode peta (d3d10.h)

Dapatkan penunjuk ke data yang terkandung dalam subsumber daya, dan tolak akses GPU ke subsumber daya tersebut.

Sintaks

HRESULT Map(
  [in]  UINT      Subresource,
  [in]  D3D10_MAP MapType,
  [in]  UINT      MapFlags,
  [out] void      **ppData
);

Parameter

[in] Subresource

Jenis: UINT

Nomor indeks subsumber daya. Lihat D3D10CalcSubresource untuk detail selengkapnya.

[in] MapType

Jenis: D3D10_MAP

Menentukan izin baca dan tulis CPU untuk sumber daya. Untuk nilai yang mungkin, lihat D3D10_MAP.

[in] MapFlags

Jenis: UINT

Bendera yang menentukan apa yang harus dilakukan CPU ketika GPU sibuk. Bendera ini bersifat opsional.

[out] ppData

Jenis: batal**

Arahkan ke data sumber daya tekstur.

Mengembalikan nilai

Jenis: HRESULT

Jika fungsi ini berhasil, fungsi akan mengembalikan S_OK. Untuk pembatasan lain, dan daftar nilai kesalahan yang dapat dikembalikan oleh salah satu metode Peta , lihat Keterangan.

Keterangan

Memetakan tekstur memungkinkan CPU untuk langsung mengakses data yang mendasar di sub sumber daya tekstur. Agar metode berhasil, tekstur yang sedang dipetakan harus dibuat dengan bendera yang sesuai (lihat D3D10_CPU_ACCESS_FLAG), dan penggunaan yang ditentukan (lihat D3D10_USAGE) harus D3D10_USAGE_DYNAMIC atau D3D10_USAGE_STAGING.

Kegagalan umum metode Peta ditunjukkan oleh nilai pengembalian berikut:

Item Deskripsi
DXGI_ERROR_WAS_STILL_DRAWING Jika MapFlags menentukan D3D10_MAP_FLAG_DO_NOT_WAIT dan GPU belum selesai dengan sumber daya, Map akan mengembalikan DXGI_ERROR_WAS_STILL_DRAWING.
DXGI_ERROR_DEVICE_REMOVED Peta mengembalikan DXGI_ERROR_DEVICE_REMOVED jika MapType memungkinkan akses baca CPU dan kartu video telah dihapus.
 

Untuk informasi selengkapnya tentang nilai pengembalian sebelumnya, lihat DXGI_ERROR.

Peta memiliki batasan berikut:

  • Satu sub sumber daya tidak dapat dipetakan beberapa kali; dengan kata lain, jangan panggil Peta pada subsumber daya yang sudah dipetakan.
  • Subsumber daya apa pun yang terikat ke alur harus tidak dipetakan sebelum operasi render apa pun (yaitu, sebelum ID3D10Device::D raw) dapat dijalankan.
Aplikasi harus melemparkan penunjuk pData ke jenis yang sesuai untuk mengakses data sub sumber daya yang mendasar secara bermakna. Misalnya, kode berikut menunjukkan cara membaca setiap texel subresource 1D. Diasumsikan bahwa tekstur dibuat menggunakan DXGI_FORMAT_R32G32B32A32_FLOAT dan bahwa pData adalah penunjuk ke output data sumber daya tekstur dari panggilan yang berhasil ke metode ini.

FLOAT* pTexels = (FLOAT*)pData;
for( UINT col = 0; col < width; col++ )
{
  pTexels[col*4 + 0]; // Alpha
  pTexels[col*4 + 1]; // Blue
  pTexels[col*4 + 2]; // Green
  pTexels[col*4 + 3]; // Red
}

Perbedaan antara Direct3D 9 dan Direct3D 10:

Peta di Direct3D 10 dianalogikan dengan Kunci sumber daya di Direct3D 9.

Persyaratan

   
Target Platform Windows
Header d3d10.h
Pustaka D3D10.lib

Lihat juga

Antarmuka ID3D10Texture1D