mirror of
https://github.com/PixelGuys/Cubyz.git
synced 2025-08-03 11:17:05 -04:00
Decrease the compression ratio of stored maps to improve their generation time.
helps with #513
This commit is contained in:
parent
ad9cad6270
commit
5f192f224f
@ -1225,7 +1225,7 @@ pub const Protocols = struct {
|
||||
for(&map.startHeight, 0..) |val, i| {
|
||||
std.mem.writeInt(i16, uncompressedData[2*i..][0..2], val, .big);
|
||||
}
|
||||
const compressedData = utils.Compression.deflate(main.stackAllocator, &uncompressedData);
|
||||
const compressedData = utils.Compression.deflate(main.stackAllocator, &uncompressedData, .default);
|
||||
defer main.stackAllocator.free(compressedData);
|
||||
const data = main.stackAllocator.alloc(u8, 9 + compressedData.len);
|
||||
defer main.stackAllocator.free(data);
|
||||
|
@ -216,7 +216,7 @@ pub const ChunkCompression = struct {
|
||||
for(0..chunk.chunkVolume) |i| {
|
||||
std.mem.writeInt(u32, uncompressedData[4*i..][0..4], ch.data.getValue(i).toInt(), .big);
|
||||
}
|
||||
const compressedData = main.utils.Compression.deflate(main.stackAllocator, &uncompressedData);
|
||||
const compressedData = main.utils.Compression.deflate(main.stackAllocator, &uncompressedData, .default);
|
||||
defer main.stackAllocator.free(compressedData);
|
||||
const data = allocator.alloc(u8, 4 + compressedData.len);
|
||||
@memcpy(data[4..], compressedData);
|
||||
|
@ -187,7 +187,7 @@ pub const MapFragment = struct {
|
||||
std.mem.writeInt(u32, originalHeightData[4*(x*mapSize + y)..][0..4], @bitCast((if(originalData) |map| map else &self.heightMap)[x][y]), .big);
|
||||
}
|
||||
}
|
||||
const compressedData = main.utils.Compression.deflate(main.stackAllocator, rawData);
|
||||
const compressedData = main.utils.Compression.deflate(main.stackAllocator, rawData, .fast);
|
||||
defer main.stackAllocator.free(compressedData);
|
||||
|
||||
const fullData = main.stackAllocator.alloc(u8, compressedData.len + @sizeOf(StorageHeader));
|
||||
|
@ -8,9 +8,9 @@ const main = @import("main.zig");
|
||||
pub const file_monitor = @import("utils/file_monitor.zig");
|
||||
|
||||
pub const Compression = struct {
|
||||
pub fn deflate(allocator: NeverFailingAllocator, data: []const u8) []u8 {
|
||||
pub fn deflate(allocator: NeverFailingAllocator, data: []const u8, level: std.compress.flate.deflate.Level) []u8 {
|
||||
var result = main.List(u8).init(allocator);
|
||||
var comp = std.compress.flate.compressor(result.writer(), .{}) catch unreachable;
|
||||
var comp = std.compress.flate.compressor(result.writer(), .{.level = level}) catch unreachable;
|
||||
_ = comp.write(data) catch unreachable;
|
||||
comp.finish() catch unreachable;
|
||||
return result.toOwnedSlice();
|
||||
|
Loading…
x
Reference in New Issue
Block a user