21 #ifndef PRESSION_COMPRESSOR_H 22 #define PRESSION_COMPRESSOR_H 25 #include <pression/types.h> 26 #include <lunchbox/thread.h> 30 namespace detail {
class Compressor; }
39 typedef detail::Compressor*
const Compressor::*bool_t;
52 PRESSION_API Compressor(
PluginRegistry& from,
const uint32_t name );
55 PRESSION_API
virtual ~Compressor();
58 PRESSION_API
bool isGood()
const;
64 operator bool_t()
const {
return isGood() ? &Compressor::impl_ : 0; }
67 bool operator ! ()
const {
return !isGood(); }
73 PRESSION_API
bool uses(
const uint32_t name )
const;
93 static PRESSION_API uint32_t choose(
const PluginRegistry& registry,
94 const uint32_t tokenType,
95 const float minQuality,
96 const bool ignoreMSE );
106 PRESSION_API
bool setup(
PluginRegistry& from,
const uint32_t name );
113 PRESSION_API
bool setup(
PluginRegistry& registry,
const uint32_t tokenType,
114 const float minQuality,
const bool ignoreMSE );
117 PRESSION_API
bool realloc();
120 PRESSION_API
void clear();
129 PRESSION_API
void compress(
void*
const in,
const uint64_t inDims[2] );
139 PRESSION_API
void compress(
void*
const in,
const uint64_t pvp[4],
140 const uint64_t flags );
146 PRESSION_API
unsigned getNumResults()
const LB_DEPRECATED;
155 PRESSION_API
void getResult(
const unsigned i,
void**
const out,
156 uint64_t*
const outSize )
const LB_DEPRECATED;
159 Compressor(
const Compressor& );
160 Compressor operator=(
const Compressor& );
161 detail::Compressor*
const impl_;
162 LB_TS_VAR( _thread );
165 #endif // PRESSION_COMPRESSOR_H Defines export visibility macros for library Pression.
Information about one compressor.
A C++ class to handle one compressor plugin instance.
A structure to hold the results from one compress operation.
A registry for loaded plugins.