From 06aa06be86782f6c68ccebdab9e4fc9fa3544f21 Mon Sep 17 00:00:00 2001 From: IntegratedQuantum Date: Mon, 12 Dec 2022 21:06:36 +0100 Subject: [PATCH] Fix small implementation error in binary heap. --- assets/cubyz/shaders/chunks/chunk_fragment.fs | 2 +- src/main.zig | 2 +- src/utils.zig | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/assets/cubyz/shaders/chunks/chunk_fragment.fs b/assets/cubyz/shaders/chunks/chunk_fragment.fs index 1a11ae6e..4387981e 100644 --- a/assets/cubyz/shaders/chunks/chunk_fragment.fs +++ b/assets/cubyz/shaders/chunks/chunk_fragment.fs @@ -61,7 +61,7 @@ uint getVoxel(int voxelIndex) { voxelIndex = (voxelIndex & 0xf) | (voxelIndex>>1 & 0xf0) | (voxelIndex>>2 & 0xf00); int shift = 4*(voxelIndex & 7); int arrayIndex = voxelIndex >> 3; - return (voxelModels[modelIndex].bitPackedData[arrayIndex]>>shift & 15); + return (voxelModels[modelIndex].bitPackedData[arrayIndex]>>shift & 15u); } struct RayMarchResult { diff --git a/src/main.zig b/src/main.zig index cb027225..d005860c 100644 --- a/src/main.zig +++ b/src/main.zig @@ -178,7 +178,7 @@ pub const Window = struct { if(c.gladLoadGL() == 0) { return error.GLADFailed; } - c.glfwSwapInterval(1); + c.glfwSwapInterval(0); if(@import("builtin").mode == .Debug) { c.glEnable(c.GL_DEBUG_OUTPUT); diff --git a/src/utils.zig b/src/utils.zig index 7bc57b3f..64b0910c 100644 --- a/src/utils.zig +++ b/src/utils.zig @@ -120,8 +120,8 @@ pub fn BlockingMaxHeap(comptime T: type) type { fn siftDown(self: *@This(), _i: usize) void { std.debug.assert(!self.mutex.tryLock()); // The mutex should be locked when calling this function. var i = _i; - while(2*i + 2 < self.size) { - var biggest = if(self.array[2*i + 1].biggerThan(self.array[2*i + 2])) 2*i + 1 else 2*i + 2; + while(2*i + 1 < self.size) { + var biggest = if(2*i + 2 < self.size and self.array[2*i + 2].biggerThan(self.array[2*i + 1])) 2*i + 2 else 2*i + 1; // Break if all childs are smaller. if(self.array[i].biggerThan(self.array[biggest])) return; // Swap it: