Spooky hash, smarter animqueue diffs

This commit is contained in:
2021-07-18 17:48:39 -04:00
parent 4357fd647f
commit a39eb4a218
14 changed files with 645 additions and 197 deletions

View File

@@ -211,10 +211,12 @@
#define STREAMBUFFER_HPP
#include "luastack.hpp"
#include "util.hpp"
#include <cstdint>
#include <string>
#include <sstream>
#include <cassert>
#include <utility>
class StreamException
{
@@ -316,6 +318,7 @@ public:
void write_int64(int64_t v);
void write_float(float f);
void write_double(double d);
void write_hashvalue(const util::HashValue &hv);
void write_uint8(uint8_t v) { write_int8(v); }
void write_uint16(uint16_t v) { write_int16(v); }
void write_uint32(uint32_t v) { write_int32(v); }
@@ -345,6 +348,7 @@ public:
int64_t read_int64();
float read_float();
double read_double();
util::HashValue read_hashvalue();
uint8_t read_uint8() { return read_int8(); }
uint16_t read_uint16() { return read_int16(); }
uint32_t read_uint32() { return read_int32(); }
@@ -375,6 +379,9 @@ public:
// Rewind the write cursor to a previous position.
void unwrite_to(int64_t write_count);
// Calculate a noncryptographic but good hash of what's in the buffer.
util::HashValue hash() const;
// Use the stream buffer as a lua_Writer.
static int lua_writer(lua_State *L, const void* p, size_t sz, void* ud);
void *lua_writer_ud();