IDirect3DDevice9 ::CreateTexture, méthode (d3d9helper.h)
Crée une ressource de texture.
Syntaxe
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
);
Paramètres
[in] Width
Type : UINT
Largeur du niveau supérieur de la texture, en pixels. Les dimensions de pixel des niveaux suivants seront la valeur tronquée de la moitié de la dimension de pixels du niveau précédent (indépendamment). Chaque dimension se serre à une taille de 1 pixel. Ainsi, si la division par 2 aboutit à 0, 1 sera pris à la place.
[in] Height
Type : UINT
Hauteur du niveau supérieur de la texture, en pixels. Les dimensions de pixel des niveaux suivants seront la valeur tronquée de la moitié de la dimension de pixels du niveau précédent (indépendamment). Chaque dimension se serre à une taille de 1 pixel. Ainsi, si la division par 2 aboutit à 0, 1 sera pris à la place.
[in] Levels
Type : UINT
Nombre de niveaux dans la texture. Si cette valeur est nulle, Direct3D génère tous les sous-niveaux de texture jusqu’à 1 pixels pour le matériel qui prend en charge les textures mipmapped. Appelez IDirect3DBaseTexture9 ::GetLevelCount pour voir le nombre de niveaux générés.
[in] Usage
Type : DWORD
L’utilisation peut être 0, ce qui indique aucune valeur d’utilisation. Toutefois, si l’utilisation est souhaitée, utilisez une combinaison d’une ou plusieurs constantes D3DUSAGE . Il est recommandé de faire correspondre le paramètre d’utilisation avec les indicateurs de comportement dans IDirect3D9 ::CreateDevice.
[in] Format
Type : D3DFORMAT
Membre du D3DFORMAT type énuméré, décrivant le format de tous les niveaux de la texture.
[in] Pool
Type : D3DPOOL
Membre du D3DPOOL type énuméré, décrivant la classe de mémoire dans laquelle la texture doit être placée.
[out, retval] ppTexture
Type : IDirect3DTexture9**
Pointeur vers une interface IDirect3DTexture9 , représentant la ressource de texture créée.
[in] pSharedHandle
Type : HANDLE*
Réservé. Définissez ce paramètre sur NULL. Ce paramètre peut être utilisé dans Direct3D 9 pour Windows Vista pour partager des ressources.
Valeur retournée
Type : HRESULT
Si la méthode réussit, la valeur de retour est D3D_OK. Si la méthode échoue, la valeur de retour peut être l’une des suivantes : D3DERR_INVALIDCALL, D3DERR_OUTOFVIDEOMEMORY, E_OUTOFMEMORY.
Remarques
Une application peut découvrir la prise en charge de la génération automatique de Mipmaps (Direct3D 9) dans un format particulier en appelant IDirect3D9 ::CheckDeviceFormat avec D3DUSAGE_AUTOGENMIPMAP. Si IDirect3D9 ::CheckDeviceFormat retourne D3DOK_NOAUTOGEN, IDirect3DDevice9 ::CreateTexture réussit, mais retourne une texture à un niveau.
Dans Windows Vista, CreateTexture peut créer une texture à partir d’un pointeur de mémoire système, ce qui permet à l’application de bénéficier d’une plus grande flexibilité sur l’utilisation, l’allocation et la suppression de la mémoire système. Par exemple, une application peut passer un pointeur bitmap de mémoire système GDI et obtenir une interface de texture Direct3D autour d’elle. L’utilisation d’un pointeur de mémoire système avec CreateTexture présente les restrictions suivantes.
- Le pitch de la texture doit être égal à la largeur multipliée par le nombre d’octets par pixel.
- Seules les textures avec un seul niveau mipmap sont prises en charge. L’argument Levels doit être 1.
- L’argument Pool doit être D3DPOOL_SYSTEMMEM.
- L’argument pSharedHandle doit être un pointeur valide vers une mémoire tampon qui peut contenir le point de mémoire système ; *pSharedHandle doit être un pointeur valide vers la mémoire système avec une taille en octets de largeur de texture * hauteur de texture * octets par pixel du format de texture.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | d3d9helper.h (incluez D3D9.h) |
Bibliothèque | D3D9.lib |
Voir aussi
D3DXCreateTextureFromFileInMemory
D3DXCreateTextureFromFileInMemoryEx