@ -27,9 +27,9 @@
# include "OutputOptions.h"
// An OutputHandler that sets and calls function pointers, rather than
// requiring interfaces to derive from OutputHandler itself
struct HandlerProxy : public nvtt : : OutputHandler
// An OutputHandler /ErrorHandler that sets and calls function pointers, rather than
// requiring interfaces to derive from OutputHandler /ErrorHandler itself
struct HandlerProxy : public nvtt : : OutputHandler , public nvtt : : ErrorHandler
{
public :
@ -39,6 +39,8 @@ public:
nvttOutputHandler writeDataHandler ;
nvttEndImageHandler endImageHandler ;
nvttErrorHandler errorHandler ;
virtual void beginImage ( int size , int width , int height , int depth , int face , int miplevel )
{
if ( beginImageHandler ! = NULL )
@ -64,6 +66,14 @@ public:
endImageHandler ( ) ;
}
}
virtual void error ( nvtt : : Error e )
{
if ( errorHandler ! = NULL )
{
errorHandler ( ( NvttError ) e ) ;
}
}
} ;
@ -233,12 +243,32 @@ void nvttSetOutputOptionsOutputHeader(NvttOutputOptions * outputOptions, NvttBoo
{
outputOptions - > setOutputHeader ( b ! = NVTT_False ) ;
}
/*
void nvttSetOutputOptionsContainer ( NvttOutputOptions * outputOptions , NvttContainer containerFormat )
{
outputOptions - > setContainer ( ( nvtt : : Container ) containerFormat ) ;
}
void nvttSetOutputOptionsSrgbFlag ( NvttOutputOptions * outputOptions , NvttBoolean b )
{
outputOptions - > setSrgbFlag ( b ! = NVTT_False ) ;
}
void nvttSetOutputOptionsErrorHandler ( NvttOutputOptions * outputOptions , nvttErrorHandler errorHandler )
{
outputOptions - > setErrorHandler ( errorHandler ) ;
HandlerProxy * handler = ( HandlerProxy * ) outputOptions - > m . wrapperProxy ;
handler - > errorHandler = errorHandler ;
if ( errorHandler = = NULL )
{
outputOptions - > setErrorHandler ( NULL ) ;
}
else
{
outputOptions - > setErrorHandler ( handler ) ;
}
}
*/
void nvttSetOutputOptionsOutputHandler ( NvttOutputOptions * outputOptions , nvttBeginImageHandler beginImageHandler , nvttOutputHandler writeDataHandler , nvttEndImageHandler endImageHandler )
{
@ -270,6 +300,16 @@ void nvttDestroyCompressor(NvttCompressor * compressor)
delete compressor ;
}
void nvttEnableCudaAcceleration ( NvttCompressor * compressor , NvttBoolean b )
{
compressor - > enableCudaAcceleration ( b ! = NVTT_False ) ;
}
NvttBoolean nvttIsCudaAccelerationEnabled ( const NvttCompressor * compressor )
{
return ( NvttBoolean ) compressor - > isCudaAccelerationEnabled ( ) ;
}
NvttBoolean nvttCompress ( const NvttCompressor * compressor , const NvttInputOptions * inputOptions , const NvttCompressionOptions * compressionOptions , const NvttOutputOptions * outputOptions )
{
return ( NvttBoolean ) compressor - > process ( * inputOptions , * compressionOptions , * outputOptions ) ;