#pragma once
#ifndef __CVTT_CONVECTION_KERNELS__
#define __CVTT_CONVECTION_KERNELS__
#include <stddef.h>
#include <stdint.h>
namespace cvtt
{
namespace Flags
{
const uint32_t BC7_FastIndexing = …;
const uint32_t BC7_TrySingleColor = …;
const uint32_t BC7_RespectPunchThrough = …;
const uint32_t BC6H_FastIndexing = …;
const uint32_t S3TC_Exhaustive = …;
const uint32_t S3TC_Paranoid = …;
const uint32_t Uniform = …;
const uint32_t ETC_UseFakeBT709 = …;
const uint32_t ETC_FakeBT709Accurate = …;
const uint32_t Fastest = …;
const uint32_t Faster = …;
const uint32_t Fast = …;
const uint32_t Default = …;
const uint32_t Better = …;
const uint32_t Ultra = …;
}
const unsigned int NumParallelBlocks = …;
struct Options
{ … };
struct BC7FineTuningParams
{ … };
struct BC7EncodingPlan
{ … };
struct PixelBlockU8
{ … };
struct PixelBlockS8
{ … };
struct PixelBlockScalarS16
{ … };
struct PixelBlockF16
{ … };
class ETC2CompressionData
{ … };
class ETC1CompressionData
{ … };
namespace Kernels
{
allocFunc_t;
freeFunc_t;
void EncodeBC1(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options);
void EncodeBC2(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options);
void EncodeBC3(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options);
void EncodeBC4U(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options);
void EncodeBC4S(uint8_t *pBC, const PixelBlockS8 *pBlocks, const Options &options);
void EncodeBC5U(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options);
void EncodeBC5S(uint8_t *pBC, const PixelBlockS8 *pBlocks, const Options &options);
void EncodeBC6HU(uint8_t *pBC, const PixelBlockF16 *pBlocks, const Options &options);
void EncodeBC6HS(uint8_t *pBC, const PixelBlockF16 *pBlocks, const Options &options);
void EncodeBC7(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options, const BC7EncodingPlan &encodingPlan);
void EncodeETC1(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options, ETC1CompressionData *compressionData);
void EncodeETC2(uint8_t *pBC, const PixelBlockU8 *pBlocks, const Options &options, ETC2CompressionData *compressionData);
void EncodeETC2RGBA(uint8_t *pBC, const PixelBlockU8 *pBlocks, const cvtt::Options &options, cvtt::ETC2CompressionData *compressionData);
void EncodeETC2PunchthroughAlpha(uint8_t *pBC, const PixelBlockU8 *pBlocks, const cvtt::Options &options, cvtt::ETC2CompressionData *compressionData);
void EncodeETC2Alpha(uint8_t *pBC, const PixelBlockU8 *pBlocks, const cvtt::Options &options);
void EncodeETC2Alpha11(uint8_t *pBC, const PixelBlockScalarS16 *pBlocks, bool isSigned, const cvtt::Options &options);
void ConfigureBC7EncodingPlanFromQuality(BC7EncodingPlan &encodingPlan, int quality);
bool ConfigureBC7EncodingPlanFromFineTuningParams(BC7EncodingPlan &encodingPlan, const BC7FineTuningParams ¶ms);
ETC2CompressionData *AllocETC2Data(allocFunc_t allocFunc, void *context, const cvtt::Options &options);
void ReleaseETC2Data(ETC2CompressionData *compressionData, freeFunc_t freeFunc);
ETC1CompressionData *AllocETC1Data(allocFunc_t allocFunc, void *context);
void ReleaseETC1Data(ETC1CompressionData *compressionData, freeFunc_t freeFunc);
void DecodeBC6HU(PixelBlockF16 *pBlocks, const uint8_t *pBC);
void DecodeBC6HS(PixelBlockF16 *pBlocks, const uint8_t *pBC);
void DecodeBC7(PixelBlockU8 *pBlocks, const uint8_t *pBC);
}
}
#endif