Commit Graph

17 Commits

Author SHA1 Message Date
Bastien Bouclet
ae9eeb731f COMMON: Rework the BitStream class to improve its performance
* Fixed peekBits not to seek the underlying stream. Seeking can be slow
  when the stream is a file.
* Changed multi-bit  operations to work on multiple bits at once rather
  than iterating over single-bit operations.

This is an almost direct port of a patch for xoreos provided by DrMcCoy.
2019-04-13 16:24:25 +03:00
Willem Jan Palenstijn
4278cff7f0 COMMON: Optimize BitStream::getBits 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn
0c8f95603f COMMON: Add BitStream classes for memory buffers 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn
e7428bca2e COMMON: Keep track of bitstream position 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn
ac95030ef6 COMMON: Cache BitStream size 2017-08-24 19:46:59 +02:00
Willem Jan Palenstijn
dde259f068 COMMON: Remove BitStream base class to allow inlining calls
All users of BitStream were in fact using a specific, hardcoded variant,
so we can hardcode that variant, removing the need for virtual calls,
and enabling inlining.
2017-08-24 19:46:59 +02:00
Paul Gilbert
bd010bc79f COMMON: Converted Common::BitStream to use DisposeAfterUse 2016-09-10 11:16:07 -04:00
Eugene Sandulenko
c41ebe6f45 COMMON: Added align() method for BitStream 2014-06-09 22:33:45 +03:00
Johannes Schickel
854e22b38b COMMON: Make GPL headers consistent in themselves. 2014-02-18 02:39:33 +01:00
Sven Hesse
42b39cb7ec COMMON: Extend some method comments in Common::BitStream
Adding examples to getBits() and addBit().
2011-10-21 00:19:02 +02:00
Sven Hesse
657ee2da59 COMMON: Fix potential UB while shifting Common::BitStream
Shifting a 32-bit value by more than 31 is undefined.
2011-10-21 00:19:02 +02:00
Sven Hesse
f1724f1637 COMMON: Rewrite BitStream as a template
This rewrites BitStream as a template, allowing for more different
memory layouts of the actual bit data.
2011-08-27 23:37:07 +02:00
Sven Hesse
45f1f1275c COMMON: Document the BitStream a bit more 2011-07-19 01:48:45 +02:00
Matthew Hoops
e6171fbb74 COMMON: Update class documentation to say they're now used by SCUMM 2011-07-18 10:21:20 -04:00
Matthew Hoops
c4d3a86010 COMMON: Remove USE_BINK checks from header files 2011-07-18 10:13:50 -04:00
Matthew Hoops
a50abde1b1 BUILD: Allow for disabling Bink support 2011-07-13 12:08:26 -04:00
Matthew Hoops
6ff94e2554 COMMON: Add a BitStream class
Based on eos' BitStream
2011-07-02 15:08:02 -04:00