update vertex data each frame
This commit is contained in:
20
src/main.zig
20
src/main.zig
@@ -270,10 +270,9 @@ pub fn main() !void {
|
||||
defer vkalloc.free(vertex_memory);
|
||||
try au.D.bindBufferMemory(vertex_buffer, vertex_memory, 0);
|
||||
|
||||
const vertex_data: [*]Vertex = @ptrCast(@alignCast(try au.D.mapMemory(vertex_memory, 0, vk.WHOLE_SIZE, .{})));
|
||||
const vertex_data: *align(1) @TypeOf(vertices) = @ptrCast(try au.D.mapMemory(vertex_memory, 0, vk.WHOLE_SIZE, .{}));
|
||||
defer au.D.unmapMemory(vertex_memory);
|
||||
|
||||
@memcpy(vertex_data[0..vertices.len], &vertices);
|
||||
vertex_data.* = vertices;
|
||||
|
||||
const index_buffer = try au.D.createBuffer(&vk.BufferCreateInfo{
|
||||
.size = @sizeOf(@TypeOf(indices)),
|
||||
@@ -287,11 +286,9 @@ pub fn main() !void {
|
||||
);
|
||||
defer vkalloc.free(index_memory);
|
||||
try au.D.bindBufferMemory(index_buffer, index_memory, 0);
|
||||
|
||||
const index_data: [*]Index = @ptrCast(@alignCast(try au.D.mapMemory(index_memory, 0, vk.WHOLE_SIZE, .{})));
|
||||
const index_data: *align(1) @TypeOf(indices) = @ptrCast(try au.D.mapMemory(index_memory, 0, vk.WHOLE_SIZE, .{}));
|
||||
defer au.D.unmapMemory(index_memory);
|
||||
|
||||
@memcpy(index_data[0..indices.len], &indices);
|
||||
index_data.* = indices;
|
||||
|
||||
try au.D.deviceWaitIdle();
|
||||
|
||||
@@ -386,6 +383,9 @@ pub fn main() !void {
|
||||
);
|
||||
defer au.D.destroyPipeline(pipeline, null);
|
||||
|
||||
var prng = std.Random.Sfc64.init(std.crypto.random.int(u64));
|
||||
const rand = prng.random();
|
||||
|
||||
while (!au.W.should_close()) {
|
||||
im.c.ImGui_ImplGlfw_NewFrame();
|
||||
im.c.ImGui_ImplVulkan_NewFrame();
|
||||
@@ -438,6 +438,12 @@ pub fn main() !void {
|
||||
index_buffer,
|
||||
);
|
||||
|
||||
for (vertex_data) |*v| {
|
||||
for (v.pos[0..2]) |*f| {
|
||||
f.* += (rand.float(f32) - 0.5) * 0.01;
|
||||
}
|
||||
}
|
||||
|
||||
try cmd.endCommandBuffer();
|
||||
|
||||
au.Q.submit(
|
||||
|
Reference in New Issue
Block a user