Implemented rotations
This commit is contained in:
parent
7a634d53b5
commit
defdf051ec
6 changed files with 29 additions and 13 deletions
|
|
@ -20,6 +20,7 @@ current_frame: u32,
|
|||
vertex_buffer: vk.Buffer,
|
||||
index_buffer: vk.Buffer,
|
||||
transform: math.Transform,
|
||||
previous_time: std.time.Instant,
|
||||
|
||||
pub fn init(allocator: Allocator, instance_handle: vk.c.VkInstance, surface_handle: vk.c.VkSurfaceKHR) !Renderer {
|
||||
const instance: vk.Instance = .{ .handle = instance_handle };
|
||||
|
|
@ -68,7 +69,8 @@ pub fn init(allocator: Allocator, instance_handle: vk.c.VkInstance, surface_hand
|
|||
// TODO: Why are we storing the buffer and not the Mesh?
|
||||
.vertex_buffer = triangle.vertex_buffer,
|
||||
.index_buffer = triangle.index_buffer,
|
||||
.transform = math.Transform.init(.{0.0, 0.0, 0.0}, .{1.0, 1.0, 1.0}, .{0.0, 0.0, 0.0}),
|
||||
.transform = math.Transform.init(.{0.0, 0.0, 0.0}, .{1.0, 1.0, 1.0}, .{0.0, math.rad(45.0), 0.0}),
|
||||
.previous_time = try std.time.Instant.now(),
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -87,6 +89,10 @@ pub fn render(pool: *ecs.Pool) anyerror!void {
|
|||
var renderer = pool.resources.renderer;
|
||||
var camera = pool.resources.camera;
|
||||
|
||||
const now = try std.time.Instant.now();
|
||||
const delta_time: f32 = @as(f32, @floatFromInt(now.since(renderer.previous_time))) / @as(f32, 1_000_000_000.0);
|
||||
renderer.previous_time = now;
|
||||
|
||||
const view_memory = renderer.graphics_pipeline.view_memory;
|
||||
@memcpy(view_memory[0..@sizeOf(math.Matrix)], std.mem.asBytes(&camera.getView()));
|
||||
|
||||
|
|
@ -96,8 +102,10 @@ pub fn render(pool: *ecs.Pool) anyerror!void {
|
|||
view_pos[1] = camera.position[1];
|
||||
view_pos[2] = camera.position[2];
|
||||
|
||||
renderer.transform.rotate(math.rad(10) * delta_time, .{0.0, 1.0, 0.0});
|
||||
|
||||
const transform_memory = renderer.graphics_pipeline.transform_memory;
|
||||
@memcpy(transform_memory[0..@sizeOf(math.Transform)], std.mem.asBytes(&renderer.transform));
|
||||
@memcpy(transform_memory[0..(@sizeOf(math.Transform)-@sizeOf(math.Quaternion))], std.mem.asBytes(&renderer.transform)[0..(@sizeOf(math.Transform)-@sizeOf(math.Quaternion))]);
|
||||
|
||||
try renderer.device.waitFence(renderer.current_frame);
|
||||
const image = try renderer.swapchain.nextImage(renderer.device, renderer.current_frame);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue