DirectXTexNet Normal operation Assume pitch is DWORD aligned instead of BYTE aligned Assume pitch is 16-byte aligned instead of BYTE aligned Assume pitch is 32-byte aligned instead of BYTE aligned The ZMM Assume pitch is 4096-byte aligned instead of BYTE aligned BC formats with malformed mipchain blocks smaller than 4x4 Override with a legacy 24 bits-per-pixel format size Override with a legacy 16 bits-per-pixel format size Override with a legacy 8 bits-per-pixel format size Subset here matches D3D10_RESOURCE_MISC_FLAG and D3D11_RESOURCE_MISC_FLAG Matches DDS_ALPHA_MODE, encoded in MISC_FLAGS2 Assume pitch is DWORD aligned instead of BYTE aligned (used by some legacy DDS files) Do not implicitly convert legacy formats that result in larger pixel sizes (24 bpp, 3:3:2, A8L8, A4L4, P8, A8P8) Do not use work-around for long-standing D3DX DDS file format issue which reversed the 10:10:10:2 color order masks Convert DXGI 1.1 BGR formats to DXGI_FORMAT_R8G8B8A8_UNORM to avoid use of optional WDDM 1.1 formats Conversions avoid use of 565, 5551, and 4444 formats and instead expand to 8888 to avoid use of optional WDDM 1.2 formats When loading legacy luminance formats expand replicating the color channels rather than leaving them packed (L8, L16, A8L8) Some older DXTn DDS files incorrectly handle mipchain tails for blocks smaller than 4x4 Always use the 'DX10' header extension for DDS writer (i.e. don't try to write DX9 compatible DDS files) FORCE_DX10_EXT including miscFlags2 information (result may not be compatible with D3DX10 or D3DX11) Loads DXGI 1.1 BGR formats as DXGI_FORMAT_R8G8B8A8_UNORM to avoid use of optional WDDM 1.1 formats Loads DXGI 1.1 X2 10:10:10:2 format as DXGI_FORMAT_R10G10B10A2_UNORM Loads 565, 5551, and 4444 formats as 8888 to avoid use of optional WDDM 1.2 formats Loads 1-bit monochrome (black and white) as R1_UNORM rather than 8-bit grayscale Loads all images in a multi-frame file, converting/resizing to match the first frame as needed, defaults to 0th frame otherwise Ignores sRGB metadata if present in the file Use ordered 4x4 dithering for any required conversions Use error-diffusion dithering for any required conversions Filtering mode to use for any required image resizing (only needed when loading arrays of differently sized images; defaults to Fant) Filtering mode to use for any required image resizing (only needed when loading arrays of differently sized images; defaults to Fant) Filtering mode to use for any required image resizing (only needed when loading arrays of differently sized images; defaults to Fant) Filtering mode to use for any required image resizing (only needed when loading arrays of differently sized images; defaults to Fant) Combination of Linear and Box filter Wrap vs. Mirror vs. Clamp filtering options Wrap vs. Mirror vs. Clamp filtering options Wrap vs. Mirror vs. Clamp filtering options Wrap vs. Mirror vs. Clamp filtering options Wrap vs. Mirror vs. Clamp filtering options Wrap vs. Mirror vs. Clamp filtering options Wrap vs. Mirror vs. Clamp filtering options Resize color and alpha channel independently Enable *2 - 1 conversion cases for unorm to/from float and positive-only float formats When converting RGB to R, defaults to using grayscale. These flags indicate copying a specific channel instead When converting RGB to RG, defaults to copying RED | GREEN. These flags control which channels are selected instead. When converting RGB to R, defaults to using grayscale. These flags indicate copying a specific channel instead When converting RGB to RG, defaults to copying RED | GREEN. These flags control which channels are selected instead. When converting RGB to R, defaults to using grayscale. These flags indicate copying a specific channel instead When converting RGB to RG, defaults to copying RED | GREEN. These flags control which channels are selected instead. Use ordered 4x4 dithering for any required conversions Use error-diffusion dithering for any required conversions Filtering mode to use for any required image resizing Filtering mode to use for any required image resizing Filtering mode to use for any required image resizing Filtering mode to use for any required image resizing Filtering mode to use for any required image resizing Equiv to Box filtering for mipmap generation Filtering mode to use for any required image resizing sRGB to/from RGB for use in conversion operations if the input format type is IsSRGB(), then SRGB_IN is on by default if the output format type is IsSRGB(), then SRGB_OUT is on by default Forces use of the non-WIC path when both are an option Forces use of the WIC path even when logic would have picked a non-WIC path when both are an option ignores sRGB colorspace conversions converts from premultiplied alpha back to straight alpha if the input format type is IsSRGB(), then SRGB_IN is on by default if the output format type is IsSRGB(), then SRGB_OUT is on by default Enables dithering RGB colors for BC1-3 compression Enables dithering alpha for BC1-3 compression Enables both RGB and alpha dithering for BC1-3 compression Uniform color weighting for BC1-3 compression; by default uses perceptual weighting Enables exhaustive search for BC7 compress for mode 0 and 2; by default skips trying these modes Minimal modes (usually mode 6) for BC7 compression if the input format type is IsSRGB(), then SRGB_IN is on by default if the output format type is IsSRGB(), then SRGB_OUT is on by default Compress is free to use multithreading to improve performance (by default it does not use multithreading) Channel selection when evaluting color value for height Channel selection when evaluting color value for height Channel selection when evaluting color value for height Channel selection when evaluting color value for height Channel selection when evaluting color value for height Luminance is a combination of red, green, and blue Use mirror semantics for scanline references (defaults to wrap) Use mirror semantics for scanline references (defaults to wrap) Use mirror semantics for scanline references (defaults to wrap) Inverts normal sign Computes a crude occlusion term stored in the alpha channel Indicates that image needs gamma correction before comparision Indicates that image needs gamma correction before comparision Ignore the channel when computing MSE Ignore the channel when computing MSE Ignore the channel when computing MSE Ignore the channel when computing MSE Indicates that image should be scaled and biased before comparison (i.e. UNORM -> SNORM) Indicates that image should be scaled and biased before comparison (i.e. UNORM -> SNORM) Windows Bitmap (.bmp) Joint Photographic Experts Group (.jpg, .jpeg) Portable Network Graphics (.png) Tagged Image File Format (.tif, .tiff) Graphics Interchange Format (.gif) Windows Media Photo / HD Photo / JPEG XR (.hdp, .jxr, .wdp) Windows Icon (.ico) The delegate used for the EvaluateImage method. The pixels. This a row of Pixels with each pixel normally represented as RBGA in 4x32bit float (0.0-1.0). The width. The y/row index. The delegate used for the EvaluateImage method. The out pixels to write to. This a row of Pixels with each pixel normally represented as RBGA in 4x32bit float (0.0-1.0). The input pixels. This a row of Pixels with each pixel normally represented as RBGA in 4x32bit float (0.0-1.0). The width. The y/row index. This is an immutable class representing the native Image struct. It also keeps a reference to a parent to prevent finalizing of the parent when the image is still used. But it's still strongly encouraged to manually dispose ScratchImages. This class represents the native TexMetadata struct. A managed class is used to simplify passing it by reference. The height. Should be 1 for 1D textures. The depth. Should be 1 for 1D or 2D textures. The array size. For cubemap, this is a multiple of 6. Computes the image index for the specified values. If the image index is out of range is returned. The mip. The item. The slice. The image index. If the image index is out of range is returned. Whether this ScratchImage owns the pixel data; Normally GetImage().pixels should be used instead, because this only returns a pointer to the pixel data if this image owns the pixel data. This only returns a value if this image owns the pixel data. Determines whether all pixels are opaque. This method is not supported by temporary scratch images. Creates a new ScratchImage (deep copy). Index of the image to make a copy of. if set to true and the height of the image is 1 a 1D Texture is created instead a 2D Texture. The flags. Creates a new Array ScratchImage (deep copy). The start index. The n images. if set to true and the height of the image is 1 a 1D Texture is created instead a 2D Texture. The flags. Creates a copy of the image but with empty mip maps (not part of original DirectXTex). Can be used to generate the mip maps by other means (DirectXTex MipMap Generation is pretty slow). The levels. The format. The flags. if set to true the mip map levels are zeroed out. Resize the image to width x height. Defaults to Fant filtering. Note for a complex resize, the result will always have mipLevels == 1. The width. The height. The filter. The resized image. Converts the image from a planar format to an equivalent non-planar format. Converts the image from a planar format to an equivalent non-planar format. Generates the mip maps. Index of the image. The filter. Defaults to Fant filtering which is equivalent to a box filter. Levels of '0' indicates a full mipchain, otherwise is generates that number of total levels (including the source base image). if set to true and the height of the image is 1 a 1D Texture is created instead a 2D Texture. Generates the mip maps. The filter. Defaults to Fant filtering which is equivalent to a box filter. Levels of '0' indicates a full mipchain, otherwise is generates that number of total levels (including the source base image). Generates the mip maps. The start index. The depth. The filter. Defaults to Fant filtering which is equivalent to a box filter. Levels of '0' indicates a full mipchain, otherwise is generates that number of total levels (including the source base image). Generates the mip maps. The filter. Defaults to Fant filtering which is equivalent to a box filter. Levels of '0' indicates a full mipchain, otherwise is generates that number of total levels (including the source base image). Converts to/from a premultiplied alpha version of the texture. Index of the image. The flags. Converts to/from a premultiplied alpha version of the texture. The flags. Compresses the specified source image. Note that threshold is only used by BC1. Index of the image. The format. The compress. The threshold. Default 0.5 DirectCompute-based compression Index of the image. The device. The format. The compress. The alpha weight (is only used by BC7. 1.0 is the typical value to use). Compresses the specified source image. Note that threshold is only used by BC1. The format. The compress. The threshold. Default 0.5 DirectCompute-based compression The device. The format. The compress. The alpha weight (is only used by BC7. 1.0 is the typical value to use). Computes the image index for the specified values. If the image index is out of range is returned. The ScratchImage provide a ComputeImageIndex method as well, which should be used preferrably. The metadata. The mip. The item. The slice. The image index. If the image index is out of range is returned. Creates a temporary image collection (Not part of the original DirectXTex). This does not copy the data. Be sure to not dispose the original ScratchImages that were combined in this collection. Alternatively the ownership of the original ScratchImage(s) can be passed to this instance. The images. The metadata. Optional objects this instance should take ownership of.