You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nvidia-texture-tools/src/nvtt/nvtt_wrapper.cpp

89 lines
2.5 KiB
C++

#include "nvtt.h"
#include "nvtt_wrapper.h"
// Input Options
NvttInputOptions * nvttCreateInputOptions()
{
return new nvtt::InputOptions();
}
void nvttDestroyInputOptions(NvttInputOptions * inputOptions)
{
delete inputOptions;
}
void nvttSetInputOptionsTextureLayout(NvttInputOptions * inputOptions, NvttTextureType type, int w, int h, int d)
{
inputOptions->setTextureLayout((nvtt::TextureType)type, w, h, d);
}
void nvttResetInputOptionsTextureLayout(NvttInputOptions * inputOptions)
{
inputOptions->resetTextureLayout();
}
NvttBoolean nvttSetInputOptionsMipmapData(NvttInputOptions * inputOptions, const void * data, int w, int h, int d, int face, int mipmap)
{
return (NvttBoolean)inputOptions->setMipmapData(data, w, h, d, face, mipmap);
}
// Compression Options
NvttCompressionOptions * nvttCreateCompressionOptions()
{
return new nvtt::CompressionOptions();
}
void nvttDestroyCompressionOptions(NvttCompressionOptions * compressionOptions)
{
delete compressionOptions;
}
void nvttSetCompressionOptionsFormat(NvttCompressionOptions * compressionOptions, NvttFormat format)
{
compressionOptions->setFormat((nvtt::Format)format);
}
void nvttSetCompressionOptionsQuality(NvttCompressionOptions * compressionOptions, NvttQuality quality)
{
compressionOptions->setQuality((nvtt::Quality)quality);
}
void nvttSetCompressionOptionsPixelFormat(NvttCompressionOptions * compressionOptions, unsigned int bitcount, unsigned int rmask, unsigned int gmask, unsigned int bmask, unsigned int amask)
{
compressionOptions->setPixelFormat(bitcount, rmask, gmask, bmask, amask);
}
// Output Options
NvttOutputOptions * nvttCreateOutputOptions()
{
return new nvtt::OutputOptions();
}
void nvttDestroyOutputOptions(NvttOutputOptions * outputOptions)
{
delete outputOptions;
}
void nvttSetOutputOptionsFileName(NvttOutputOptions * outputOptions, const char * fileName)
{
outputOptions->setFileName(fileName);
}
// Main entrypoint of the compression library.
NvttBoolean nvttCompress(const NvttInputOptions * inputOptions, const NvttCompressionOptions * compressionOptions, const NvttOutputOptions * outputOptions)
{
return (NvttBoolean)nvtt::compress(*inputOptions, *outputOptions, *compressionOptions);
}
// Estimate the size of compressing the input with the given options.
int nvttEstimateSize(const NvttInputOptions * inputOptions, const NvttCompressionOptions * compressionOptions)
{
return nvtt::estimateSize(*inputOptions, *compressionOptions);
}