Freigeben über


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

D3DXCreateTexture

D3DXCreateTextureFromFile

D3DXCreateTextureFromFileEx

D3DXCreateTextureFromFileInMemory

D3DXCreateTextureFromFileInMemoryEx

D3DXCreateTextureFromResource

D3DXCreateTextureFromResourceEx

IDirect3DDevice9