Generates mipmaps for an image or a set of images.

Note: This generates mipmaps for 1D and 2D dimension textures. For 3D dimension textures, see GenerateMipMaps3D.

HRESULT GenerateMipMaps( _In_ const Image& baseImage, _In_ DWORD filter,
    _In_ size_t levels,
    _Inout_ ScratchImage& mipChain, _In_ bool allow1D = false );

HRESULT GenerateMipMaps( _In_reads_(nimages) const Image* srcImages, _In_ size_t nimages,
    _In_ const TexMetadata& metadata,
    _In_ DWORD filter, _In_ size_t levels,
    _Inout_ ScratchImage& mipChain );


baseImage: The mipmap chain is created by repeatedly down-sizing a base image. The first level of the resulting mipChain is set to a copy of the input baseImage.

filter: See Filter Flags

levels: Number of mip map levels including base. A value of 0 indicates creating a full mipmap chain down to 1x1

allow1D: If set to true and given an input baseImage with a height of 1 then the resulting mipChain will be a TEX_DIMENSION_TEXTURE1D. Otherwise the resulting mipChain is a TEX_DIMENSION_TEXTURE2D.


ScratchImage baseImage;


ScratchImage mipChain;
hr = GenerateMipMaps( baseImage.GetImages(), baseImage.GetImageCount(), baseImage.GetMetadata(), TEX_FILTER_DEFAULT, 0, mipChain );
if ( FAILED(hr) )


This function does not operate directly on block compressed images. See Decompress and Compress.

This function cannot operate directly on a planar format image. See ConvertToSinglePlane for a method for converting planar data to a format that is supported by this routine.

The second version of GenerateMipMaps is intended for working with 1D arrays, 2D arrays, cubemaps, and cubemap arrays with mipmaps. For volume maps, see GenerateMipMaps3D

This function is implemented with both WIC and non-WIC code paths. The WIC code paths are used for > 8-bit color depth formats, sRGB color formats, or when WRAP/MIRROR semantics are requested.

Release Notes

  • When resizing HDR images, be sure to stick with the default of TEX_FILTER_FANT when using WIC as the WIC bitmap scaler has limited supported for high bit-depth and extended range formats. By default, the DirectXTex library chooses to use non-WIC codepaths when generating mipmaps for > 8 color-depth images with LINEAR or CUBIC filtering.

Last edited Jun 22, 2015 at 6:00 AM by walbourn, version 8