Funzione D3DXCreateTextureFromFileEx
Crea una trama da un file. Si tratta di una funzione più avanzata di D3DXCreateTextureFromFile.
Sintassi
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
);
Parametri
-
pDevice [in]
-
Tipo: LPDIRECT3DDEVICE9
Puntatore a un'interfaccia IDirect3DDevice9 che rappresenta il dispositivo da associare alla trama.
-
pSrcFile [in]
-
Tipo: LPCTSTR
Puntatore a una stringa che specifica il nome file. Se le impostazioni del compilatore richiedono Unicode, il tipo di dati LPCTSTR viene risolto in LPCWSTR. In caso contrario, il tipo di dati stringa viene risolto in LPCSTR. Vedere la sezione Osservazioni.
-
Larghezza [in]
-
Tipo: UINT
Larghezza in pixel. Se questo valore è zero o D3DX_DEFAULT, le dimensioni vengono ricavate dal file e arrotondate fino a una potenza di due. Se il dispositivo supporta la potenza di 2 trame e D3DX_DEFAULT_NONPOW2 è specificato, le dimensioni non verranno arrotondate.
-
Altezza [in]
-
Tipo: UINT
Altezza, in pixel. Se questo valore è zero o D3DX_DEFAULT, le dimensioni vengono ricavate dal file e arrotondate fino a una potenza di due. Se il dispositivo supporta una potenza di 2 trame e D3DX_DEFAULT_NONPOW2 è sepcified, le dimensioni non verranno arrotondate.
-
MipLevels [in]
-
Tipo: UINT
Numero di livelli mip richiesti. Se questo valore è zero o D3DX_DEFAULT, viene creata una catena mipmap completa. Se D3DX_FROM_FILE, la dimensione verrà presa esattamente come si trova nel file e la chiamata avrà esito negativo se ciò viola le funzionalità del dispositivo.
-
Utilizzo [in]
-
Tipo: DWORD
0, D3DUSAGE_RENDERTARGET o D3DUSAGE_DYNAMIC. L'impostazione di questo flag su D3DUSAGE_RENDERTARGET indica che la superficie deve essere usata come destinazione di rendering. La risorsa può quindi essere passata al parametro pNewRenderTarget del metodo SetRenderTarget . Se si specifica D3DUSAGE_RENDERTARGET o D3DUSAGE_DYNAMIC, pool deve essere impostato su D3DPOOL_DEFAULT e l'applicazione deve verificare che il dispositivo supporti questa operazione chiamando CheckDeviceFormat. D3DUSAGE_DYNAMIC indica che la superficie deve essere gestita in modo dinamico. Vedere Uso di trame dinamiche.
-
Formato [in]
-
Tipo: D3DFORMAT
Membro del tipo enumerato D3DFORMAT , che descrive il formato pixel richiesto per la trama. La trama restituita potrebbe avere un formato diverso da quello specificato da Format. Le applicazioni devono controllare il formato della trama restituita. Se D3DFMT_UNKNOWN, il formato viene ricavato dal file. Se D3DFMT_FROM_FILE, il formato viene acquisito esattamente come si trova nel file e la chiamata avrà esito negativo se ciò viola le funzionalità del dispositivo.
-
Pool [in]
-
Tipo: D3DPOOL
Membro del tipo enumerato D3DPOOL , che descrive la classe di memoria in cui deve essere posizionata la trama.
-
Filtro [in]
-
Tipo: DWORD
Combinazione di una o più costanti D3DX_FILTER che controllano la modalità di filtro dell'immagine. Specificare D3DX_DEFAULT per questo parametro equivale a specificare D3DX_FILTER_TRIANGLE | D3DX_FILTER_DITHER.
-
MipFilter [in]
-
Tipo: DWORD
Combinazione di una o più costanti D3DX_FILTER che controllano la modalità di filtro dell'immagine. Specificare D3DX_DEFAULT per questo parametro equivale a specificare D3DX_FILTER_BOX. Inoltre, usa bit da 27 a 31 per specificare il numero di livelli mip da ignorare (dalla parte superiore della catena mipmap) quando una trama dds viene caricata in memoria; in questo modo è possibile saltare fino a 32 livelli.
-
ColorKey [in]
-
Tipo: D3DCOLOR
Valore D3DCOLOR da sostituire con nero trasparente o 0 per disabilitare la chiave di colore. Si tratta sempre di un colore ARGB a 32 bit, indipendentemente dal formato dell'immagine di origine. Alfa è significativo e in genere deve essere impostato su FF per le chiavi di colore opache. Pertanto, per il nero opaco, il valore sarebbe uguale a 0xFF000000.
-
pSrcInfo [in, out]
-
Tipo: D3DXIMAGE_INFO*
Puntatore a una struttura D3DXIMAGE_INFO da compilare con una descrizione dei dati nel file di immagine di origine o NULL.
-
pPalette [out]
-
Tipo: PALETTEENTRY*
Puntatore a una struttura PALETTEENTRY , che rappresenta una tavolozza di 256 colori da riempire o NULL.
-
ppTexture [out]
-
Tipo: LPDIRECT3DTEXTURE9*
Indirizzo di un puntatore a un'interfaccia IDirect3DTexture9 che rappresenta l'oggetto trama creato.
Valore restituito
Tipo: HRESULT
Se la funzione ha esito positivo, il valore restituito viene D3D_OK. Se la funzione ha esito negativo, il valore restituito può essere uno dei seguenti: D3DERR_INVALIDCALL, D3DERR_NOTAVAILABLE, D3DERR_OUTOFVIDEOMEMORY, D3DXERR_INVALIDDATA E_OUTOFMEMORY.
Commenti
L'impostazione del compilatore determina anche la versione della funzione. Se Unicode è definito, la chiamata di funzione viene risolta in D3DXCreateTextureFromFileExW. In caso contrario, la chiamata di funzione viene risolta in D3DXCreateTextureFromFileExA perché vengono usate stringhe ANSI.
Usare D3DXCheckTextureRequirements per determinare se il dispositivo può supportare la trama in base allo stato corrente.
Questa funzione supporta i formati di file seguenti: .bmp, dds, dib, hdr, .jpg, pfm, .png, ppm e tga. Vedere D3DXIMAGE_FILEFORMAT.
Le trame mipmapped hanno automaticamente ogni livello riempito con la trama caricata. Quando si caricano immagini in trame mipmapped, alcuni dispositivi non possono passare a un'immagine 1x1 e questa funzione avrà esito negativo. In questo caso, le immagini devono essere caricate manualmente.
Per ottenere prestazioni ottimali quando si usa D3DXCreateTextureFromFileEx:
- L'esecuzione del ridimensionamento delle immagini e della conversione del formato in fase di caricamento può essere lenta. Archiviare le immagini nel formato e nella risoluzione che verranno usate. Se l'hardware di destinazione richiede una potenza di 2 dimensioni, creare e archiviare le immagini usando la potenza di 2 dimensioni.
- Per la creazione di immagini mipmap in fase di caricamento, filtrare usando D3DX_FILTER_BOX. Un filtro casella è molto più veloce rispetto ad altri tipi di filtro, ad esempio D3DX_FILTER_TRIANGLE.
- È consigliabile usare i file DDS. Poiché i file DDS possono essere usati per rappresentare qualsiasi formato di trama Direct3D 9, sono molto facili da leggere per D3DX. Inoltre, possono archiviare mipmap, in modo che qualsiasi algoritmo di generazione mipmap possa essere usato per creare le immagini.
Quando si ignorano i livelli mipmap durante il caricamento di un file con estensione dds, usare la macro D3DX_SKIP_DDS_MIP_LEVELS per generare il valore MipFilter. Questa macro accetta il numero di livelli da ignorare e il tipo di filtro e restituisce il valore del filtro, che verrà quindi passato al parametro MipFilter.
Requisiti
Requisito | Valore |
---|---|
Intestazione |
|
Libreria |
|
Vedi anche