ATI_Compress: ATI_Compress

ATI_Compress

Introduction

ATI_Compress is AMD's library for texture compression. It is used by The Compressonator in its ATI 3Dc compression plug-in. It is also available to third party developers who wish to incorporate it within their own applications. It can compress to a wide range of compression formats including ATI2N, DXT & swizzled DXT formats. It also supports conversion of textures between 8bit fixed, 16bit fixed & 32bit float formats.

Installation

The ATI_Compress installer installs the ATI_Compress files to the "C:\Program Files\AMD\ATI_Compress" directory by default and adds the "ATI_COMPRESS_ROOT" environment variable to point to this. You can copy these files to any other location to suit your build system but it is recommended that you update the "ATI_COMPRESS_ROOT" environment variable & continue to use this to point to the location of ATI_Compress.

ATI_Compress includes library files in multiple flavors - for Visual Studio 2003 (aka VC8) & Visual Studio 2003 (aka VC8), x86 & x64 and for multiple C runtime types. If the particular combination you require is not included the VC8\DLL versions should work with any other blend of compiler & C runtime.

Compatibility

ATI_Compress has been tested with Visual Studio 2003 (x86 only), Visual Studio 2005 (x86 & x64) & Visual Studio 2008 (x86 & x64).

Known Issues

Windows Vista doesn't like the ATI_Compress sample applications being installed within the Program Files directory and will complain when you load the project files in Visual Studio. You can solve this issue by allowing Vista to elevate Visual Studio to admin or by copying the sample application files elsewhere.

Contact Details

email: gputools.support@amd.com

website: http://developer.amd.com/GPU/Pages/default.aspx


ATI_Compress: Version History

Version History

v1.7

  • New ATI_TC_Speed compression option with new fast & super-fast compression modes.
  • New ATI_TC_FORMAT_RGB_888 texture format.
  • Support for ATI_TC & ETC compression formats.
  • 64-bit libraries.
  • Help file documentation.
  • New ATI_Compress_Test & ATI_Compress_Benchmark sample applications.

v1.6

  • Support for ATI_TC & ETC compression formats.

v1.5

  • Support for DirectX10 BCn compression formats.
  • Support for single channel (i.e. R) & double channel (i.e. RG) uncompressed texture formats.

v1.4

  • Support for ATI_TC_FORMAT_ARGB_32 texture format.
  • New bDisableMultiThreading compression option for forcing compression to be single-threaded.

v1.3

  • Support for ATI_TC_FORMAT_ARGB_16F texture format.
  • Enforced __cdecl calling standard.

v1.2

  • New bUseChannelWeighting compression option to control whether channel weightings are taken into account.
  • Support for compressing to DXT1 with alpha using the new bDXT1UseAlpha & nAlphaThreshold compression options.
  • New ATI_TC_FORMAT_ARGB_2101010 texture format.

v1.1

  • Support for ATI1N compression format.
  • New ATI_TC_FORMAT_ARGB_16 texture format.

v1.0

  • Initial release.
  • Everything is new.


ATI_Compress: Using ATI_Compress

Using ATI_Compress

ATI_Compress is simple to use with a single function ATI_TC_ConvertTexture supplying the functionality of the library.

int CompressToDXT1(DWORD dwWidth, DWORD dwHeight, BYTE* pSrc, BYTE** pDest)
{
Initialise the source texture.
   ATI_TC_Texture srcTexture;
   srcTexture.dwSize = sizeof(srcTexture);
   srcTexture.dwWidth = dwWidth;
   srcTexture.dwHeight = dwHeight;
   srcTexture.dwPitch = 0;
   srcTexture.format = ATI_TC_FORMAT_ARGB_8888;
Call ATI_TC_CalculateBufferSize to calculate the size of the source texture buffer.
   srcTexture.dwDataSize = ATI_TC_CalculateBufferSize(&srcTexture);
   srcTexture.pData = pSrc;
Initialise the destination texture.
   ATI_TC_Texture destTexture;
   destTexture.dwSize = sizeof(destTexture);
   destTexture.dwWidth = dwWidth;
   destTexture.dwHeight = dwHeight;
   destTexture.dwPitch = 0;
   destTexture.format = ATI_TC_FORMAT_DXT1;
Call ATI_TC_CalculateBufferSize to calculate the size of the destination texture buffer.
   destTexture.dwDataSize = ATI_TC_CalculateBufferSize(&destTexture);
   destTexture.pData = (ATI_TC_BYTE*) malloc(destTexture.dwDataSize);
Initialise the compression options.
   ATI_TC_CompressOptions options;
   memset(&options, 0, sizeof(options));
   options.dwSize = sizeof(options);
   options.nCompressionSpeed = ATI_TC_Speed_SuperFast;
Call ATI_TC_ConvertTexture
   ATI_TC_ConvertTexture(&srcTexture, &destTexture, &options, NULL, NULL, NULL);
And copy the results.
   *pDest = destTexture.pData;

   return 0;
}


ATI_Compress: Using a callback function

Using a callback function

When you supply a ATI_TC_Feedback_Proc pointer to ATI_TC_ConvertTexture you receive a callback that updates you on compression progress & allows you to cancel the compression.

This callback is not guaranteed to be called & is currently only called when converting to a compressed format.

Define a ATI_TC_Feedback_Proc function:

volatile bool m_bAbortCompression;

bool CompressionCallback(float fProgress, DWORD_PTR pUser1, DWORD_PTR pUser2)
{
   printf("Compression progress = ")
   return m_bAbortCompression;
}
Call ATI_TC_ConvertTexture with the ATI_TC_Feedback_Proc function.
int CompressWithFeedback(ATI_TC_Texture& srcTexture, ATI_TC_Texture &destTexture, DWORD_PTR pUser1, DWORD_PTR pUser2)
{
   ATI_TC_ConvertTexture(&srcTexture, &destTexture, NULL, CompressionCallback, pUser1, pUser2);

   return 0;
}


ATI_Compress: Library Software License Agreement

Library Software License Agreement

IMPORTANT -- READ CAREFULLY: Do not load this Software until you have carefully read and agreed to the following terms and conditions.

This is a legal agreement ("Agreement") between you (either an individual or an entity) ("You" or "Licensee") and Advanced Micro Devices, Inc. ("AMD"). If Licensee does not agree to the terms of this Agreement, do not install or use this Software or any portion thereof. By loading or using this software that may include associated media, printed Software, and online or electronic documentation or any portion thereof that is made available to install from this CD-ROM ("Software"), Licensee agrees to all of the terms of this Agreement.

1. License. The software accompanying this License (hereinafter "Software"), regardless of the media on which it is distributed, is licensed to you by Advanced Micro Devices, Inc. You own the medium on which the Software is recorded, but Advanced Micro Devices, Inc. and, if applicable, its Licensors (referred to collectively as "AMD") retain title to the Software and related documentation. You may: a) use the Software; b) make copies of the Software in machine-readable form. You must reproduce on any such copy AMD's copyright notice and any other proprietary legends that were on the original copy of the Software; c) transfer all your license rights in the Software to a third party provided you must also transfer a copy of this License, the backup copy of the Software and the related documentation and provided the other party reads and agrees to accept the terms and conditions of this License. Upon such transfer your license is then terminated; and d) make and distribute, commercially or noncommercially, copies of the Software as a component in a distinct application, provided that Licensee agrees to include all copyright legends and other legal notices that may appear in the Software, as well as this Software License Agreement in its entirety, in each copy of the Software that is made or distributed.

2. Restrictions. The Software contains copyrighted and patented material, trade secrets and other proprietary material. In order to protect them, and except as permitted by applicable legislation, you may not: a) decompile, reverse engineer, disassemble or otherwise reduce the Software to a human-perceivable form; b) modify, network, rent, lend, loan, distribute or create derivative works based upon the Software in whole or in part except as expressly allowed under section 1 above; c) repackage, combine, or include the Software with any other software, tool or library that offers substantially similar functionality; or d) electronically transmit the Software from one computer to another or over a network or otherwise transfer the Software except as permitted by this License.

3 OWNERSHIP AND COPYRIGHT OF SOFTWARE: The Software is owned by AMD and is protected by United States and foreign intellectual property laws (e.g. patent and copyright laws) and international treaty provisions. Licensee will not remove the copyright notice from the Software. Licensee agrees to prevent any unauthorized copying of the Software. All title and copyrights in and to the Software, all copies thereof (in whole or in part, and in any form), and all rights therein shall remain vested in AMD. Except as expressly provided herein, AMD does not grant any express or implied right to Licensee under AMD patents, copyrights, trademarks, or trade secret information. All rights in and to the Software not expressly granted to Licensee in this Agreement are reserved to AMD.

4. SUPPORT: Under this Agreement, AMD is under no obligation to assist in the use of this Software, to provide support to licensees of the Software, or to provide maintenance, correction, modification, enhancement, or upgrades to the Software. AMD may provide such support, maintenance, correction, modification, enhancement or upgrades in a media determined by AMD and AMD shall have no obligation to notify Licensee thereof. Additionally, such support, maintenance, correction, modification, enhancement, or upgrades shall be considered part of the Software, and shall be subject to this Agreement.

5. Termination. This License is effective until terminated. You may terminate this License at any time by destroying the Software, related documentation and all copies thereof. This License will terminate immediately without notice from AMD if you fail to comply with any provision of this License. Upon termination you must destroy the Software, related documentation and all copies thereof.

6. Government End Users. If you are acquiring the Software on behalf of any unit or agency of the United States Government, the following provisions apply. The Government agrees the Software and documentation were developed at private expense and are provided with "RESTRICTED RIGHTS". Use, duplication, or disclosure by the Government is subject to restrictions as set forth in DFARS 227.7202-1(a) and 227.7202-3(a) (1995), DFARS 252.227-7013(c)(1)(ii) (Oct 1988), FAR 12.212(a)(1995), FAR 52.227-19, (June 1987) or FAR 52.227-14(ALT III) (June 1987),as amended from time to time. In the event that this License, or any part thereof, is deemed inconsistent with the minimum rights identified in the Restricted Rights provisions, the minimum rights shall prevail.

8. EXPORT ASSURANCES: Licensee agrees and certifies that neither the Software, nor any direct product thereof will be exported, directly or indirectly, into any country prohibited by the United States Export Administration Act and the regulations thereunder without the required authorization from the United States government nor will it be used for any purpose prohibited by the same.

9. No Other License. No rights or licenses are granted by AMD under this License, expressly or by implication, with respect to any proprietary information or patent, copyright, trade secret or other intellectual property right owned or controlled by AMD, except as expressly provided in this License.

10. Additional Licenses. DISTRIBUTION OR USE OF THE SOFTWARE WITH AN OPERATING SYSTEM MAY REQUIRE ADDITIONAL LICENSES FROM THE OPERATING SYSTEM VENDOR.

11. Disclaimer of Warranty on Software. You expressly acknowledge and agree that use of the Software is at your sole risk. The Software and related documentation are provided "AS IS" and without warranty of any kind and AMD EXPRESSLY DISCLAIMS ALL WARRANTIES, EXPRESS AND IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. AMD DOES NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE SOFTWARE WILL MEET YOUR REQUIREMENTS, OR THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT DEFECTS IN THE SOFTWARE WILL BE CORRECTED. THE ENTIRE RISK AS TO THE RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. FURTHERMORE, AMD DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OR THE RESULTS OF THE USE OF THE SOFTWARE OR RELATED DOCUMENTATION IN TERMS OF THEIR CORRECTNESS, ACCURACY, RELIABILITY, CURRENTNESS, OR OTHERWISE. NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY AMD OR AMD'S AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY OR IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU (AND NOT AMD OR AMD'S AUTHORIZED REPRESENTATIVE) ASSUME THE ENTIRE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. THE SOFTWARE IS NOT INTENDED FOR USE IN MEDICAL, LIFE SAVING OR LIFE SUSTAINING APPLICATIONS. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO THE ABOVE EXCLUSION MAY NOT APPLY TO YOU.

12. Limitation of Liability. UNDER NO CIRCUMSTANCES INCLUDING NEGLIGENCE, SHALL AMD, OR ITS DIRECTORS, OFFICERS, EMPLOYEES OR AGENTS, BE LIABLE TO YOU FOR ANY INCIDENTAL, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, AND THE LIKE) ARISING OUT OF THE USE, MISUSE OR INABILITY TO USE THE SOFTWARE OR RELATED DOCUMENTATION, BREACH OR DEFAULT, INCLUDING THOSE ARISING FROM INFRINGEMENT OR ALLEGED INFRINGEMENT OF ANY PATENT, TRADEMARK, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT, BY AMD, EVEN IF AMD OR AMD'S AUTHORIZED REPRESENTATIVE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME JURISDICTIONS DO NOT ALLOW THE LIMITATION OR EXCLUSION OF LIABILITY FOR INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THE ABOVE LIMITATION OR EXCLUSION MAY NOT APPLY TO YOU. AMD will not be liable for 1) loss of, or damage to, your records or data or 2) any damages claimed by you based on any third party claim. In no event shall AMD's total liability to you for all damages, losses, and causes of action (whether in contract, tort (including negligence) or otherwise) exceed the amount paid by you for the Software.

13. Controlling Law and Severability. This License shall be governed by and construed under the laws of the state of California without reference to its conflict of law principles. In the event of any conflicts between foreign law, rules, and regulations, and United States law, rules, and regulations, United States rules and regulations shall prevail and govern. The United Nations Convention on Contracts for the International Sale of Goods shall not apply to this License. If for any reason a court of competent jurisdiction finds any provision of this License or portion thereof, to be unenforceable, that provision of the License shall be enforced to the maximum extent permissible so as to effect the intent of the parties, and the remainder of this License shall continue in full force and effect.

14. Complete Agreement. This License constitutes the entire agreement between the parties with respect to the use of the Software and the related documentation, and supersedes all prior or contemporaneous understandings or agreements, written or oral, regarding such subject matter. No amendment to or modification of this License will be binding unless in writing and signed by a duly authorized representative of AMD.


ATI_Compress: Data Structures

Data Structures

Here are the data structures with brief descriptions:
ATI_TC_CompressOptions | Options for the compression
ATI_TC_Texture | The structure describing a texture


ATI_Compress: ATI_TC_CompressOptions Struct Reference

ATI_TC_CompressOptions Struct Reference

Options for the compression. More...

#include <ATI_Compress.h>

Data Fields

ATI_TC_DWORD dwSize
The size of this structure.
BOOL | bUseChannelWeighting
Use channel weightings. With swizzled formats the weighting applies to the data within the specified channel not the channel itself.
double | fWeightingRed
The weighting of the Red or X Channel.
double | fWeightingGreen
The weighting of the Green or Y Channel.
double | fWeightingBlue
The weighting of the Blue or Z Channel.
BOOL | bUseAdaptiveWeighting
Adapt weighting on a per-block basis.
BOOL | bDXT1UseAlpha
Encode single-bit alpha data. Only valid when compressing to DXT1 & BC1.
ATI_TC_BYTE nAlphaThreshold
The alpha threshold to use when compressing to DXT1 & BC1 with bDXT1UseAlpha. Texels with an alpha value less than the threshold are treated as transparent.
BOOL | bDisableMultiThreading
Disable multi-threading of the compression. This will slow the compression but can be useful if you're managing threads in your application.
ATI_TC_Speed nCompressionSpeed
The trade-off between compression speed & quality.

Detailed Description

Options for the compression.

Passing this structure is optional

Examples:

ATI_Compress_BenchMark.cpp, and ATI_Compress_Test.cpp.

The documentation for this struct was generated from the following file:
  • ATI_Compress.h


ATI_Compress: ATI_TC_Texture Struct Reference

ATI_TC_Texture Struct Reference

The structure describing a texture. More...

#include <ATI_Compress.h>

Data Fields

ATI_TC_DWORD dwSize
Size of this structure.
ATI_TC_DWORD dwWidth
Width of the texture.
ATI_TC_DWORD dwHeight
Height of the texture.
ATI_TC_DWORD dwPitch
Distance to start of next line - necessary only for uncompressed textures.
ATI_TC_FORMAT format
Format of the texture.
ATI_TC_DWORD dwDataSize
Size of the allocated texture data.
ATI_TC_BYTE * pData
Pointer to the texture data.

Detailed Description

The structure describing a texture.
Examples:

ATI_Compress_BenchMark.cpp, and ATI_Compress_Test.cpp.

The documentation for this struct was generated from the following file:
  • ATI_Compress.h


ATI_Compress: Data Fields

  • All
  • Variables
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

  • bDisableMultiThreading : ATI_TC_CompressOptions
  • bDXT1UseAlpha : ATI_TC_CompressOptions
  • bUseAdaptiveWeighting : ATI_TC_CompressOptions
  • bUseChannelWeighting : ATI_TC_CompressOptions
  • dwDataSize : ATI_TC_Texture
  • dwHeight : ATI_TC_Texture
  • dwPitch : ATI_TC_Texture
  • dwSize : ATI_TC_CompressOptions , ATI_TC_Texture
  • dwWidth : ATI_TC_Texture
  • format : ATI_TC_Texture
  • fWeightingBlue : ATI_TC_CompressOptions
  • fWeightingGreen : ATI_TC_CompressOptions
  • fWeightingRed : ATI_TC_CompressOptions
  • nAlphaThreshold : ATI_TC_CompressOptions
  • nCompressionSpeed : ATI_TC_CompressOptions
  • pData : ATI_TC_Texture


ATI_Compress: File Index

File List

Here is a list of all documented files with brief descriptions:
ATI_Compress.h ATI_Compress.h declares the interface to the ATI_Compress library


ATI_Compress: ATI_Compress.h File Reference

ATI_Compress.h File Reference

ATI_Compress.h declares the interface to the ATI_Compress library. More...

Data Structures

struct | ATI_TC_CompressOptions
Options for the compression. More...
struct | ATI_TC_Texture
The structure describing a texture. More...

Defines

#define | ATI_COMPRESS_VERSION_MAJOR 1
The major version number of this release.
#define | ATI_COMPRESS_VERSION_MINOR 7
The minor version number of this release.

Typedefs

typedef unsigned long | ATI_TC_DWORD
A 32-bit integer format.
typedef unsigned short | ATI_TC_WORD
A 16-bit integer format.
typedef unsigned char | ATI_TC_BYTE
An 8-bit integer format.
typedef bool(ATI_TC_API * | ATI_TC_Feedback_Proc )(float fProgress, DWORD_PTR pUser1, DWORD_PTR pUser2)
ATI_TC_Feedback_Proc Feedback function for conversion.

Enumerations

enum ATI_TC_FORMAT {
ATI_TC_FORMAT_Unknown, ATI_TC_FORMAT_ARGB_8888, ATI_TC_FORMAT_RGB_888, ATI_TC_FORMAT_RG_8,
ATI_TC_FORMAT_R_8, ATI_TC_FORMAT_ARGB_2101010, ATI_TC_FORMAT_ARGB_16, ATI_TC_FORMAT_RG_16,
ATI_TC_FORMAT_R_16, ATI_TC_FORMAT_ARGB_16F, ATI_TC_FORMAT_RG_16F, ATI_TC_FORMAT_R_16F,
ATI_TC_FORMAT_ARGB_32F, ATI_TC_FORMAT_RG_32F, ATI_TC_FORMAT_R_32F, ATI_TC_FORMAT_DXT1,
ATI_TC_FORMAT_DXT3, ATI_TC_FORMAT_DXT5, ATI_TC_FORMAT_DXT5_xGBR, ATI_TC_FORMAT_DXT5_RxBG,
ATI_TC_FORMAT_DXT5_RBxG, ATI_TC_FORMAT_DXT5_xRBG, ATI_TC_FORMAT_DXT5_RGxB, ATI_TC_FORMAT_DXT5_xGxR,
ATI_TC_FORMAT_ATI1N, ATI_TC_FORMAT_ATI2N, ATI_TC_FORMAT_ATI2N_XY, ATI_TC_FORMAT_ATI2N_DXT5,
ATI_TC_FORMAT_BC1, ATI_TC_FORMAT_BC2, ATI_TC_FORMAT_BC3, ATI_TC_FORMAT_BC4,
ATI_TC_FORMAT_BC5, ATI_TC_FORMAT_ATC_RGB, ATI_TC_FORMAT_ATC_RGBA_Explicit, ATI_TC_FORMAT_ATC_RGBA_Interpolated,
ATI_TC_FORMAT_ETC_RGB
}
Texture format. More...
enum | ATI_TC_Speed { ATI_TC_Speed_Normal, ATI_TC_Speed_Fast, ATI_TC_Speed_SuperFast }
An enum selecting the speed vs. quality trade-off. More...
enum ATI_TC_ERROR {
ATI_TC_OK = 0, ATI_TC_ABORTED, ATI_TC_ERR_INVALID_SOURCE_TEXTURE, ATI_TC_ERR_INVALID_DEST_TEXTURE,
ATI_TC_ERR_UNSUPPORTED_SOURCE_FORMAT, ATI_TC_ERR_UNSUPPORTED_DEST_FORMAT, ATI_TC_ERR_SIZE_MISMATCH, ATI_TC_ERR_UNABLE_TO_INIT_CODEC,
ATI_TC_ERR_GENERIC
}
ATI_Compress error codes. More...

Functions

ATI_TC_DWORD ATI_TC_API | ATI_TC_CalculateBufferSize (const ATI_TC_Texture *pTexture)
Calculates the required buffer size for the specified texture.
ATI_TC_ERROR ATI_TC_API | ATI_TC_ConvertTexture (const ATI_TC_Texture *pSourceTexture, ATI_TC_Texture *pDestTexture, const ATI_TC_CompressOptions *pOptions, ATI_TC_Feedback_Proc pFeedbackProc, DWORD_PTR pUser1, DWORD_PTR pUser2)
Converts the source texture to the destination texture This can be compression, decompression or converting between two uncompressed formats.

Detailed Description

ATI_Compress.h declares the interface to the ATI_Compress library.

Typedef Documentation

typedef bool(ATI_TC_API * ATI_TC_Feedback_Proc)(float fProgress, DWORD_PTR pUser1, DWORD_PTR pUser2)

ATI_TC_Feedback_Proc Feedback function for conversion.

Parameters:
[in] | fProgress | The percentage progress of the texture compression.
[in] | pUser1 | User data as passed to ATI_TC_ConvertTexture.
[in] | pUser2 | User data as passed to ATI_TC_ConvertTexture.
Returns:
non-NULL(true) value to abort conversion

Enumeration Type Documentation

enum ATI_TC_ERROR

ATI_Compress error codes.

Enumerator:
ATI_TC_OK | Ok.
ATI_TC_ABORTED | The conversion was aborted.
ATI_TC_ERR_INVALID_SOURCE_TEXTURE | The source texture is invalid.
ATI_TC_ERR_INVALID_DEST_TEXTURE | The destination texture is invalid.
ATI_TC_ERR_UNSUPPORTED_SOURCE_FORMAT | The source format is not a supported format.
ATI_TC_ERR_UNSUPPORTED_DEST_FORMAT | The destination format is not a supported format.
ATI_TC_ERR_SIZE_MISMATCH | The source and destination texture sizes do not match.
ATI_TC_ERR_UNABLE_TO_INIT_CODEC | ATI_Compress was unable to initialize the codec needed for conversion.
ATI_TC_ERR_GENERIC | An unknown error occurred.

enum ATI_TC_FORMAT

Texture format.

Enumerator:
ATI_TC_FORMAT_Unknown | An undefined texture format.
ATI_TC_FORMAT_ARGB_8888 | An ARGB format with 8-bit fixed channels.
ATI_TC_FORMAT_RGB_888 | A RGB format with 8-bit fixed channels.
ATI_TC_FORMAT_RG_8 | A two component format with 8-bit fixed channels.
ATI_TC_FORMAT_R_8 | A single component format with 8-bit fixed channels.
ATI_TC_FORMAT_ARGB_2101010 | An ARGB format with 10-bit fixed channels for color & a 2-bit fixed channel for alpha.
ATI_TC_FORMAT_ARGB_16 | A ARGB format with 16-bit fixed channels.
ATI_TC_FORMAT_RG_16 | A two component format with 16-bit fixed channels.
ATI_TC_FORMAT_R_16 | A single component format with 16-bit fixed channels.
ATI_TC_FORMAT_ARGB_16F | An ARGB format with 16-bit floating-point channels.
ATI_TC_FORMAT_RG_16F | A two component format with 16-bit floating-point channels.
ATI_TC_FORMAT_R_16F | A single component with 16-bit floating-point channels.
ATI_TC_FORMAT_ARGB_32F | An ARGB format with 32-bit floating-point channels.
ATI_TC_FORMAT_RG_32F | A two component format with 32-bit floating-point channels.
ATI_TC_FORMAT_R_32F | A single component with 32-bit floating-point channels.
ATI_TC_FORMAT_DXT1 | An opaque (or 1-bit alpha) DXTC compressed texture format. Four bits per pixel.
ATI_TC_FORMAT_DXT3 | A DXTC compressed texture format with explicit alpha. Eight bits per pixel.
ATI_TC_FORMAT_DXT5 | A DXTC compressed texture format with interpolated alpha. Eight bits per pixel.
ATI_TC_FORMAT_DXT5_xGBR | A DXT5 with the red component swizzled into the alpha channel. Eight bits per pixel.
ATI_TC_FORMAT_DXT5_RxBG | A swizzled DXT5 format with the green component swizzled into the alpha channel. Eight bits per pixel.
ATI_TC_FORMAT_DXT5_RBxG | A swizzled DXT5 format with the green component swizzled into the alpha channel & the blue component swizzled into the green channel. Eight bits per pixel.
ATI_TC_FORMAT_DXT5_xRBG | A swizzled DXT5 format with the green component swizzled into the alpha channel & the red component swizzled into the green channel. Eight bits per pixel.
ATI_TC_FORMAT_DXT5_RGxB | A swizzled DXT5 format with the blue component swizzled into the alpha channel. Eight bits per pixel.
ATI_TC_FORMAT_DXT5_xGxR | A two-component swizzled DXT5 format with the red component swizzled into the alpha channel & the green component in the green channel. Eight bits per pixel.
ATI_TC_FORMAT_ATI1N | A single component compression format using the same technique as DXT5 alpha. Four bits per pixel.
ATI_TC_FORMAT_ATI2N | A two component compression format using the same technique as DXT5 alpha. Designed for compression object space normal maps. Eight bits per pixel.
ATI_TC_FORMAT_ATI2N_XY | A two component compression format using the same technique as DXT5 alpha. The same as ATI2N but with the channels swizzled. Eight bits per pixel.
ATI_TC_FORMAT_ATI2N_DXT5 | An ATI2N like format using DXT5. Intended for use on GPUs that do not natively support ATI2N. Eight bits per pixel.
ATI_TC_FORMAT_BC1 | A four component opaque (or 1-bit alpha) compressed texture format for Microsoft DirectX10. Identical to DXT1. Four bits per pixel.
ATI_TC_FORMAT_BC2 | A four component compressed texture format with explicit alpha for Microsoft DirectX10. Identical to DXT3. Eight bits per pixel.
ATI_TC_FORMAT_BC3 | A four component compressed texture format with interpolated alpha for Microsoft DirectX10. Identical to DXT5. Eight bits per pixel.
ATI_TC_FORMAT_BC4 | A single component compressed texture format for Microsoft DirectX10. Identical to ATI1N. Four bits per pixel.
ATI_TC_FORMAT_BC5 | A two component compressed texture format for Microsoft DirectX10. Identical to ATI2N. Eight bits per pixel.
ATI_TC_FORMAT_ATC_RGB | ATI_TC - a compressed RGB format for cellphones & hand-held devices.
ATI_TC_FORMAT_ATC_RGBA_Explicit | ATI_TC - a compressed ARGB format with explicit alpha for cellphones & hand-held devices.
ATI_TC_FORMAT_ATC_RGBA_Interpolated | ATI_TC - a compressed ARGB format with interpolated alpha for cellphones & hand-held devices.
ATI_TC_FORMAT_ETC_RGB | ETC (aka Ericsson Texture Compression) - a compressed RGB format for cellphones.

enum ATI_TC_Speed

An enum selecting the speed vs. quality trade-off.

Enumerator:
ATI_TC_Speed_Normal | Highest quality mode.
ATI_TC_Speed_Fast | Slightly lower quality but much faster compression mode - DXTn & ATInN only.
ATI_TC_Speed_SuperFast | Slightly lower quality but much, much faster compression mode - DXTn & ATInN only.

Function Documentation

ATI_TC_DWORD ATI_TC_API ATI_TC_CalculateBufferSize ( const ATI_TC_Texture * pTexture )

Calculates the required buffer size for the specified texture.

Parameters:
[in] pTexture A pointer to the texture.
Returns:
The size of the buffer required to hold the texture data.
Examples:
ATI_Compress_BenchMark.cpp, and ATI_Compress_Test.cpp.

ATI_TC_ERROR ATI_TC_API ATI_TC_ConvertTexture | ( | const ATI_TC_Texture * | pSourceTexture,
 |  | ATI_TC_Texture * | pDestTexture,
 |  | const ATI_TC_CompressOptions * | pOptions,
 |  | ATI_TC_Feedback_Proc | pFeedbackProc,
 |  | DWORD_PTR | pUser1,
 |  | DWORD_PTR | pUser2
 | ) |  |

Converts the source texture to the destination texture This can be compression, decompression or converting between two uncompressed formats.

Parameters:
[in] | pSourceTexture | A pointer to the source texture.
[in] | pDestTexture | A pointer to the destination texture.
[in] | pOptions | A pointer to the compression options - can be NULL.
[in] | pFeedbackProc | A pointer to the feedback function - can be NULL.
[in] | pUser1 | User data to pass to the feedback function.
[in] | pUser2 | User data to pass to the feedback function.
Returns:
ATI_TC_OK if successful, otherwise the error code.
Examples:
ATI_Compress_BenchMark.cpp, and ATI_Compress_Test.cpp.


ATI_Compress: Examples

Examples

Here is a list of all examples:
  • ATI_Compress_BenchMark.cpp
  • ATI_Compress_Test.cpp


ATI_Compress: ATI_Compress_BenchMark.cpp

ATI_Compress_BenchMark.cpp

This is an example of how to use ATI_Compress. More details about this example.

// ATI_Compress_BenchMark.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <tchar.h>
#include <ddraw.h>
#include <d3d9types.h>
#include <assert.h>
#include "ATI_Compress.h"
#include "../ATI_Compress_Test/ATI_Compress_Test_Helpers.h"

#if defined(WIN32) || defined(_WIN64)
#define THREADED_COMPRESS 1
#define MAX_THREADS 64
static DWORD GetProcessorCount()
{
   SYSTEM_INFO systemInfo;
   GetSystemInfo(&systemInfo);
   return systemInfo.dwNumberOfProcessors;
}
#else // !WINDOWS
static DWORD GetProcessorCount()
{
   return 1;
}
#endif // !WINDOWS

int _tmain(int argc, _TCHAR* argv[])
{
   if(argc < 5)
   {
      _tprintf(_T("ATI_Compress_BenchMark File Format Iteration Speed [SingleThreaded]\n"));
      return 0;
   }

   TCHAR* pszSourceFile = argv[1];
   ATI_TC_FORMAT destFormat = ParseFormat(argv[2]);
   int nIterations = max(_tstoi(argv[3]), 1);
   int nCompressionSpeed = _tstoi(argv[4]);
   BOOL bSingleThreaded = ((argc >= 6) && (_tstoi(argv[5]) > 0));

   // Load the source texture
   ATI_TC_Texture srcTexture;
   if(!LoadDDSFile(pszSourceFile, srcTexture))
      return 0;

   // Init dest texture
   ATI_TC_Texture destTexture;
   destTexture.dwSize = sizeof(destTexture);
   destTexture.dwWidth = srcTexture.dwWidth;
   destTexture.dwHeight = srcTexture.dwHeight;
   destTexture.dwPitch = 0;
   destTexture.format = destFormat;
   destTexture.dwDataSize = ATI_TC_CalculateBufferSize(&destTexture);
   destTexture.pData = (ATI_TC_BYTE*) malloc(destTexture.dwDataSize);

   ATI_TC_CompressOptions options;
   memset(&options, 0, sizeof(options));
   options.dwSize = sizeof(options);
   options.nCompressionSpeed = (ATI_TC_Speed) nCompressionSpeed;
   options.bDisableMultiThreading = bSingleThreaded;

   LARGE_INTEGER frequency, loopStartTime, loopEndTime;
   QueryPerformanceFrequency(&frequency);
   QueryPerformanceCounter(&loopStartTime);

   for(int i = 0; i < nIterations; i++)
      ATI_TC_ConvertTexture(&srcTexture, &destTexture, &options, NULL, NULL, NULL);

   QueryPerformanceCounter(&loopEndTime);
   LONGLONG Duration = loopEndTime.QuadPart - loopStartTime.QuadPart;
   double fDuration = (((double) Duration) / ((double) frequency.QuadPart));
   double fNumPerSec = ((double) nIterations) / fDuration;
   double fThroughPut = (srcTexture.dwWidth * srcTexture.dwHeight * sizeof(DWORD) * fNumPerSec) / (1024 * 1024);
   double fMPixelsSec = (srcTexture.dwWidth * srcTexture.dwHeight * fNumPerSec) / (1024 * 1024);
   DWORD dwCoreCount = bSingleThreaded ? 1 : GetProcessorCount();

   TCHAR szResults[256];
   _stprintf(szResults, _T("Compressed to %s, %i iterations in %f seconds, %f per second.\nData Throughput = %f MB\\sec (%f MB\\core\\sec)\nPixel Throughput = %f MPixel\\sec (%f MPixel\\core\\sec)\n"),
      GetFormatDesc(destFormat), nIterations, fDuration, fNumPerSec, fThroughPut, fThroughPut/dwCoreCount, fMPixelsSec, fMPixelsSec/dwCoreCount);
   _tprintf(szResults);
   OutputDebugString(szResults);

   free(srcTexture.pData);
   free(destTexture.pData);

   return 0;
}


ATI_Compress: ATI_Compress_Test.cpp

ATI_Compress_Test.cpp

This is an example of how to use ATI_Compress. More details about this example.

// ATI_Compress_Test.cpp : Defines the entry point for the console application.
//

#include <stdio.h>
#include <tchar.h>
#include <ddraw.h>
#include <d3d9types.h>
#include <assert.h>
#include "ATI_Compress.h"
#include "ATI_Compress_Test_Helpers.h"

int _tmain(int argc, _TCHAR* argv[])
{
   if(argc < 5)
   {
      _tprintf(_T("ATI_Compress_Test SourceFile DestFile Format Speed\n"));
      return 0;
   }

   TCHAR* pszSourceFile = argv[1];
   TCHAR* pszDestFile = argv[2];
   ATI_TC_FORMAT destFormat = ParseFormat(argv[3]);
   int nCompressionSpeed = _tstoi(argv[4]);

   if(destFormat == ATI_TC_FORMAT_Unknown)
   {
      _tprintf(_T("Unsupported dest format\n"));
      return 0;
   }

   // Load the source texture
   ATI_TC_Texture srcTexture;
   if(!LoadDDSFile(pszSourceFile, srcTexture))
      return 0;

   // Init dest texture
   ATI_TC_Texture destTexture;
   destTexture.dwSize = sizeof(destTexture);
   destTexture.dwWidth = srcTexture.dwWidth;
   destTexture.dwHeight = srcTexture.dwHeight;
   destTexture.dwPitch = 0;
   destTexture.format = destFormat;
   destTexture.dwDataSize = ATI_TC_CalculateBufferSize(&destTexture);
   destTexture.pData = (ATI_TC_BYTE*) malloc(destTexture.dwDataSize);

   ATI_TC_CompressOptions options;
   memset(&options, 0, sizeof(options));
   options.dwSize = sizeof(options);
   options.nCompressionSpeed = (ATI_TC_Speed) nCompressionSpeed;

   ATI_TC_ConvertTexture(&srcTexture, &destTexture, &options, NULL, NULL, NULL);

   SaveDDSFile(pszDestFile, destTexture);

   free(srcTexture.pData);
   free(destTexture.pData);

   return 0;
}


ATI_Compress: Data Fields

  • All
  • Functions
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a
Here is a list of all documented functions, variables, defines, enums, and typedefs with links to the documentation:

- a -

  • ATI_COMPRESS_VERSION_MAJOR : ATI_Compress.h
  • ATI_COMPRESS_VERSION_MINOR : ATI_Compress.h
  • ATI_TC_ABORTED : ATI_Compress.h
  • ATI_TC_BYTE : ATI_Compress.h
  • ATI_TC_CalculateBufferSize() : ATI_Compress.h
  • ATI_TC_ConvertTexture() : ATI_Compress.h
  • ATI_TC_DWORD : ATI_Compress.h
  • ATI_TC_ERR_GENERIC : ATI_Compress.h
  • ATI_TC_ERR_INVALID_DEST_TEXTURE : ATI_Compress.h
  • ATI_TC_ERR_INVALID_SOURCE_TEXTURE : ATI_Compress.h
  • ATI_TC_ERR_SIZE_MISMATCH : ATI_Compress.h
  • ATI_TC_ERR_UNABLE_TO_INIT_CODEC : ATI_Compress.h
  • ATI_TC_ERR_UNSUPPORTED_DEST_FORMAT : ATI_Compress.h
  • ATI_TC_ERR_UNSUPPORTED_SOURCE_FORMAT : ATI_Compress.h
  • ATI_TC_ERROR : ATI_Compress.h
  • ATI_TC_Feedback_Proc : ATI_Compress.h
  • ATI_TC_FORMAT : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_16 : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_16F : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_2101010 : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_32F : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_8888 : ATI_Compress.h
  • ATI_TC_FORMAT_ATC_RGB : ATI_Compress.h
  • ATI_TC_FORMAT_ATC_RGBA_Explicit : ATI_Compress.h
  • ATI_TC_FORMAT_ATC_RGBA_Interpolated : ATI_Compress.h
  • ATI_TC_FORMAT_ATI1N : ATI_Compress.h
  • ATI_TC_FORMAT_ATI2N : ATI_Compress.h
  • ATI_TC_FORMAT_ATI2N_DXT5 : ATI_Compress.h
  • ATI_TC_FORMAT_ATI2N_XY : ATI_Compress.h
  • ATI_TC_FORMAT_BC1 : ATI_Compress.h
  • ATI_TC_FORMAT_BC2 : ATI_Compress.h
  • ATI_TC_FORMAT_BC3 : ATI_Compress.h
  • ATI_TC_FORMAT_BC4 : ATI_Compress.h
  • ATI_TC_FORMAT_BC5 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT1 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT3 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_RBxG : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_RGxB : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_RxBG : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_xGBR : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_xGxR : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_xRBG : ATI_Compress.h
  • ATI_TC_FORMAT_ETC_RGB : ATI_Compress.h
  • ATI_TC_FORMAT_R_16 : ATI_Compress.h
  • ATI_TC_FORMAT_R_16F : ATI_Compress.h
  • ATI_TC_FORMAT_R_32F : ATI_Compress.h
  • ATI_TC_FORMAT_R_8 : ATI_Compress.h
  • ATI_TC_FORMAT_RG_16 : ATI_Compress.h
  • ATI_TC_FORMAT_RG_16F : ATI_Compress.h
  • ATI_TC_FORMAT_RG_32F : ATI_Compress.h
  • ATI_TC_FORMAT_RG_8 : ATI_Compress.h
  • ATI_TC_FORMAT_RGB_888 : ATI_Compress.h
  • ATI_TC_FORMAT_Unknown : ATI_Compress.h
  • ATI_TC_OK : ATI_Compress.h
  • ATI_TC_Speed : ATI_Compress.h
  • ATI_TC_Speed_Fast : ATI_Compress.h
  • ATI_TC_Speed_Normal : ATI_Compress.h
  • ATI_TC_Speed_SuperFast : ATI_Compress.h
  • ATI_TC_WORD : ATI_Compress.h


ATI_Compress: Alphabetical List

Data Structure Index

A

A
ATI_TC_CompressOptions ATI_TC_Texture

A


ATI_Compress: Data Fields - Variables

  • All
  • Variables

  • bDisableMultiThreading : ATI_TC_CompressOptions
  • bDXT1UseAlpha : ATI_TC_CompressOptions
  • bUseAdaptiveWeighting : ATI_TC_CompressOptions
  • bUseChannelWeighting : ATI_TC_CompressOptions
  • dwDataSize : ATI_TC_Texture
  • dwHeight : ATI_TC_Texture
  • dwPitch : ATI_TC_Texture
  • dwSize : ATI_TC_CompressOptions , ATI_TC_Texture
  • dwWidth : ATI_TC_Texture
  • format : ATI_TC_Texture
  • fWeightingBlue : ATI_TC_CompressOptions
  • fWeightingGreen : ATI_TC_CompressOptions
  • fWeightingRed : ATI_TC_CompressOptions
  • nAlphaThreshold : ATI_TC_CompressOptions
  • nCompressionSpeed : ATI_TC_CompressOptions
  • pData : ATI_TC_Texture


ATI_Compress: Data Fields

  • All
  • Functions
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • ATI_COMPRESS_VERSION_MAJOR : ATI_Compress.h
  • ATI_COMPRESS_VERSION_MINOR : ATI_Compress.h


ATI_Compress: Data Fields

  • All
  • Functions
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • ATI_TC_ERROR : ATI_Compress.h
  • ATI_TC_FORMAT : ATI_Compress.h
  • ATI_TC_Speed : ATI_Compress.h


ATI_Compress: Data Fields

  • All
  • Functions
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines
  • a

- a -

  • ATI_TC_ABORTED : ATI_Compress.h
  • ATI_TC_ERR_GENERIC : ATI_Compress.h
  • ATI_TC_ERR_INVALID_DEST_TEXTURE : ATI_Compress.h
  • ATI_TC_ERR_INVALID_SOURCE_TEXTURE : ATI_Compress.h
  • ATI_TC_ERR_SIZE_MISMATCH : ATI_Compress.h
  • ATI_TC_ERR_UNABLE_TO_INIT_CODEC : ATI_Compress.h
  • ATI_TC_ERR_UNSUPPORTED_DEST_FORMAT : ATI_Compress.h
  • ATI_TC_ERR_UNSUPPORTED_SOURCE_FORMAT : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_16 : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_16F : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_2101010 : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_32F : ATI_Compress.h
  • ATI_TC_FORMAT_ARGB_8888 : ATI_Compress.h
  • ATI_TC_FORMAT_ATC_RGB : ATI_Compress.h
  • ATI_TC_FORMAT_ATC_RGBA_Explicit : ATI_Compress.h
  • ATI_TC_FORMAT_ATC_RGBA_Interpolated : ATI_Compress.h
  • ATI_TC_FORMAT_ATI1N : ATI_Compress.h
  • ATI_TC_FORMAT_ATI2N : ATI_Compress.h
  • ATI_TC_FORMAT_ATI2N_DXT5 : ATI_Compress.h
  • ATI_TC_FORMAT_ATI2N_XY : ATI_Compress.h
  • ATI_TC_FORMAT_BC1 : ATI_Compress.h
  • ATI_TC_FORMAT_BC2 : ATI_Compress.h
  • ATI_TC_FORMAT_BC3 : ATI_Compress.h
  • ATI_TC_FORMAT_BC4 : ATI_Compress.h
  • ATI_TC_FORMAT_BC5 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT1 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT3 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5 : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_RBxG : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_RGxB : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_RxBG : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_xGBR : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_xGxR : ATI_Compress.h
  • ATI_TC_FORMAT_DXT5_xRBG : ATI_Compress.h
  • ATI_TC_FORMAT_ETC_RGB : ATI_Compress.h
  • ATI_TC_FORMAT_R_16 : ATI_Compress.h
  • ATI_TC_FORMAT_R_16F : ATI_Compress.h
  • ATI_TC_FORMAT_R_32F : ATI_Compress.h
  • ATI_TC_FORMAT_R_8 : ATI_Compress.h
  • ATI_TC_FORMAT_RG_16 : ATI_Compress.h
  • ATI_TC_FORMAT_RG_16F : ATI_Compress.h
  • ATI_TC_FORMAT_RG_32F : ATI_Compress.h
  • ATI_TC_FORMAT_RG_8 : ATI_Compress.h
  • ATI_TC_FORMAT_RGB_888 : ATI_Compress.h
  • ATI_TC_FORMAT_Unknown : ATI_Compress.h
  • ATI_TC_OK : ATI_Compress.h
  • ATI_TC_Speed_Fast : ATI_Compress.h
  • ATI_TC_Speed_Normal : ATI_Compress.h
  • ATI_TC_Speed_SuperFast : ATI_Compress.h


ATI_Compress: Data Fields

  • All
  • Functions
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • ATI_TC_CalculateBufferSize() : ATI_Compress.h
  • ATI_TC_ConvertTexture() : ATI_Compress.h


ATI_Compress: Data Fields

  • All
  • Functions
  • Typedefs
  • Enumerations
  • Enumerator
  • Defines

  • ATI_TC_BYTE : ATI_Compress.h
  • ATI_TC_DWORD : ATI_Compress.h
  • ATI_TC_Feedback_Proc : ATI_Compress.h
  • ATI_TC_WORD : ATI_Compress.h


ATI_Compress: Graph Legend

Graph Legend

This page explains how to interpret the graphs that are generated by doxygen.

Consider the following example:

/*! Invisible class because of truncation */
class Invisible { };

/*! Truncated class, inheritance relation is hidden */
class Truncated : public Invisible { };

/* Class not documented with doxygen comments */
class Undocumented { };

/*! Class that is inherited using public inheritance */
class PublicBase : public Truncated { };

/*! A template class */
template<class T> class Templ { };

/*! Class that is inherited using protected inheritance */
class ProtectedBase { };

/*! Class that is inherited using private inheritance */
class PrivateBase { };

/*! Class that is used by the Inherited class */
class Used { };

/*! Super class that inherits a number of other classes */
class Inherited : public PublicBase,
                  protected ProtectedBase,
                  private PrivateBase,
                  public Undocumented,
                  public Templ<int>
{
  private:
    Used *m_usedClass;
};
This will result in the following graph:

The boxes in the above graph have the following meaning:

  • A filled gray box represents the struct or class for which the graph is generated.
  • A box with a black border denotes a documented struct or class.
  • A box with a grey border denotes an undocumented struct or class.
  • A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
The arrows have the following meaning:
  • A dark blue arrow is used to visualize a public inheritance relation between two classes.
  • A dark green arrow is used for protected inheritance.
  • A dark red arrow is used for private inheritance.
  • A purple dashed arrow is used if a class is contained or used by another class. The arrow is labeled with the variable(s) through which the pointed class or struct is accessible.
  • A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labeled with the template parameters of the instance.


ATI_Compress: Page Index

Related Pages

Here is a list of all related documentation pages:
  • Version History
  • Using ATI_Compress
  • Using a callback function
  • Library Software License Agreement