Quantcast
Channel: DirectXTex texture processing library
Viewing all 1174 articles
Browse latest View live

Updated Wiki: Texconv

$
0
0
This DirectXTex sample is an implementation of the "texconv" command-line texture utility from the DirectX SDK utilizing DirectXTex rather than D3DX.

To create cubemaps, volume maps, or texture arrays from individual files, use Texassemble

Syntax

Texconv.exe uses the following command syntax:

texconv [-w number] [-h number] [-d number] [-m number] [-f format] [-if filter] [-srgb | -srgbi | -srgbo] [-px  string] [-sx string] [-o directory] [-ft file-type] [-hflip] [-vflip] [-sepalpha] [-wrap | -mirror] [-pmalpha] [-fl feature-level] [-pow2] [-tu | -tf] [-dword] [-xlum] [-dx10]  [-nologo] [-singleproc] [-nogpu] [-aw number] <file-name(s)>
The file-name parameter indicates the file(s) to convert.

The optional command-line switches are described in the following table.

Optional Switches Description

  • -wnumber Width of the output texture in pixels.
  • -hnumber Height of the output texture in pixels.
  • -dnumber Depth of the output texture. This setting applies only to volume textures.
  • -mnumber Number of mipmap levels to generate in the output texture. This setting only applies to DDS output.
  • -fformat Output format. Specify the DXGI format without the DXGI_FORMAT_ prefix (i.e. "-f BC1_UNORM").
  • -iffilter Image filter. Use one of the following: POINT, LINEAR, CUBIC, FANT, BOX, TRIANGLE, POINT_DITHER, LINEAR_DITHER, CUBIC_DITHER, FANT_DITHER, BOX_DITHER, TRIANGLE_DITHER, POINT_DITHER_DIFFUSION, LINEAR_DITHER_DIFFUSION, CUBIC_DITHER_DIFFUSION, FANT_DITHER_DIFFUSION, BOX_DITHER_DIFFUSION, or TRIANGLE_DITHER_DIFFUSION. Filters with DITHER in their name indicate that the 4x4 ordered dither algorithm, while "DITHER_DIFFUSION" is error diffusion dithering.
  • -srgb, -srgbi, or -srgbo Use sRGB if both the input and output data are in the sRGB color format (ie. gamma ~2.2). Use sRGBi if only the input is in sRGB; use sRGBo if only the output is in sRGB.
  • -pxstring Text string to attach to the front of the resulting texture's name.
  • -sxstring Text string to attach to the end of the resulting texture's name.
  • -odirectory Output directory.
  • -ftfile-type A file type for the output texture. Use one of the following: bmp, dds, jpg, png, or tiff. The default value is dds.
  • -hflip Perform horizonal flip of image
  • -vflip Perform horizonal flip of image
  • -sepalpha Separates alpha channel for resize/mipmap generation. This implies an alpha mode setting of DDS_ALPHA_MODE_CUSTOM as this is typically only used if the alpha channel doesn't contain transparency information.
  • -wrap, -mirror Sets the texture addressing mode for filtering to wrap or mirror, otherwise defaults to clamp.
  • -pmalpha Converts the final texture data to use premultiplied alpha. This sets an alpha mode of DDS_ALPHA_MODE_PREMULTIPLIED unless the entire alpha channel is fully opaque.
  • -pow2 Fits each texture to a power-of-2 for width & height, minimizing changes to the aspect ratio.
  • -flfeature-level Sets the target feature level which determines the maximum supported texture size. Defaults to "11.0" which is 16834, the limit for 11.0 and 11.1 Feature Level hardware.
  • -tu DDS files with TYPELESS formats are treated as UNORM
  • -tf DDS files with TYPELESS formats are treated as FLOAT
  • -dword For DDS files use a DWORD alignment instead of BYTE alignment (used for some legacy files)
  • -xlum DDS files with L8, A8L8, or L16 formats are expanded to 8:8:8:8 or 16:16:16:16
  • -dx10 Forces DDS file output to always use the "DX10" header extension, and allows the writing of alpha mode metadata information. The resulting file may not be compatible with the legacy D3DX10 or D3DX11 libraries.
  • -nologo Suppress copyright message.
  • -singleproc If the DirectXTex library and the texconv utility are built with OpenMP enabled, by default the tool will use multi-threading for CPU-based compression of BC6H and BC7 formats to spread the compression work across multiple cores. This flag disables this behavior forcing it to remain on a single core.
  • -nogpu When compressing BC6H / BC7 content, texconv will use DirectCompute on the GPU if available. Use of this flag forces texconv to always use the software codec instead.
  • -awnumber Provides an alpha weighting to use with the error metric for the BC7 GPU compressor. Defaults to 1.0.

Created Unassigned: SaveToDDSFile/Memory incorrectly assumes data continuously [1119]

$
0
0
SaveToDDSFile/Memory implementation writes whole slice pitch to file/memory, but sometimes hardware stores textures in aligned row/slices (usually to 8 bytes).

You need to write each row separately, but only width * height * sizeof(format) part discarding remaining data.

This implementation is incompatible with generic "ideology" of Direct3D's subresources data storage.

Commented Unassigned: SaveToDDSFile/Memory incorrectly assumes data continuously [1119]

$
0
0
SaveToDDSFile/Memory implementation writes whole slice pitch to file/memory, but sometimes hardware stores textures in aligned row/slices (usually to 8 bytes).

You need to write each row separately, but only width * height * sizeof(format) part discarding remaining data.

This implementation is incompatible with generic "ideology" of Direct3D's subresources data storage.

[EDIT] According to http://msdn.microsoft.com/en-us/library/windows/desktop/ff476220(v=vs.85).aspx slicePitch is not taken into account for Texture2D so it could be 0 for example.
Comments: ** Comment from web user: ShawnHargreaves **

I think you have misunderstood how this code works. The SaveToDDSFile function operates on a DirectXTex Image class, not a native D3D11 texture surface. The data in an Image is always tightly packed, not controlled by the driver. Look at the _Capture function in DirectXTexD3D11.cpp, for instance, and see how it handles stride when copying from a mapped D3D resource into an Image.

Do you have a concrete repro where this code is giving a wrong result? If so can you share details of that please?

Commented Unassigned: SaveToDDSFile/Memory incorrectly assumes data continuously [1119]

$
0
0
SaveToDDSFile/Memory implementation writes whole slice pitch to file/memory, but sometimes hardware stores textures in aligned row/slices (usually to 8 bytes).

You need to write each row separately, but only width * height * sizeof(format) part discarding remaining data.

This implementation is incompatible with generic "ideology" of Direct3D's subresources data storage.

[EDIT] According to http://msdn.microsoft.com/en-us/library/windows/desktop/ff476220(v=vs.85).aspx slicePitch is not taken into account for Texture2D so it could be 0 for example.
Comments: ** Comment from web user: walbourn **

DirectXTex generally assumes you are using ScratchImage which uses byte-alignment which is what DDS files use. The design is that you'd use CaptureTexture() to create a ScratchImage and then use SaveToDDSFile on that data rather than the original data.

Certainly the implied use of the Image struct is that you can provide your own pitch to these functions from arbitrary memory, which is what this issue is bringing up. I'll review the library to see if I can support this scenario more directly. I do expect you to provide Image::slicePitch as the size of the total image...

All that said, have you looked at the ScreenGrab module? That is designed to do a light-weight grab of Direct3D 11 resources and create DDS files from them directly.

Updated Wiki: DirectXTex

$
0
0
The DirectXTex library includes a full-featured DDS reader and writer including legacy format conversions, a TGA reader and writer, a WIC-based bitmap reader and writer (BMP, JPEG, PNG, TIFF, and HD Photo), and various texture processing functions. This is intended primarily for tool usage.

The library assumes that the client code will have already called CoInitialize or CoInitializeEx as needed by the application before calling any DirectXTex routines

NOTE: DirectXTex is not supported on Windows Phone 8, because WIC is not available on that platform. The .DDS files it generates are suitable for use on Windows Phone 8 assuming the pixel format is supported by the device (currently Feature Level 9.3).

Headers

The majority of the header files here are intended for internal implementation of the library only (BC.h, DDS.h, DirectXTexP.h, and scoped.h). Only DirectXTex.h is meant as a 'public' header for the library.

Namespace

All the functions in the library are in the "DirectX" C++ namespace.

Functions

DDS I/O Functions

TGA I/O Functions

WIC I/O Functions

Texture Functions

Direct3D 11 Helper Functions

Utility Functions

Structures

TexMetadata contains metadata information about the texture resource and organization such as width, height, depth, format, dimension, etc.
  • TEX_DIMENSION_TEXTURE1D, TEX_DIMENSION_TEXTURE2D, and TEX_DIMENSION_TEXTURE3D are alises for D3D10_RESOURCE_DIMEMSION and D3D11_RESOURCE_DIMENSION.
  • TEX_MISC_TEXTURECUBE is an alias for the same D3D10_RESOURCE_MISC_FLAG and D3D11_RESOURCE_MISC_FLAG.
  • TEX_MISC2_ALPHA_MODE_MASK is a mask for miscFlags2 to obtain the TEX_ALPHA_MODE.
Image contains information about the surface including width, height, format, rowPitch, slicePitch, and a pointer to pixel data. Note that for 1D and 2D images, slicePitch should be set to the full size of the image.

ScratchImage is a helper class that manages memory for functions that return a Image or set of Images.

Blob is a helper class that manages for functions that return a binary blob of data.

Rect contains a simple pixel-based rectangle used by the CopyRectangle function.

Adding to a VS Project

In your application's solution, right-click on the Solution and use "Add \ Existing Project..." to add the appropriate .vcxproj file to your solution.
  • DirectXTex_Desktop_2013 is for Win32 desktop applications building with VS 2013 Express for Desktop, VS 2013 Professional or higher.
  • DirectXTex_Desktop_2012 is for Win32 desktop applications building with VS 2012 Express for Desktop, VS 2012 Professional or higher
  • DirectXTex_Desktop_2010 is for Win32 desktop applications building with VS 2010 using the Windows 8.1 SDK
  • DirectXTex_Windows81 is for Windows Store apps building with VS 2013 targeting Windows 8.1
  • DirectXTex_Windows8 is for Windows Store apps building with VS 2012 targeting Windows 8
  • DirectXTex_XboxOneXDK is for Xbox One exclusive apps building with VS 2012 using the Xbox One XDK
  • DirectXTex_XboxOneADK is for Xbox One hub apps building with VS 2012 using the Xbox One ADK
In your application's project, right-click on the Project and use "References...", then "Add New Reference...", and then check the DirectXTex project name and click OK. For a Windows Store app, you need to set Reference Assembly Output to false since DirectXTex is a static C++ library and not a WinRT component.

In your application's project settings, on the "C++ / General" page set Configuration to "All Configurations", set Platform to "All Platforms", and then add the relative path to DirectXTex; to the Additional Include Directories properties. Click Apply.

When using VS 2010 with the Windows 8.x SDK http://go.microsoft.com/fwlink/?LinkID=323507, or when using VS 2012 with the Windows 8.1 SDK, you'll need to apply the correct .props files to your projects as well as use the correct DirectXTex project. http://blogs.msdn.com/b/vcblog/archive/2012/11/23/using-the-windows-8-sdk-with-visual-studio-2010-configuring-multiple-projects.aspx

Release Notes

  • The alpha mode specification for DDS files was updated between the March 2013 and April 2013 releases. Any DDS files created using the DDS_FLAGS_FORCE_DX10_EXT_MISC2 flag or the texconv -dx10 switch using the March 2013 release should be refreshed.
  • Due to the underlying Windows BMP WIC codec, alpha channels are not supported for 16bpp or 32bpp BMP pixel format files. The Windows 8 version of the Windows BMP WIC codec does support 32bpp pixel formats with alpha when using the BITMAPV5HEADER file header.
  • While DXGI 1.0 and DXGI 1.1 include 5:6:5 (DXGI_FORMAT_B5G6R5_UNORM) and 5:5:5:1 (DXGI_FORMAT_B5G5R5A1_UNORM) pixel format enumerations, the DirectX 10.x and 11.0 Runtimes do not support these formats for use with Direct3D. The DirectX 11.1 runtime, DXGI 1.2, and the WDDM 1.2 driver model fully support 16bpp formats (5:6:5, 5:5:5:1, and 4:4:4:4).
  • Loading of 96bpp floating-point TIFF files results in a corrupted image prior to Windows 8. This fix is available on Windows 7 SP1 with KB 2670838 installed.

Edited Issue: SaveToDDSFile/Memory incorrectly assumes data continuously [1119]

$
0
0
SaveToDDSFile/Memory implementation writes whole slice pitch to file/memory, but sometimes hardware stores textures in aligned row/slices (usually to 8 bytes).

You need to write each row separately, but only width * height * sizeof(format) part discarding remaining data.

This implementation is incompatible with generic "ideology" of Direct3D's subresources data storage.

[EDIT] According to http://msdn.microsoft.com/en-us/library/windows/desktop/ff476220(v=vs.85).aspx slicePitch is not taken into account for Texture2D so it could be 0 for example.
Comments: ** Comment from web user: walbourn **

I've confirmed that this issue only impacts SaveDDSTo*. All the other functions in DirectXTex work fine with arbitrary (valid) pitches passed in.

Note that I updated the docs to indicate that Image::slicePitch is always expected to be set even for 1D and 2D images.

Source code checked in, #34414

$
0
0
DirectXTex: support writing DDS files where input Image struct rowPitch is not 1-byte aligned

Closed Issue: SaveToDDSFile/Memory incorrectly assumes data continuously [1119]

$
0
0
SaveToDDSFile/Memory implementation writes whole slice pitch to file/memory, but sometimes hardware stores textures in aligned row/slices (usually to 8 bytes).

You need to write each row separately, but only width * height * sizeof(format) part discarding remaining data.

This implementation is incompatible with generic "ideology" of Direct3D's subresources data storage.

[EDIT] According to http://msdn.microsoft.com/en-us/library/windows/desktop/ff476220(v=vs.85).aspx slicePitch is not taken into account for Texture2D so it could be 0 for example.
Comments: Resolved with changeset 34414: DirectXTex: support writing DDS files where input Image struct rowPitch is not 1-byte aligned

Updated Wiki: Utility Functions

$
0
0
These functions provide utility functionality when working with DXGI_FORMATs throughout the library.

GetWICCodec
Returns a WIC GUID for a given file container given a simple enumeration value. This function is optional and you can instead use the WIC container GUID directly instead.
  • WIC_CODEC_BMP Windows Bitmap (.bmp)
  • WIC_CODEC_JPEG Joint Photographic Experts Group (.jpg, .jpeg)
  • WIC_CODEC_PNG Portable Network Graphics (.png)
  • WIC_CODEC_TIFF Tagged Image File Format (.tif, .tiff)
  • WIC_CODEC_GIF Graphics Interchange Format (.gif)
  • WIC_CODEC_WMP Windows Media Photo / HD Photo / JPEG XR (.hdp, .jxr, .wdp)
  • WIC_CODEC_ICO Windows Icon (.ico)

IsValid
Returns false if the DXGI format is unknown.

IsCompressed
Returns true if the DXGI format is a block compressed format.

IsPacked
Returns true if the DXGI format is a 'packed' format (such as 4:2:2 video formats)

IsVideo
Returns true if the DXGI format is a DXGI 1.2 'video' format defined for Direct3D 11.1 video.

IsPlanar
Returns true if the DXGI format is a 'planar' format (such as 4:2:0 or 4:1:1 video formats).

IsPalettized
Returns true if the DXGI format is a paletted format (only legacy Direct3D 11.1 video formats are paletted).

IsDepthStencil
Returns true if the DXGI format is for use with depth/stencil resources.

IsSRGB
Returns true if the DXGI format is an sRGB format.

IsTypeless
Returns true if the DXGI format is a 'typeless' format. If partialTypeless is 'true' (the default) then formats with both typeless and typed content return true. If partialTypeless is 'false', then the mixed DXGI types (such as DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS) will return false instead.

HasAlpha
Returns true of the DXGI format includes an alpha channel. Note that BC1 formats return true because they have a 'transparency bit' trick in the encoding to handle 1-bit alpha.

BitsPerPixel
Returns the bits-per-pixel for a given DXGI format. For example, it returns 32 for DXGI_FORMAT_R10G10B10A2_UNORM.

BitsPerColor
Returns the color-depth (aka bit-depth) for a given DXGI format. For formats with a mix of different channel sizes, it returns the color-depth of the largest channel. For example, it returns 10 for DXGI_FORMAT_R10G10B10A2_UNORM.

ComputePitch
Returns both the row and slice pitch for a given width, height, and DXGI format. It supports a number of flags for overriding the default byte-alignment usually used by DDS files and Direct3D 11 resources.
  • CP_FLAGS_NONE is the default
  • CP_FLAGS_LEGACY_DWORD is used for some legacy Direct3D 8 era DDS files, particularly 24bpp files, that used a DWORD alignment instead of BYTE for each row
  • CP_FLAGS_PARAGRAPH uses a 16-byte alignment for each row
  • CP_FLAGS_24BPP used for computing pitch of Direct3D 9 era 24bpp DDS files (which cannot be indicated by a DXGI_FORMAT)
  • CP_FLAGS_16BPP used for computing pitch of 16bpp DDS files (which requires DXGI 1.2 headers to define all possible combinations, so we use the flag here instead)
  • CP_FLAGS_8BPP used for computing pitch of 8bpp DDS files
These flags only effect standard color formats. They have no effect on BC, packed, or planar format.

ComputeScanlines
Returns the number of horizontal scanlines in an image given the DXGI format and pixel height.

MakeSRGB
Converts a DXGI format to the sRGB equivalent if any.

MakeTypeless
Converts a DXGI format to a TYPELESS equiavlent if any. This does not modify depth/stencil formats which have multiple 'typeless' mappings.

MakeTypelessUNORM
Converts a TYPELESS DXGI format to a UNORM equivalent if any.

MakeTypelessFLOAT
Converts a TYPELESS DXGI format to a FLOAT equivalent if any.

Source code checked in, #34415

$
0
0
texconv: minor code review feedback

Commented Issue: Resource leak from _GetWIC() [979]

$
0
0
_GetWIC() in DirectXTexP.h implements a singleton. The function stores a static pointer to a IWICImagingFactory. This resource is created on demand but never freed, showing up as a leak with some application verifiers.

Possible Workaround:
Caller can try _GetWIC()->Release() before exiting application.
The timing and code location of such cleanup may not be convenient.
EDIT: For whatever reason, calling Release() on the returned non-null pointer causes read access violation.

Proposed Solution:
As per other 3rd party libraries, create library Init() and Destroy() style functions. Perform whatever initialization and cleanup that may be required. Expose these functions with minimal dependency so they can be called at application startup and shutdown phases.
Comments: ** Comment from web user: walbourn **

There's currently an issue with mixing the use of DirectXTex and DirectXTK today because they both define a _GetWIC() function. Either they need to be isolated to a specific module by themselves in each library, or one or both need to be renamed.

Commented Issue: Resource leak from _GetWIC() [979]

$
0
0
_GetWIC() in DirectXTexP.h implements a singleton. The function stores a static pointer to a IWICImagingFactory. This resource is created on demand but never freed, showing up as a leak with some application verifiers.

Possible Workaround:
Caller can try _GetWIC()->Release() before exiting application.
The timing and code location of such cleanup may not be convenient.
EDIT: For whatever reason, calling Release() on the returned non-null pointer causes read access violation.

Proposed Solution:
As per other 3rd party libraries, create library Init() and Destroy() style functions. Perform whatever initialization and cleanup that may be required. Expose these functions with minimal dependency so they can be called at application startup and shutdown phases.
Comments: ** Comment from web user: walbourn **

One possible solution to the original issue here would be to provide a 'SetWICFactory' method so the application can provide the instance instead of having the system create one internally. Then passing 'nullptr' could clean up the singleton. The DirectXTex and DirectXTK library functions don't retain a ref to the factory, so this would be fairly clean...

Commented Issue: SaveToDDSFile/Memory incorrectly assumes data continuously [1119]

$
0
0
SaveToDDSFile/Memory implementation writes whole slice pitch to file/memory, but sometimes hardware stores textures in aligned row/slices (usually to 8 bytes).

You need to write each row separately, but only width * height * sizeof(format) part discarding remaining data.

This implementation is incompatible with generic "ideology" of Direct3D's subresources data storage.

[EDIT] According to http://msdn.microsoft.com/en-us/library/windows/desktop/ff476220(v=vs.85).aspx slicePitch is not taken into account for Texture2D so it could be 0 for example.
Comments: ** Comment from web user: walbourn **

Note this issue did not impact ScreenGrab's SaveDDSTexture* because it always copies to a STAGING resource which uses 1-byte alignment.

Source code checked in, #34576

$
0
0
DDSTextureLoader: Attempt to use autogen mips for DDS files without mipmaps if a Direct3D 11 context is provided

Source code checked in, #34577

$
0
0
WICTextureLoader: Added overloads that do not take a D3D11DeviceContext (i.e. no autogen mips) to be consistent with DDSTextureLoader

Source code checked in, #34578

$
0
0
Updated for February 24, 2014 release

Updated Wiki: Version History

$
0
0
February 24, 2014
  • Direct3D 11 video and Xbox One extended format support
  • New APIs: IsPlanar, IsPalettized, IsDepthStencil, ConvertToSinglePlane
  • Added 'alphaWeight' parameter to GPU Compress [breaking change]
  • texconv '-aw' switch to control the alpha weighting for the BC7 GPU compressor
  • Fixed bug with ordered dithering in non-WIC conversion codepaths
  • Fixed SaveToDDS* functions when using arbitrary row pitch values

January 24, 2014
  • Added sRGB flags for Compress (TEX_COMPRESS_SRGB*)
  • Added 'compress' flag parameter to GPU versions of Compress [breaking change]
  • Minor fix for potential rounding problem in GPU Compress
  • Code cleanup (removed DXGI_1_2_FORMATS control define; ScopedObject typedef removed)
  • Dropped VS 2010 support without the Windows 8.1 SDK (removed USE_XNAMATH control define)

December 24, 2013
  • texconv updated with -fl and -pow2 command-line switches
  • Fixed bug in Resize when doing custom filtering which occurred when exactly doubling the image size
  • Added move operators to ScratchImage and Blob classes
  • Xbox One platform support

October 21, 2013
  • Updated for Visual Studio 2013 and Windows 8.1 SDK RTM
  • PremultiplyAlpha updated with new 'flags' parameter and to use sRGB correct blending
  • Fixed colorspace conversion issue with DirectCompute compressor when compressing for BC7 SRGB

August 13, 2013
  • DirectCompute 4.0 BC6H/BC7 compressor integration
  • texconv utility uses DirectCompute compression by default for BC6H/BC7, -nogpu disables use of DirectCompute

August 1, 2013
  • Support for BC compression/decompression of non-power-of-2 mipmapped textures
  • Fixes for BC6H / BC7 codecs to better match published standard
  • Fix for BC4 / BC5 codecs when compressing RGB images
  • Minor fix for the BC1-3 codec
  • New optional flags for ComputeMSE to compare UNORM vs. SNORM images
  • New WIC loading flag added to control use of WIC metadata to return sRGB vs. non-sRGB formats
  • Code cleanup and /analyze fixes
  • Project file cleanup
  • Texconv utility uses parallel BC compression by default for BC6H/BC7, -singleproc disables multithreaded behavior

July 1, 2013
  • VS 2013 Preview projects added
  • SaveToWIC functions updated with new optional setCustomProps parameter

June 15, 2013
  • Custom filtering implementation for Resize & GenerateMipMaps(3D) - Point, Box, Linear, Cubic, and Triangle
    • TEX_FILTER_TRIANGLE finite low-pass triangle filter
    • TEX_FILTER_WRAP, TEX_FILTER_MIRROR texture semantics for custom filtering
    • TEX_FILTER_BOX alias for TEX_FILTER_FANT WIC
  • Ordered and error diffusion dithering for non-WIC conversion
  • sRGB gamma correct custom filtering and conversion
  • DDS_FLAGS_EXPAND_LUMINANCE - Reader conversion option for L8, L16, and A8L8 legacy DDS files
  • Added use of WIC metadata for sRGB pixel formats
  • Added BitsPerColor utility function
  • Fixed Convert threshold parameter usage
  • Non-power-of-2 volume map support, fixed bug with non-square volume maps
  • Texconv utility update with -xlum, -wrap, and -mirror options; reworked -if options for improved dithering
  • Texassemble utility for creating cubemaps, volume maps, and texture arrays
  • DDSTextureLoader and WICTextureLoader sync'd with DirectXTK versions

April 16, 2013
  • Updated alpha-mode metadata details in .DDS files
  • Added new control flags for Convert
  • Added new optional flags for ComputeMSE
  • Fixed conversion handling for sRGB formats
  • Fixed internal routines for handling R10G10B10_XR_BIAS_A2_UNORM, R9G9B9E5_SHAREDEXP, and FORMAT_R1_UNORM
  • Fixed WIC I/O for GUID_WICPixelFormat32bppRGBE pixel format files (HD Photo)
  • Fixed non-square image handling in GenerateMipMaps3D
  • Fixed some error handling in the DDS load code

March 22, 2013
  • Supports reading and writing alpha-mode (straight, premultiplied, etc.) metadata in .DDS files
  • Added build option to use WICCreateImagingFactory_Proxy instead of CoCreateInstance to obtain WIC factory

January 29, 2013
  • Added PremultiplyAlpha to DirectXTex; -pmalpha switch for texconv command-line tool
  • Fixed problem with forceSRGB implementation for Ex versions of CreateTexture, CreateShaderResourceView, DDSTextureLoader and WICTextureLoader

December 11, 2012
  • Ex versions of CreateTexture, CreateShaderResourceView, DDSTextureLoader and WICTextureLoader
  • Fixed BC2 and BC3 decompression issue for unusual color encoding case
  • Converted annotation to SAL2 for improved VS 2012 /analyze experience
  • Updated DirectXTex, DDSView, and Texconv with VS 2010 + Windows 8.0 SDK project using official 'property sheets'

November 15, 2012
  • Added support for WIC2 when available on Windows 8 and Windows 7 with KB 2670838
  • Added optional targetGUID parameter to SaveWIC* APIs to influence final container pixel format choice
  • Fixed bug in SaveDDS* which was generating invalid DDS files for 1D dimension textures
  • Improved robustness of CaptureTexture when resolving MSAA source textures
  • Sync'd DDSTextureLoader, ScreenGrab, and WICTextureLoader standalone versions with latest DirectXTK release

September 28, 2012
  • Added ScreenGrab module for creating runtime screenshots
  • Renamed project files for better naming consistency
  • New Typeless utilities for DirectXTex
  • Some minor code cleanup for DirectXTex's WIC writer function
  • Bug fixes and new -tu/-tf options for texconv

June 22, 2012
  • Moved to using XNA Math 2.05 instead of XNA Math 2.04 for USE_XNAMATH builds
  • Fixed BGR vs. RGB color channel swizzle problem with 24bpp legacy .DDS files in DirectXTex
  • Update to DirectXTex WIC and WICTextureLoader for additional 96bpp float format handling on Windows 8

May 31, 2012
  • Minor fix for DDSTextureLoader's retry fallback that can happen with 10level9 feature levels
  • Switched to use "_DEBUG" instead of "DEBUG" and cleaned up debug warnings
  • added Metro style application project files for DirectXTex

April 20, 2012
  • DirectTex's WIC-based writer opts-in for the Windows 8 BMP encoder option for writing 32 bpp RGBA files with the BITMAPV5HEADER

March 30, 2012
  • WICTextureLoader updated with Windows 8 WIC pixel formats DirectXTex updated with limited non-power-of-2 texture support and TEX_FILTER_SEPARATE_ALPHA option
  • Texconv updated with '-sepalpha' command-line option
  • Added USE_XNAMATH control define to build DirectXTex using either XNAMath or DirectXMath
  • Added VS 2012 project files (which use DirectXMath instead of XNAMath and define DXGI_1_2_FORMATS)

March 15, 2012
  • Fix for resource leak in CreateShaderResourceView() Direct3D 11 helper function in DirectXTex

March 5, 2012
  • Fix for too much temp memory allocated by WICTextureLoader; cleaned up legacy 'min/max' macro usage in DirectXTex

February 21, 2012
  • WICTextureLoader updated to handle systems and device drivers without BGRA or 16bpp format support

February 20, 2012
  • Some code cleanup for DirectXTex and DDSTextureLoader
  • Fixed bug in 10:10:10:2 format fixup in the LoadDDSFromMemory function
  • Fixed bugs in "non-zero alpha" special-case handling in LoadTGAFromFile
  • Fixed bug in _SwizzleScanline when copying alpha channel for BGRA<->RGBA swizzling

February 11, 2012
  • Update of DDSTextureLoader to also build in Metro style apps; added WICTextureLoader
  • Added CMYK WIC pixel formats to the DirectXTex conversion table

January 30, 2012
  • Minor code-cleanup for DirectXTex to enable use of PCH through 'directxtexp.h' header

January 24, 2011
  • Some code-cleanup for DirectXTex
  • Added DXGI 1.2 implementation for DDSTextureLoader and DirectXTex guarded with DXGI_1_2_FORMATS compiliation define

December 16, 2011
  • Fixed x64 compilation warnings in DDSTextureLoader

November 30, 2011
  • Fixed some of the constants used in IsSupportedTexture(),
  • added ability to strip off top levels of mips in DDSTextureLoader,
  • changed DirectXTex to use CoCreateInstance rather than LoadLibrary to obtain the WIC factory,
  • a few minor /analyze related annotations for DirectXTex

October 27, 2011
  • Original release

Released: January 2014 (Jan 24, 2014)

$
0
0
January 24, 2014
  • Added sRGB flags for Compress (TEX_COMPRESS_SRGB*)
  • Added 'compress' flag parameter to GPU versions of Compress [breaking change]
  • Minor fix for potential rounding problem in GPU Compress
  • Code cleanup (removed DXGI_1_2_FORMATS control define; ScopedObject typedef removed)
  • Dropped VS 2010 support without the Windows 8.1 SDK (removed USE_XNAMATH control define)

Updated Release: January 2014 (Jan 24, 2014)

$
0
0
January 24, 2014
  • Added sRGB flags for Compress (TEX_COMPRESS_SRGB*)
  • Added 'compress' flag parameter to GPU versions of Compress [breaking change]
  • Minor fix for potential rounding problem in GPU Compress
  • Code cleanup (removed DXGI_1_2_FORMATS control define; ScopedObject typedef removed)
  • Dropped VS 2010 support without the Windows 8.1 SDK (removed USE_XNAMATH control define)

Updated Release: February 2014 (Feb 24, 2014)

$
0
0
February 24, 2014
  • Direct3D 11 video and Xbox One extended format support
  • New APIs: IsPlanar, IsPalettized, IsDepthStencil, ConvertToSinglePlane
  • Added 'alphaWeight' parameter to GPU Compress [breaking change]
  • texconv '-aw' switch to control the alpha weighting for the BC7 GPU compressor
  • Fixed bug with ordered dithering in non-WIC conversion codepaths
  • Fixed SaveToDDS* functions when using arbitrary row pitch values
Viewing all 1174 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>