41 lines
1.1 KiB
C
41 lines
1.1 KiB
C
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "HAL/Platform.h"
|
|
#include "Serialization/Archive.h"
|
|
|
|
#pragma pack(push,1)
|
|
struct FTGAFileHeader
|
|
{
|
|
uint8 IdFieldLength;
|
|
uint8 ColorMapType;
|
|
uint8 ImageTypeCode; // 2 for uncompressed RGB format
|
|
uint16 ColorMapOrigin;
|
|
uint16 ColorMapLength;
|
|
uint8 ColorMapEntrySize;
|
|
uint16 XOrigin;
|
|
uint16 YOrigin;
|
|
uint16 Width;
|
|
uint16 Height;
|
|
uint8 BitsPerPixel;
|
|
uint8 ImageDescriptor;
|
|
|
|
friend FArchive& operator<<( FArchive& Ar, FTGAFileHeader& H )
|
|
{
|
|
Ar << H.IdFieldLength << H.ColorMapType << H.ImageTypeCode;
|
|
Ar << H.ColorMapOrigin << H.ColorMapLength << H.ColorMapEntrySize;
|
|
Ar << H.XOrigin << H.YOrigin << H.Width << H.Height << H.BitsPerPixel;
|
|
Ar << H.ImageDescriptor;
|
|
return Ar;
|
|
}
|
|
};
|
|
#pragma pack(pop)
|
|
|
|
/**
|
|
* This helper allows to decompress TGA data in a pre-allocated memory block.
|
|
* The pixel format is necessarily PF_A8R8G8B8.
|
|
*/
|
|
IMAGEWRAPPER_API bool DecompressTGA_helper( const FTGAFileHeader* TGA, const int64 TGABufferLength, uint32* TextureData, const int64 TextureDataSize );
|