IDirect3DDevice9::CreateTexture-Methode (d3d9.h)
Erstellt eine Texturressource.
Syntax
HRESULT CreateTexture(
[in] UINT Width,
[in] UINT Height,
[in] UINT Levels,
[in] DWORD Usage,
[in] D3DFORMAT Format,
[in] D3DPOOL Pool,
[out, retval] IDirect3DTexture9 **ppTexture,
[in] HANDLE *pSharedHandle
);
Parameter
[in] Width
Typ: UINT
Breite der obersten Ebene der Textur in Pixel. Die Pixelabmessungen der nachfolgenden Ebenen sind der abgeschnittene Wert der Hälfte der Pixeldimension der vorherigen Ebene (unabhängig). Jede Dimension klemmt bei einer Größe von 1 Pixel. Wenn also die Division durch 2 0 ergibt, wird stattdessen 1 verwendet.
[in] Height
Typ: UINT
Höhe der obersten Ebene der Textur in Pixel. Die Pixelabmessungen der nachfolgenden Ebenen sind der abgeschnittene Wert der Hälfte der Pixeldimension der vorherigen Ebene (unabhängig). Jede Dimension klemmt bei einer Größe von 1 Pixel. Wenn also die Division durch 2 0 ergibt, wird stattdessen 1 verwendet.
[in] Levels
Typ: UINT
Anzahl der Ebenen in der Textur. Wenn dies null ist, generiert Direct3D alle Texturunterebenen bis zu 1 x 1 Pixel für Hardware, die mipmappenbasierte Texturen unterstützt. Rufen Sie IDirect3DBaseTexture9::GetLevelCount auf, um die Anzahl der generierten Ebenen anzuzeigen.
[in] Usage
Typ: DWORD
Die Verwendung kann 0 sein, was keinen Nutzungswert angibt. Wenn die Verwendung jedoch gewünscht ist, verwenden Sie eine Kombination aus einer oder mehreren D3DUSAGE-Konstanten . Es empfiehlt sich, den Verwendungsparameter mit den Verhaltensflags in IDirect3D9::CreateDevice abzugleichen.
[in] Format
Typ: D3DFORMAT
Member des aufgezählten D3DFORMAT-Typs , der das Format aller Ebenen in der Textur beschreibt.
[in] Pool
Typ: D3DPOOL
Member des aufgezählten D3DPOOL-Typs , der die Speicherklasse beschreibt, in der die Textur platziert werden soll.
[out, retval] ppTexture
Typ: IDirect3DTexture9**
Zeiger auf eine IDirect3DTexture9-Schnittstelle , die die erstellte Texturressource darstellt.
[in] pSharedHandle
Typ: HANDLE*
Reserviert. Legen Sie diesen Parameter auf NULL fest. Dieser Parameter kann in Direct3D 9 für Windows Vista zum Freigeben von Ressourcen verwendet werden.
Rückgabewert
Typ: HRESULT
Wenn die Methode erfolgreich ist, wird der Rückgabewert D3D_OK. Wenn die Methode fehlschlägt, kann der Rückgabewert wie folgt aussehen: D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.
Hinweise
Eine Anwendung kann die Unterstützung für die automatische Generierung von Mipmaps (Direct3D 9) in einem bestimmten Format ermitteln, indem IDirect3D9::CheckDeviceFormat mit D3DUSAGE_AUTOGENMIPMAP aufgerufen wird. Wenn IDirect3D9::CheckDeviceFormat D3DOK_NOAUTOGEN zurückgibt, ist IDirect3DDevice9::CreateTexture erfolgreich, gibt jedoch eine Textur mit einer Ebene zurück.
In Windows Vista kann CreateTexture eine Textur aus einem Systemspeicherzeiger erstellen, was der Anwendung mehr Flexibilität bei der Verwendung, Zuordnung und Löschung des Systemspeichers ermöglicht. Beispielsweise könnte eine Anwendung einen Bitmapzeiger des GDI-Systemspeichers übergeben und eine Direct3D-Texturschnittstelle um ihn herum abrufen. Die Verwendung eines Systemspeicherzeigers mit CreateTexture hat die folgenden Einschränkungen.
- Die Tonhöhe der Textur muss der Breite multipliziert mit der Anzahl von Bytes pro Pixel entsprechen.
- Es werden nur Texturen mit einer einzelnen Mipmap-Ebene unterstützt. Das Level-Argument muss 1 sein.
- Das Argument Pool muss D3DPOOL_SYSTEMMEM sein.
- Das pSharedHandle-Argument muss ein gültiger Zeiger auf einen Puffer sein, der den Systemspeicherpunkt enthalten kann. *pSharedHandle muss ein gültiger Zeiger auf den Systemspeicher mit einer Größe in Bytes der Texturbreite * Texturhöhe * Bytes pro Pixel des Texturformats sein.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d9.h (einschließlich D3D9.h) |
Bibliothek | D3D9.lib |
Weitere Informationen
D3DXCreateTextureFromFileInMemory
D3DXCreateTextureFromFileInMemoryEx