123
This commit is contained in:
92
RenderDll/Common/3Dc/CompressorLib.h
Normal file
92
RenderDll/Common/3Dc/CompressorLib.h
Normal file
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// Header file for compression library
|
||||
//
|
||||
|
||||
#ifndef _COMPRESSORLIB_H
|
||||
#define _COMPRESSORLIB_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C"
|
||||
{
|
||||
#endif
|
||||
|
||||
#if defined(LINUX)
|
||||
#define _stdcall
|
||||
#else
|
||||
#include "Windows.h"
|
||||
#endif
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FORMAT_COMP_ATI2N,
|
||||
FORMAT_COMP_ATI2N_DXT5,
|
||||
FORMAT_COMP_TOOBIG
|
||||
} COMPRESSED_FORMAT;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
FORMAT_ARGB_8888,
|
||||
FORMAT_ARGB_TOOBIG
|
||||
} UNCOMPRESSED_FORMAT;
|
||||
|
||||
|
||||
typedef enum
|
||||
{
|
||||
COMPRESSOR_ERROR_NONE,
|
||||
COMPRESSOR_ERROR_NO_INPUT_DATA,
|
||||
COMPRESSOR_ERROR_NO_OUTPUT_POINTER,
|
||||
COMPRESSOR_ERROR_UNSUPPORTED_SOURCE_FORMAT,
|
||||
COMPRESSOR_ERROR_UNSUPPORTED_DESTINATION_FORMAT,
|
||||
COMPRESSOR_ERROR_UNABLE_TO_INIT_CODEC,
|
||||
COMPRESSOR_ERROR_GENERIC
|
||||
} COMPRESSOR_ERROR;
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Compressor entry point
|
||||
//
|
||||
// Parameters -
|
||||
//
|
||||
// width - width of input image in pixels
|
||||
// height - height of input image in pixels
|
||||
// sourceFormat - format of source texture (must be ARGB_8888 at the moment)
|
||||
// destinationFormat - format of output texture (can be ATI2N or ATI2N_DXT5)
|
||||
// inputData - pointer to uncompressed texture data
|
||||
// dataOut - address of pointer that will point to the compressed data
|
||||
// outDataSize - filled with the size of the compressed data buffer (can be NULL)
|
||||
//
|
||||
|
||||
COMPRESSOR_ERROR _stdcall CompressTexture(DWORD width,
|
||||
DWORD height,
|
||||
UNCOMPRESSED_FORMAT sourceFormat,
|
||||
COMPRESSED_FORMAT destinationFormat,
|
||||
void *inputData,
|
||||
void **dataOut,
|
||||
DWORD *outDataSize);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif //__cplusplus
|
||||
|
||||
typedef void (*FnDeleteDataATI)(void *pData);
|
||||
typedef COMPRESSOR_ERROR (*FnCompressTextureATI)(DWORD width,
|
||||
DWORD height,
|
||||
UNCOMPRESSED_FORMAT sourceFormat,
|
||||
COMPRESSED_FORMAT destinationFormat,
|
||||
void *inputData,
|
||||
void **dataOut,
|
||||
DWORD *outDataSize);
|
||||
|
||||
extern void (*DeleteDataATI)(void *pData);
|
||||
extern COMPRESSOR_ERROR (*CompressTextureATI)(DWORD width,
|
||||
DWORD height,
|
||||
UNCOMPRESSED_FORMAT sourceFormat,
|
||||
COMPRESSED_FORMAT destinationFormat,
|
||||
void *inputData,
|
||||
void **dataOut,
|
||||
DWORD *outDataSize);
|
||||
|
||||
#endif // _COMPRESSORLIB_H
|
||||
Reference in New Issue
Block a user