Class TGPUCompressedImage

DescriptionHierarchyFieldsMethodsProperties

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: TGPUCompression);
Public function Size: Cardinal; override;
Public function HasAlpha: boolean; override;
Public function AlphaChannel( const AlphaTolerance: Byte): TAlphaChannel; override;
Public procedure FlipVertical;
Public function Decompress: TCastleImage;
Public function MakeCopy: TGPUCompressedImage;

Properties

Public property Compression: TGPUCompression read FCompression;

Description

Methods

Public constructor Create(const AWidth, AHeight, ADepth: Cardinal; const ACompression: TGPUCompression);
 
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;

Flip compressed image vertically, losslessly.

This works only for (some) S3TC images. 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].

Exceptions raised
ECannotFlipCompressedImage
Raised when image Height is not 1, 2, 3 or a multiple of 4 (since the trick doesn't work in these cases, pixels would move between 4x4 blocks). Note that if Height is a power of two (as common for OpenGL textures) then it's always possible to make a flip.
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;
 

Properties

Public property Compression: TGPUCompression read FCompression;
 

Generated by PasDoc 0.14.0.