D3DXCheckTextureRequirements function

Checks texture-creation parameters.

Syntax

HRESULT D3DXCheckTextureRequirements(
  _In_    LPDIRECT3DDEVICE9 pDevice,
  _Inout_ UINT              *pWidth,
  _Inout_ UINT              *pHeight,
  _Inout_ UINT              *pNumMipLevels,
  _In_    DWORD             Usage,
  _Inout_ D3DFORMAT         *pFormat,
  _In_    D3DPOOL           Pool
);

Parameters

pDevice [in]

Type: LPDIRECT3DDEVICE9

Pointer to an IDirect3DDevice9 interface, representing the device to be associated with the texture.

pWidth [in, out]

Type: UINT*

Pointer to the requested width in pixels, or NULL. Returns the corrected size.

pHeight [in, out]

Type: UINT*

Pointer to the requested height in pixels, or NULL. Returns the corrected size.

pNumMipLevels [in, out]

Type: UINT*

Pointer to number of requested mipmap levels, or NULL. Returns the corrected number of mipmap levels.

Usage [in]

Type: DWORD

0 or D3DUSAGE_RENDERTARGET. Setting this flag to D3DUSAGE_RENDERTARGET indicates that the surface is to be used as a render target. The resource can then be passed to the pNewRenderTarget parameter of the SetRenderTarget method. If D3DUSAGE_RENDERTARGET is specified, the application should check that the device supports this operation by calling CheckDeviceFormat.

pFormat [in, out]

Type: D3DFORMAT*

Pointer to a member of the D3DFORMAT enumerated type. Specifies the desired pixel format, or NULL. Returns the corrected format.

Pool [in]

Type: D3DPOOL

Member of the D3DPOOL enumerated type, describing the memory class into which the texture should be placed.

Return value

Type: HRESULT

If the function succeeds, the return value is D3D_OK. If the function fails, the return value can be one of the following: D3DERR_INVALIDCALL, D3DERR_NOTAVAILABLE.

Remarks

If parameters to this function are invalid, this function returns corrected parameters.

This function uses the following heuristics when comparing the requested requirements against available formats:

  • Do not choose a format that has fewer channels.
  • Avoid FOURCC And 24-bit formats unless explicitly requested.
  • Try not to add new channels.
  • Try not to change the number of bits per channel.
  • Try to avoid converting between types of formats. For instance, avoid converting an ARGB format to a depth format.

Requirements

Requirement Value
Header
D3dx9tex.h
Library
D3dx9.lib

See also

Texture Functions in D3DX 9