Strukturresurser (Direct3D 9)
Strukturresurser implementeras i gränssnittet IDirect3DTexture9. Om du vill hämta en pekare till ett strukturgränssnitt anropar du metoden IDirect3DDevice9::CreateTexture eller någon av följande D3DX-funktioner.
- D3DXCreateTexture
- D3DXCreateTextureFromFile
- D3DXCreateTextureFromFileEx
- D3DXCreateTextureFromFileInMemory
- D3DXCreateTextureFromFileInMemoryEx
- D3DXCreateTextureFromResource
- D3DXCreateTextureFromResourceEx
I följande kodexempel används D3DXCreateTextureFromFile för att läsa in en textur från Tiger.bmp.
// The following code example assumes that D3dDevice
// is a valid pointer to an IDirect3DDevice9 interface.
LPDIRECT3DTEXTURE9 pTexture;
D3DXCreateTextureFromFile( d3dDevice, "tiger.bmp", &pTexture);
Den första parametern som D3DXCreateTextureFromFile accepterar är en pekare till ett IDirect3DDevice9-gränssnitt. Den andra parametern talar om för Direct3D namnet på filen som texturen ska läsas in från. Den tredje parametern tar adressen till en pekare till ett IDirect3DTexture9- gränssnitt som representerar det skapade texturobjektet.
Rendering med strukturresurser
Direct3D stöder flera strukturblandningar genom begreppet strukturfaser. Varje struktursteg innehåller en struktur och åtgärder som kan utföras på strukturen. Texturerna i texturstegen utgör uppsättningen med aktuella texturer. Mer information finns i Texture Blending (Direct3D 9). Tillståndet för varje textur är inkapslat i dess struktursteg.
I ett C++-program måste tillståndet för varje struktur anges med metoden IDirect3DDevice9::SetTextureStageState. Skicka stegnumret (0–7) som värdet för den första parametern. Ange värdet för den andra parametern till en medlem av den D3DTEXTURESTAGESTATETYPE uppräknade typen. Den sista parametern är tillståndsvärdet för det specifika strukturtillståndet.
Med hjälp av texturgränssnittspekare kan programmet återge en blandning av upp till åtta texturer. Ange aktuella texturer genom att anropa metoden IDirect3DDevice9::SetTexture. Direct3D blandar alla aktuella texturer till de primitiver som återges.
Not
Metoden IDirect3DDevice9::SetTexture ökar referensantalet för den strukturyta som tilldelas. När texturen inte längre behövs bör du ställa in strukturen på lämpligt stadium för att NULL-. Om du inte gör det frigörs inte ytan, vilket resulterar i en minnesläcka.
Ditt program kan ange strukturomslutningstillståndet för de aktuella texturerna genom att anropa metoden IDirect3DDevice9::SetRenderState. Skicka ett värde från D3DRS_WRAP0 till D3DRS_WRAP7 som värdet för den första parametern och använd en kombination av D3DWRAPCOORD_0, D3DWRAPCOORD_1, D3DWRAPCOORD_2 och D3DWRAPCOORD_3 flaggor för att aktivera omslutning i riktningarna u, v eller w.
Ditt program kan också ange strukturperspektiv och strukturfiltreringstillstånd. Se texturfiltrering (Direct3D 9).
Relaterade ämnen