Bagikan melalui


D3DXCreateTextureFromFileEx (Fungsi D3DXCreateTextureFromFileEx)

Membuat tekstur dari file. Ini adalah fungsi yang lebih canggih daripada D3DXCreateTextureFromFile.

Sintaks

HRESULT D3DXCreateTextureFromFileEx(
  _In_    LPDIRECT3DDEVICE9  pDevice,
  _In_    LPCTSTR            pSrcFile,
  _In_    UINT               Width,
  _In_    UINT               Height,
  _In_    UINT               MipLevels,
  _In_    DWORD              Usage,
  _In_    D3DFORMAT          Format,
  _In_    D3DPOOL            Pool,
  _In_    DWORD              Filter,
  _In_    DWORD              MipFilter,
  _In_    D3DCOLOR           ColorKey,
  _Inout_ D3DXIMAGE_INFO     *pSrcInfo,
  _Out_   PALETTEENTRY       *pPalette,
  _Out_   LPDIRECT3DTEXTURE9 *ppTexture
);

Parameter

pDevice [in]

Jenis: LPDIRECT3DDEVICE9

Arahkan ke antarmuka IDirect3DDevice9 , yang mewakili perangkat yang akan dikaitkan dengan tekstur.

pSrcFile [in]

Jenis: LPCTSTR

Penunjuk ke string yang menentukan nama file. Jika pengaturan pengkompilasi memerlukan Unicode, jenis data LPCTSTR diselesaikan ke LPCWSTR. Jika tidak, jenis data string diselesaikan ke LPCSTR. Lihat Keterangan.

Lebar [in]

Jenis: UINT

Lebar dalam piksel. Jika nilai ini nol atau D3DX_DEFAULT, dimensi diambil dari file dan dibulatkan ke atas menjadi kekuatan dua. Jika perangkat mendukung non-daya 2 tekstur dan D3DX_DEFAULT_NONPOW2 ditentukan, ukurannya tidak akan dibulatkan.

Tinggi [in]

Jenis: UINT

Tinggi, dalam piksel. Jika nilai ini nol atau D3DX_DEFAULT, dimensi diambil dari file dan dibulatkan ke atas menjadi kekuatan dua. Jika perangkat mendukung non-daya 2 tekstur dan D3DX_DEFAULT_NONPOW2 dipisahkan, ukurannya tidak akan dibulatkan.

MipLevels [in]

Jenis: UINT

Jumlah tingkat mip yang diminta. Jika nilai ini nol atau D3DX_DEFAULT, rantai mipmap lengkap akan dibuat. Jika D3DX_FROM_FILE, ukurannya akan diambil persis seperti dalam file, dan panggilan akan gagal jika ini melanggar kemampuan perangkat.

Penggunaan [in]

Jenis: DWORD

0, D3DUSAGE_RENDERTARGET, atau D3DUSAGE_DYNAMIC. Mengatur bendera ini ke D3DUSAGE_RENDERTARGET menunjukkan bahwa permukaan akan digunakan sebagai target render. Sumber daya kemudian dapat diteruskan ke parameter pNewRenderTarget dari metode SetRenderTarget . Jika D3DUSAGE_RENDERTARGET atau D3DUSAGE_DYNAMIC ditentukan, Kumpulan harus diatur ke D3DPOOL_DEFAULT, dan aplikasi harus memeriksa apakah perangkat mendukung operasi ini dengan memanggil CheckDeviceFormat. D3DUSAGE_DYNAMIC menunjukkan bahwa permukaan harus ditangani secara dinamis. Lihat Menggunakan Tekstur Dinamis.

Format [in]

Jenis: D3DFORMAT

Anggota jenis enumerasi D3DFORMAT , menjelaskan format piksel yang diminta untuk tekstur. Tekstur yang dikembalikan mungkin memiliki format yang berbeda dari yang ditentukan oleh Format. Aplikasi harus memeriksa format tekstur yang dikembalikan. Jika D3DFMT_UNKNOWN, format diambil dari file. Jika D3DFMT_FROM_FILE, format diambil persis seperti dalam file, dan panggilan akan gagal jika ini melanggar kemampuan perangkat.

Pool [in]

Jenis: D3DPOOL

Anggota jenis D3DPOOL yang dijumlahkan, menjelaskan kelas memori tempat tekstur harus ditempatkan.

Filter [in]

Jenis: DWORD

Kombinasi satu atau beberapa konstanta D3DX_FILTER mengontrol bagaimana gambar difilter. Menentukan D3DX_DEFAULT untuk parameter ini setara dengan menentukan D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER.

MipFilter [in]

Jenis: DWORD

Kombinasi satu atau beberapa konstanta D3DX_FILTER mengontrol bagaimana gambar difilter. Menentukan D3DX_DEFAULT untuk parameter ini setara dengan menentukan D3DX_FILTER_BOX. Selain itu, gunakan bit 27-31 untuk menentukan jumlah tingkat mip yang akan dilewati (dari bagian atas rantai mipmap) ketika tekstur .dds dimuat ke dalam memori; ini memungkinkan Anda untuk melewati hingga 32 level.

ColorKey [in]

Jenis: D3DCOLOR

Nilai D3DCOLOR untuk diganti dengan hitam transparan, atau 0 untuk menonaktifkan kunci warna. Ini selalu merupakan warna ARGB 32-bit, terlepas dari format gambar sumber. Alpha signifikan dan biasanya harus diatur ke FF untuk kunci warna buram. Dengan demikian, untuk hitam buram, nilainya akan sama dengan 0xFF000000.

pSrcInfo [masuk, keluar]

Jenis: D3DXIMAGE_INFO*

Arahkan ke struktur D3DXIMAGE_INFO untuk diisi dengan deskripsi data dalam file gambar sumber, atau NULL.

pPalette [out]

Jenis: PALETENTRY*

Penunjuk ke struktur PALETTEENTRY , mewakili palet 256 warna untuk diisi, atau NULL.

ppTexture [out]

Jenis: LPDIRECT3DTEXTURE9*

Alamat penunjuk ke antarmuka IDirect3DTexture9 , mewakili objek tekstur yang dibuat.

Menampilkan nilai

Jenis: HRESULT

Jika fungsi berhasil, nilai yang dikembalikan adalah D3D_OK. Jika fungsi gagal, nilai yang dikembalikan dapat berupa salah satu hal berikut: D3DERR_INVALIDCALL, D3DERR_NOTAVAILABLE, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA, E_OUTOFMEMORY.

Keterangan

Pengaturan kompilator juga menentukan versi fungsi. Jika Unicode ditentukan, panggilan fungsi diselesaikan ke D3DXCreateTextureFromFileExW. Jika tidak, panggilan fungsi menyelesaikan ke D3DXCreateTextureFromFileExA karena string ANSI sedang digunakan.

Gunakan D3DXCheckTextureRequirements untuk menentukan apakah perangkat Anda dapat mendukung tekstur yang diberikan status saat ini.

Fungsi ini mendukung format file berikut: .bmp, .dds, .dib, .hdr, .jpg, .pfm, .png, .ppm, dan .tga. Lihat D3DXIMAGE_FILEFORMAT.

Tekstur mipmapped secara otomatis memiliki setiap tingkat yang diisi dengan tekstur yang dimuat. Saat memuat gambar ke dalam tekstur mipmapped, beberapa perangkat tidak dapat masuk ke gambar 1x1 dan fungsi ini akan gagal. Jika ini terjadi, maka gambar perlu dimuat secara manual.

Untuk performa terbaik saat menggunakan D3DXCreateTextureFromFileEx:

  1. Melakukan penskalakan gambar dan konversi format pada waktu pemuatan bisa menjadi lambat. Simpan gambar dalam format dan resolusi yang akan digunakan. Jika perangkat keras target memerlukan daya 2 dimensi, buat dan simpan gambar menggunakan daya 2 dimensi.
  2. Untuk pembuatan gambar mipmap pada waktu muat, filter menggunakan D3DX_FILTER_BOX. Filter kotak jauh lebih cepat daripada jenis filter lainnya seperti D3DX_FILTER_TRIANGLE.
  3. Pertimbangkan untuk menggunakan file DDS. Karena file DDS dapat digunakan untuk mewakili format tekstur Direct3D 9, file tersebut sangat mudah dibaca D3DX. Selain itu, mereka dapat menyimpan mipmap, sehingga algoritma generasi mipmap apa pun dapat digunakan untuk menulis gambar.

Saat melompati tingkat mipmap saat memuat file .dds, gunakan makro D3DX_SKIP_DDS_MIP_LEVELS untuk menghasilkan nilai MipFilter. Makro ini mengambil jumlah tingkat untuk dilewati dan jenis filter dan mengembalikan nilai filter, yang kemudian akan diteruskan ke parameter MipFilter.

Persyaratan

Persyaratan Nilai
Header
D3dx9tex.h
Pustaka
D3dx9.lib

Lihat juga

D3DXCreateTextureFromFile

Fungsi Tekstur di D3DX 9