Some progress with C wrapper.

This commit is contained in:
castano
2008-01-18 08:49:57 +00:00
parent d89c26889c
commit 05d14e97bb
4 changed files with 59 additions and 52 deletions

View File

@ -5,8 +5,8 @@ ADD_SUBDIRECTORY(squish)
SET(NVTT_SRCS SET(NVTT_SRCS
nvtt.h nvtt.h
nvtt.cpp nvtt.cpp
# nvtt_wrapper.h nvtt_wrapper.h
# nvtt_wrapper.cpp nvtt_wrapper.cpp
CompressDXT.h CompressDXT.h
CompressDXT.cpp CompressDXT.cpp
CompressRGB.h CompressRGB.h

View File

@ -400,7 +400,7 @@ static void quantize(Image * img, const CompressionOptions::Private & compressio
} }
} }
// Process the input, convert to normal map, normalize or convert to linear space. // Process the input, convert to normal map, normalize, or convert to linear space.
static FloatImage * processInput(const InputOptions::Private & inputOptions, int idx) static FloatImage * processInput(const InputOptions::Private & inputOptions, int idx)
{ {
const InputOptions::Private::Image & mipmap = inputOptions.images[idx]; const InputOptions::Private::Image & mipmap = inputOptions.images[idx];

View File

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

View File

@ -40,10 +40,15 @@
#define NVTT_CLASS #define NVTT_CLASS
#endif #endif
typedef struct InputOptions * NvttInputOptions; #ifdef __cplusplus
typedef struct CompressionOptions * NvttCompressionOptions; typedef struct nvtt::InputOptions NvttInputOptions;
typedef struct OutputOptions * NvttOutputOptions; typedef struct nvtt::CompressionOptions NvttCompressionOptions;
typedef struct nvtt::OutputOptions NvttOutputOptions;
#else
typedef struct NvttInputOptions NvttInputOptions;
typedef struct NvttCompressionOptions NvttCompressionOptions;
typedef struct NvttOutputOptions NvttOutputOptions;
#endif
/// Supported compression formats. /// Supported compression formats.
typedef enum typedef enum
@ -97,35 +102,35 @@ extern "C" {
#endif #endif
// Input Options // Input Options
NVTT_API NvttInputOptions nvttCreateInputOptions(); NVTT_API NvttInputOptions * nvttCreateInputOptions();
NVTT_API void nvttDestroyInputOptions(NvttInputOptions inputOptions); NVTT_API void nvttDestroyInputOptions(NvttInputOptions * inputOptions);
NVTT_API void nvttSetInputOptionsTextureLayout(NvttInputOptions inputOptions, NvttTextureType type, int w, int h, int d); NVTT_API void nvttSetInputOptionsTextureLayout(NvttInputOptions * inputOptions, NvttTextureType type, int w, int h, int d);
NVTT_API void nvttResetInputOptionsTextureLayout(NvttInputOptions inputOptions); NVTT_API void nvttResetInputOptionsTextureLayout(NvttInputOptions * inputOptions);
NVTT_API NvttBoolean nvttSetInputOptionsMipmapData(NvttInputOptions inputOptions, const void * data, int w, int h, int d, int face, int mipmap); NVTT_API NvttBoolean nvttSetInputOptionsMipmapData(NvttInputOptions * inputOptions, const void * data, int w, int h, int d, int face, int mipmap);
// Compression Options // Compression Options
NVTT_API NvttCompressionOptions nvttCreateCompressionOptions(); NVTT_API NvttCompressionOptions * nvttCreateCompressionOptions();
NVTT_API void nvttDestroyCompressionOptions(NvttCompressionOptions compressionOptions); NVTT_API void nvttDestroyCompressionOptions(NvttCompressionOptions * compressionOptions);
NVTT_API void nvttSetCompressionOptionsFormat(NvttCompressionOptions compressionOptions, NvttFormat format); NVTT_API void nvttSetCompressionOptionsFormat(NvttCompressionOptions * compressionOptions, NvttFormat format);
NVTT_API void nvttSetCompressionOptionsQuality(NvttCompressionOptions compressionOptions, NvttQuality quality); NVTT_API void nvttSetCompressionOptionsQuality(NvttCompressionOptions * compressionOptions, NvttQuality quality);
NVTT_API void nvttSetCompressionOptionsPixelFormat(unsigned int bitcount, unsigned int rmask, unsigned int gmask, unsigned int bmask, unsigned int amask); NVTT_API void nvttSetCompressionOptionsPixelFormat(NvttCompressionOptions * compressionOptions, unsigned int bitcount, unsigned int rmask, unsigned int gmask, unsigned int bmask, unsigned int amask);
// Output Options // Output Options
NVTT_API NvttOutputOptions nvttCreateOutputOptions(); NVTT_API NvttOutputOptions * nvttCreateOutputOptions();
NVTT_API void nvttDestroyOutputOptions(NvttOutputOptions outputOptions); NVTT_API void nvttDestroyOutputOptions(NvttOutputOptions * outputOptions);
NVTT_API void nvttSetOutputOptionsFileName(NvttOutputOptions outputOptions, const char * fileName); NVTT_API void nvttSetOutputOptionsFileName(NvttOutputOptions * outputOptions, const char * fileName);
// Main entrypoint of the compression library. // Main entrypoint of the compression library.
NVTT_API NvttBoolean nvttCompress(NvttInputOptions inputOptions, NvttOutputOptions outputOptions, NvttCompressionOptions compressionOptions); NVTT_API NvttBoolean nvttCompress(NvttInputOptions * inputOptions, NvttCompressionOptions * compressionOptions, NvttOutputOptions * outputOptions);
// Estimate the size of compressing the input with the given options. // Estimate the size of compressing the input with the given options.
NVTT_API int nvttEstimateSize(NvttInputOptions inputOptions, NvttCompressionOptions compressionOptions); NVTT_API int nvttEstimateSize(NvttInputOptions * inputOptions, NvttCompressionOptions * compressionOptions);
#ifdef __cplusplus #ifdef __cplusplus