PolyVox  0.3.0-dev
Open source voxel management library
RLECompressor.h
Go to the documentation of this file.
1 #ifndef __PolyVox_RLECompressor_H__
2 #define __PolyVox_RLECompressor_H__
3 
5 
6 namespace PolyVox
7 {
17  template<typename ValueType, typename LengthType>
18  class RLECompressor : public Compressor
19  {
20  struct Run
21  {
22  ValueType value;
23  LengthType length;
24  };
25  public:
27  RLECompressor();
30 
31  // API documentation is in base class and gets inherited by Doxygen.
32  uint32_t getMaxCompressedSize(uint32_t uUncompressedInputSize);
33  uint32_t compress(void* pSrcData, uint32_t uSrcLength, void* pDstData, uint32_t uDstLength);
34  uint32_t decompress(void* pSrcData, uint32_t uSrcLength, void* pDstData, uint32_t uDstLength);
35  };
36 }
37 
38 #include "RLECompressor.inl"
39 
40 #endif //__PolyVox_RLECompressor_H__