Risorse trama (Direct3D 9)
Le risorse trama vengono implementate nell'interfaccia IDirect3DTexture9 . Per ottenere un puntatore a un'interfaccia di trama, chiamare il metodo IDirect3DDevice9::CreateTexture o una delle funzioni D3DX seguenti.
- D3DXCreateTexture
- D3DXCreateTextureFromFile
- D3DXCreateTextureFromFileEx
- D3DXCreateTextureFromFileInMemory
- D3DXCreateTextureFromFileInMemoryEx
- D3DXCreateTextureFromResource
- D3DXCreateTextureFromResourceEx
L'esempio di codice seguente usa D3DXCreateTextureFromFile per caricare una trama da Tiger.bmp.
// The following code example assumes that D3dDevice
// is a valid pointer to an IDirect3DDevice9 interface.
LPDIRECT3DTEXTURE9 pTexture;
D3DXCreateTextureFromFile( d3dDevice, "tiger.bmp", &pTexture);
Il primo parametro che D3DXCreateTextureFromFile accetta è un puntatore a un'interfaccia IDirect3DDevice9 . Il secondo parametro indica a Direct3D il nome del file da cui caricare la trama. Il terzo parametro accetta l'indirizzo di un puntatore a un'interfaccia IDirect3DTexture9 che rappresenta l'oggetto trama creato.
Rendering con risorse trama
Direct3D supporta la fusione di più trame attraverso il concetto di fasi della trama. Ogni fase di trama contiene una trama e operazioni che possono essere eseguite sulla trama. Le trame nelle fasi della trama formano il set di trame correnti. Per altre informazioni, vedere Blending trama (Direct3D 9). Lo stato di ogni trama è incapsulato nella sua fase di trama.
In un'applicazione C++ lo stato di ogni trama deve essere impostato con il metodo IDirect3DDevice9::SetTextureStageState . Passare il numero di fase (0-7) come valore del primo parametro. Impostare il valore del secondo parametro su un membro del tipo enumerato D3DTEXTURESTAGESTATETYPE . Il parametro finale è il valore dello stato per lo stato di trama specifico.
Usando i puntatori all'interfaccia trama, l'applicazione può eseguire il rendering di una combinazione di fino a otto trame. Impostare le trame correnti richiamando il metodo IDirect3DDevice9::SetTexture . Direct3D combina tutte le trame correnti sulle primitive che esegue il rendering.
Nota
Il metodo IDirect3DDevice9::SetTexture incrementa il numero di riferimenti della superficie di trama assegnata. Quando la trama non è più necessaria, è necessario impostare la trama nella fase appropriata su NULL. Se non si riesce a farlo, la superficie non verrà rilasciata, causando una perdita di memoria.
L'applicazione può impostare lo stato di wrapping della trama per le trame correnti chiamando il metodo IDirect3DDevice9::SetRenderState . Passare un valore da D3DRS_WRAP0 a D3DRS_WRAP7 come valore del primo parametro e usare una combinazione di D3DWRAPCOORD_0, D3DWRAPCOORD_1, D3DWRAPCOORD_2 e flag di D3DWRAPCOORD_3 per abilitare il wrapping nelle direzioni u, v o w.
L'applicazione può anche impostare gli stati di filtro della trama e di trama. Vedere Filtro trama (Direct3D 9).
Argomenti correlati