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.