Hook up the audio callback in the test application so that it outputs
the audio data to a standard WAV file. Also, add a "playback finished"
callback so that a client application can clean up anything it needs
to (in the case of the test app, it needs the signal in order to finish
writing the WAV file).
Add support for unpacking codebooks with alpha channel information.
Since dreamroq currently only supports outputting to a non-alpha RGB565
colorspace, the alpha information is currently disregarded.
The global frame motion vector was not being decoded correctly (was not
taking sign into account). This was never caught because I guess nobody
ever tried to decode a file that used non-zero motion vectors.
This commit also adds a special hack for frame handling. RoQ assumes a
pair of buffers for decoding. Decoding skip blocks on frame 2 is supposed
to leave those blocks with the same data as frame 0, since it's the same
memory. However, frame 1 can still have skip blocks. Deal with this by
copying decoded frame 0 to frame 1 before proceeding with frame 1 decode.
faster version of texture transfer function and using the same vertices on
every scene render.
Thanks to Quzar and Patbier from the dcemulation forums for advice and
code samples.
unchanged from 2 frames ago, rather than the previous frame. Thanks to
Vitor Sessak for pointing this out.
This commit also adds a few optimizations by working with pixel pairs in
32-bit numbers rather than individual pixels. There is still more to
optimize along these lines.