struktur D3D10_MAPPED_TEXTURE2D (d3d10.h)
Menyediakan akses ke data sub sumber daya dalam tekstur 2D.
Sintaks
typedef struct D3D10_MAPPED_TEXTURE2D {
void *pData;
UINT RowPitch;
} D3D10_MAPPED_TEXTURE2D;
Anggota
pData
Jenis: batal*
Arahkan ke data.
RowPitch
Jenis: UINT
Pitch, atau lebar, atau ukuran fisik (dalam byte), dari satu baris tekstur yang tidak dikompresi. Tekstur terkompresi blok dikodekan dalam blok 4x4 (lihat ukuran virtual vs ukuran fisik) ; oleh karena itu, RowPitch adalah jumlah byte dalam blok 4x4 texel.
Keterangan
Struktur ini digunakan dalam panggilan ke Peta.
Untuk mengilustrasikan pitch baris, asumsikan tekstur 2D yang tidak dikompresi dengan tingkat mipmap, seperti yang ditunjukkan dalam ilustrasi berikut.
Visualisasikan tekstur tingkat atas yang digambar dalam satu bidang seperti ilustrasi berikut.
Namun, tata letak aktual dari setiap elemen dalam memori terlihat lebih seperti ilustrasi berikut.
Untuk contoh ini, pitch baris mencakup 5 elemen (satu baris), yang ukurannya akan lima kali jumlah byte per elemen.
Gunakan pitch baris untuk memajukan penunjuk di antara baris dalam satu bidang tekstur 2D.
Contoh
Untuk mengakses data, misalnya, tingkat mipmap ketiga, Anda harus mentransmisikan penunjuk pData seperti yang ditunjukkan dalam contoh berikut untuk tekstur floating-point.
D3D10_MAPPED_TEXTURE2D mappedTexture;
if( SUCCEEDED( pTexture->Map( D3D10CalcSubresource(2, 0, 3), D3D10_MAP_WRITE_DISCARD, 0, &mappedTexture )))
{
D3D10_TEXTURE2D_DESC desc;
pTexture->GetDesc( &desc );
// Compute the width and height of the third mipmap level
const UINT WIDTH = desc.Width >> 2;
const UINT HEIGHT = desc.Height >> 2;
FLOAT* pTexels = (FLOAT*)mappedTexture.pData;
for( UINT row = 0; row < HEIGHT; row++ )
{
UINT rowStart = row * mappedTexture.RowPitch/4;
for( UINT col = 0; col < WIDTH; col++ )
{
pTexels[rowStart + col*4 + 0]; // Red
pTexels[rowStart + col*4 + 1]; // Green
pTexels[rowStart + col*4 + 2]; // Blue
pTexels[rowStart + col*4 + 3]; // Alpha
}
}
pTexture->Unmap(D3D10CalcSubresource(2, 0, 3));
}
Persyaratan
Persyaratan | Nilai |
---|---|
Header | d3d10.h |