Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.cc')
-rw-r--r--extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.cc30
1 files changed, 30 insertions, 0 deletions
diff --git a/extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.cc b/extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.cc
new file mode 100644
index 00000000000..83834236fa5
--- /dev/null
+++ b/extern/draco/dracoenc/src/draco/compression/bit_coders/symbol_bit_encoder.cc
@@ -0,0 +1,30 @@
+#include "draco/compression/bit_coders/symbol_bit_encoder.h"
+
+#include "draco/compression/entropy/symbol_encoding.h"
+
+namespace draco {
+
+void SymbolBitEncoder::EncodeLeastSignificantBits32(int nbits, uint32_t value) {
+ DRACO_DCHECK_LE(1, nbits);
+ DRACO_DCHECK_LE(nbits, 32);
+
+ const int discarded_bits = 32 - nbits;
+ value <<= discarded_bits;
+ value >>= discarded_bits;
+
+ symbols_.push_back(value);
+}
+
+void SymbolBitEncoder::EndEncoding(EncoderBuffer *target_buffer) {
+ target_buffer->Encode(static_cast<uint32_t>(symbols_.size()));
+ EncodeSymbols(symbols_.data(), static_cast<int>(symbols_.size()), 1, nullptr,
+ target_buffer);
+ Clear();
+}
+
+void SymbolBitEncoder::Clear() {
+ symbols_.clear();
+ symbols_.shrink_to_fit();
+}
+
+} // namespace draco