167 #ifndef EQ_PLUGINS_COMPRESSOR 168 #define EQ_PLUGINS_COMPRESSOR 171 #include <sys/types.h> 172 struct GLEWContextStruct;
173 struct WGLEWContextStruct;
174 typedef struct GLEWContextStruct GLEWContext;
175 typedef struct WGLEWContextStruct WGLEWContext;
176 typedef unsigned long long eq_uint64_t;
179 # ifdef EQ_PLUGIN_BUILD 180 # define EQ_PLUGIN_API __declspec(dllexport) 182 # define EQ_PLUGIN_API __declspec(dllimport) 185 # define EQ_PLUGIN_API __attribute__ ((visibility("default"))) 192 #define EQ_COMPRESSOR_VERSION 4 194 #define EQ_COMPRESSOR_VERSION_1 1 196 #define EQ_COMPRESSOR_VERSION_2 1 198 #define EQ_COMPRESSOR_VERSION_3 1 200 #define EQ_COMPRESSOR_VERSION_4 1 223 #define EQ_COMPRESSOR_INPLACE 0x1 229 #define EQ_COMPRESSOR_DATA_1D 0x2 236 #define EQ_COMPRESSOR_DATA_2D 0x4 254 #define EQ_COMPRESSOR_IGNORE_ALPHA 0x8 256 #define EQ_COMPRESSOR_IGNORE_MSE EQ_COMPRESSOR_IGNORE_ALPHA 264 #define EQ_COMPRESSOR_CPU 0 272 #define EQ_COMPRESSOR_TRANSFER 0x10 280 #define EQ_COMPRESSOR_USE_TEXTURE_RECT 0x20 287 #define EQ_COMPRESSOR_USE_TEXTURE_2D 0x80 294 #define EQ_COMPRESSOR_USE_FRAMEBUFFER 0x40 302 #define EQ_COMPRESSOR_USE_ASYNC_DOWNLOAD 0x100 304 #if 0 // Not implemented yet 311 #define EQ_COMPRESSOR_USE_ASYNC_UPLOAD 0x200 472 const eq_uint64_t* inDims,
473 const eq_uint64_t flags );
487 const unsigned name );
503 eq_uint64_t*
const outSize );
527 const void*
const* in,
528 const eq_uint64_t*
const inSizes,
529 const unsigned numInputs,
531 eq_uint64_t*
const outDims,
532 const eq_uint64_t flags );
552 const GLEWContext* glewContext );
604 const GLEWContext* glewContext,
605 const eq_uint64_t inDims[4],
606 const unsigned source,
607 const eq_uint64_t flags,
608 eq_uint64_t outDims[4],
637 const GLEWContext* glewContext,
638 const eq_uint64_t inDims[4],
639 const unsigned source,
640 const eq_uint64_t flags );
661 const GLEWContext* glewContext,
662 const eq_uint64_t inDims[4],
663 const eq_uint64_t flags,
664 eq_uint64_t outDims[4],
711 const GLEWContext* glewContext,
713 const eq_uint64_t inDims[4],
714 const eq_uint64_t flags,
715 const eq_uint64_t outDims[4],
716 const unsigned destination );
725 inline std::ostream& operator << ( std::ostream& os,
728 return os << std::hex <<
"name 0x" << info.
name <<
" in 0x" 730 <<
" cap 0x" << info.
capabilities << std::dec <<
" quality " 735 #endif // EQ_PLUGINS_COMPRESSOR unsigned outputTokenType
The output token type of a plugin.
EQ_PLUGIN_API void EqCompressorCompress(void *const compressor, const unsigned name, void *const in, const eq_uint64_t *inDims, const eq_uint64_t flags)
Compress data.
EQ_PLUGIN_API void EqCompressorGetResult(void *const compressor, const unsigned name, const unsigned i, void **const out, eq_uint64_t *const outSize)
Return the ith result of the last compression.
unsigned version
The compressor API version used.
unsigned outputTokenSize
The size of one output token in bytes.
EQ_PLUGIN_API void EqCompressorStartDownload(void *const compressor, const unsigned name, const GLEWContext *glewContext, const eq_uint64_t inDims[4], const unsigned source, const eq_uint64_t flags)
Start transferring frame buffer data into main memory.
float speed
Approximate compression speed relative to BYTE_RLE.
EQ_PLUGIN_API void * EqCompressorNewCompressor(const unsigned name)
Instantiate a new compressor or a new downloader.
Input and output token type definitions for compression plugins.
EQ_PLUGIN_API bool EqCompressorIsCompatible(const unsigned name, const GLEWContext *glewContext)
Check if the compressor may be used with the current OpenGL context.
unsigned tokenType
The input token type supported by the compressor.
Information about one compressor.
EQ_PLUGIN_API size_t EqCompressorGetNumCompressors()
EQ_PLUGIN_API void * EqCompressorNewDecompressor(const unsigned name)
Instantiate a new decompressor or a new uploader.
EQ_PLUGIN_API unsigned EqCompressorGetNumResults(void *const compressor, const unsigned name)
Return the number of results produced by the last compression.
float quality
Compression quality (1.0f: loss-less, <1.0f: lossy).
EQ_PLUGIN_API void EqCompressorGetInfo(const size_t n, EqCompressorInfo *const info)
Query information of the nth compressor in the DSO.
EQ_PLUGIN_API void EqCompressorDecompress(void *const decompressor, const unsigned name, const void *const *in, const eq_uint64_t *const inSizes, const unsigned numInputs, void *const out, eq_uint64_t *const outDims, const eq_uint64_t flags)
Decompress data.
EQ_PLUGIN_API void EqCompressorDeleteCompressor(void *const compressor)
Release a compressor or downloader instance.
EQ_PLUGIN_API void EqCompressorDeleteDecompressor(void *const decompressor)
Release a decompressor instance.
EQ_PLUGIN_API void EqCompressorUpload(void *const decompressor, const unsigned name, const GLEWContext *glewContext, const void *buffer, const eq_uint64_t inDims[4], const eq_uint64_t flags, const eq_uint64_t outDims[4], const unsigned destination)
Transfer data from main memory into GPU memory.
EQ_PLUGIN_API void EqCompressorFinishDownload(void *const compressor, const unsigned name, const GLEWContext *glewContext, const eq_uint64_t inDims[4], const eq_uint64_t flags, eq_uint64_t outDims[4], void **out)
Finish transferring frame buffer data into main memory.
unsigned name
The type name of the compressor.
EQ_PLUGIN_API void EqCompressorDownload(void *const compressor, const unsigned name, const GLEWContext *glewContext, const eq_uint64_t inDims[4], const unsigned source, const eq_uint64_t flags, eq_uint64_t outDims[4], void **out)
Transfer frame buffer data into main memory.
Compression plugin names.
eq_uint64_t capabilities
Capabilities supported by the compressor.
float ratio
Approximate compression ratio (sizeCompressed/sizeIn).