Fix Wrong position buffer when stride is 1

master
Marc Gilleron 2021-01-05 18:57:30 +00:00
parent dafb4f39ff
commit 15fe9ecdeb
1 changed files with 6 additions and 2 deletions

View File

@ -1,6 +1,7 @@
#include "voxel_graph_runtime.h" #include "voxel_graph_runtime.h"
#include "../../util/macros.h" #include "../../util/macros.h"
#include "../../util/noise/fast_noise_lite.h" #include "../../util/noise/fast_noise_lite.h"
#include "../../util/profiling.h"
#include "image_range_grid.h" #include "image_range_grid.h"
#include "range_utility.h" #include "range_utility.h"
#include "voxel_generator_graph.h" #include "voxel_generator_graph.h"
@ -1255,6 +1256,8 @@ void VoxelGraphRuntime::generate_xz_slice(ArraySlice<float> dst, Vector2i dst_si
} }
}; };
VOXEL_PROFILE_SCOPE();
#ifdef DEBUG_ENABLED #ifdef DEBUG_ENABLED
CRASH_COND(_buffers.size() == 0); CRASH_COND(_buffers.size() == 0);
CRASH_COND(_buffers.size() != _memory.size() / 2); CRASH_COND(_buffers.size() != _memory.size() / 2);
@ -1300,9 +1303,10 @@ void VoxelGraphRuntime::generate_xz_slice(ArraySlice<float> dst, Vector2i dst_si
if (stride == 1) { if (stride == 1) {
for (int zi = 0; zi < dst_size.y; ++zi) { for (int zi = 0; zi < dst_size.y; ++zi) {
const float z = min.y + zi;
for (int xi = 0; xi < dst_size.x; ++xi) { for (int xi = 0; xi < dst_size.x; ++xi) {
x_buffer.data[i] = xi; x_buffer.data[i] = min.x + xi;
z_buffer.data[i] = zi; z_buffer.data[i] = z;
++i; ++i;
} }
} }