Class TGPUCompressedImage

Unit

Declaration

type TGPUCompressedImage = class(TEncodedImage)

Description

Image compressed using one of the GPU texture compression algorithms.

Hierarchy

Overview

Methods

Public constructor Create(const AWidth, AHeight, ADepth: Cardinal; const ACompression: TTextureCompression);
Public function Size: Cardinal; override;
Public function HasAlpha: boolean; override;
Public function AlphaChannel( const AlphaTolerance: Byte): TAlphaChannel; override;
Public procedure FlipVertical; override;
Public function Decompress: TCastleImage;
Public function MakeCopy: TGPUCompressedImage;
Public function CreateCopy: TEncodedImage; override;

Properties

Public property Compression: TTextureCompression read FCompression;

Description

Methods

Public constructor Create(const AWidth, AHeight, ADepth: Cardinal; const ACompression: TTextureCompression);
 
Public function Size: Cardinal; override;

Size of the whole image data inside RawPixels, in bytes.

Public function HasAlpha: boolean; override;
 
Public function AlphaChannel( const AlphaTolerance: Byte): TAlphaChannel; override;
 
Public procedure FlipVertical; override;

Flip compressed image vertically, losslessly.

This works only for S3TC images, and only when their height is 1, 2, 3 or a multiple of 4. Note that this is always satisfied if image height is a power of two (as common for textures). It uses the knowledge of how S3TC compression works to losslessly flip the image, without re-compressing it. The idea is described here [http://users.telenet.be/tfautre/softdev/ddsload/explanation.htm].

Public function Decompress: TCastleImage;

Decompress the image.

This uses DecompressTexture variable, so you have to initialialize it first (for example to CastleGLImages.GLDecompressTexture) before using this.

Exceptions raised
ECannotDecompressTexture
If we cannot decompress the texture, because decompressor is not set or there was some other error within decompressor.
Public function MakeCopy: TGPUCompressedImage;

Create a new image object that has exactly the same class and the same data (size, pixels) as this image.

Public function CreateCopy: TEncodedImage; override;

Create a new image object that has exactly the same class and the same data (size, pixels) as this image.

Equivalent to MakeCopy, but virtual and declared as returning TEncodedImage class.

Properties

Public property Compression: TTextureCompression read FCompression;
 

Generated by PasDoc 0.16.0.