From 79dccb4d737451a9574feca2e4860f6e5b53f52b Mon Sep 17 00:00:00 2001 From: Stephen Gutekanst Date: Sun, 21 Apr 2024 21:19:33 -0700 Subject: [PATCH] {gfx,examples}: use core.state().device Signed-off-by: Stephen Gutekanst --- examples/core-custom-entrypoint/Game.zig | 13 +++++-------- examples/glyphs/Game.zig | 9 +++------ examples/sprite/Game.zig | 4 ++-- examples/text/Game.zig | 4 ++-- src/gfx/SpritePipeline.zig | 4 ++-- src/gfx/TextPipeline.zig | 4 ++-- 6 files changed, 16 insertions(+), 22 deletions(-) diff --git a/examples/core-custom-entrypoint/Game.zig b/examples/core-custom-entrypoint/Game.zig index 48ea9c81..0f0e6e41 100644 --- a/examples/core-custom-entrypoint/Game.zig +++ b/examples/core-custom-entrypoint/Game.zig @@ -13,9 +13,9 @@ pub const global_events = .{ title_timer: mach.Timer, pipeline: *gpu.RenderPipeline, -fn init(game: *Mod) !void { +fn init(game: *Mod, core: *mach.Core.Mod) !void { // Create our shader module - const shader_module = mach.core.device.createShaderModuleWGSL("shader.wgsl", @embedFile("shader.wgsl")); + const shader_module = core.state().device.createShaderModuleWGSL("shader.wgsl", @embedFile("shader.wgsl")); defer shader_module.release(); // Blend state describes how rendered colors get blended @@ -44,7 +44,7 @@ fn init(game: *Mod) !void { .entry_point = "vertex_main", }, }; - const pipeline = mach.core.device.createRenderPipeline(&pipeline_descriptor); + const pipeline = core.state().device.createRenderPipeline(&pipeline_descriptor); // Store our render pipeline in our module's state, so we can access it later on. game.init(.{ @@ -59,10 +59,7 @@ pub fn deinit(game: *Mod) void { } // TODO(important): remove need for returning an error here -fn tick( - core: *mach.Core.Mod, - game: *Mod, -) !void { +fn tick(core: *mach.Core.Mod, game: *Mod) !void { // TODO(important): event polling should occur in mach.Core module and get fired as ECS event. var iter = mach.core.pollEvents(); while (iter.next()) |event| { @@ -78,7 +75,7 @@ fn tick( // Create a command encoder const label = @tagName(name) ++ ".tick"; - const encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + const encoder = core.state().device.createCommandEncoder(&.{ .label = label }); defer encoder.release(); // Begin render pass diff --git a/examples/glyphs/Game.zig b/examples/glyphs/Game.zig index ce04b560..a71d74f8 100644 --- a/examples/glyphs/Game.zig +++ b/examples/glyphs/Game.zig @@ -42,10 +42,7 @@ pub const local_events = .{ .end_frame = .{ .handler = endFrame }, }; -fn init( - glyphs: *Glyphs.Mod, - game: *Mod, -) !void { +fn init(glyphs: *Glyphs.Mod, game: *Mod) !void { // Prepare which glyphs we will render glyphs.send(.init, .{}); glyphs.send(.prepare, .{&[_]u21{ '?', '!', 'a', 'b', '#', '@', '%', '$', '&', '^', '*', '+', '=', '<', '>', '/', ':', ';', 'Q', '~' }}); @@ -203,7 +200,7 @@ fn tick( // Create a command encoder for this frame const label = @tagName(name) ++ ".tick"; - game.state().frame_encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + game.state().frame_encoder = core.state().device.createCommandEncoder(&.{ .label = label }); // Grab the back buffer of the swapchain const back_buffer_view = mach.core.swap_chain.getCurrentTextureView().?; @@ -218,7 +215,7 @@ fn tick( .store_op = .store, }}; // TODO: can we eliminate this assignment - game.state().frame_encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + game.state().frame_encoder = core.state().device.createCommandEncoder(&.{ .label = label }); game.state().frame_render_pass = game.state().frame_encoder.beginRenderPass(&gpu.RenderPassDescriptor.init(.{ .label = label, .color_attachments = &color_attachments, diff --git a/examples/sprite/Game.zig b/examples/sprite/Game.zig index 4281deb4..238e8d33 100644 --- a/examples/sprite/Game.zig +++ b/examples/sprite/Game.zig @@ -184,7 +184,7 @@ fn tick( // Create a command encoder for this frame const label = @tagName(name) ++ ".tick"; - game.state().frame_encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + game.state().frame_encoder = core.state().device.createCommandEncoder(&.{ .label = label }); // Grab the back buffer of the swapchain const back_buffer_view = mach.core.swap_chain.getCurrentTextureView().?; @@ -199,7 +199,7 @@ fn tick( .store_op = .store, }}; // TODO: can we eliminate this assignment - game.state().frame_encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + game.state().frame_encoder = core.state().device.createCommandEncoder(&.{ .label = label }); game.state().frame_render_pass = game.state().frame_encoder.beginRenderPass(&gpu.RenderPassDescriptor.init(.{ .label = label, .color_attachments = &color_attachments, diff --git a/examples/text/Game.zig b/examples/text/Game.zig index 34ed97b2..e5e17ac3 100644 --- a/examples/text/Game.zig +++ b/examples/text/Game.zig @@ -228,7 +228,7 @@ fn tick( // Create a command encoder for this frame const label = @tagName(name) ++ ".tick"; - game.state().frame_encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + game.state().frame_encoder = core.state().device.createCommandEncoder(&.{ .label = label }); // Grab the back buffer of the swapchain const back_buffer_view = mach.core.swap_chain.getCurrentTextureView().?; @@ -242,7 +242,7 @@ fn tick( .load_op = .clear, .store_op = .store, }}; - game.state().frame_encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + game.state().frame_encoder = core.state().device.createCommandEncoder(&.{ .label = label }); game.state().frame_render_pass = game.state().frame_encoder.beginRenderPass(&gpu.RenderPassDescriptor.init(.{ .label = label, .color_attachments = &color_attachments, diff --git a/src/gfx/SpritePipeline.zig b/src/gfx/SpritePipeline.zig index 81525408..21d6d110 100644 --- a/src/gfx/SpritePipeline.zig +++ b/src/gfx/SpritePipeline.zig @@ -325,9 +325,9 @@ fn buildPipeline( try sprite_pipeline.set(pipeline_id, .num_sprites, 0); } -fn preRender(sprite_pipeline: *Mod) void { +fn preRender(sprite_pipeline: *Mod, core: *mach.Core.Mod) void { const label = @tagName(name) ++ ".preRender"; - const encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + const encoder = core.state().device.createCommandEncoder(&.{ .label = label }); defer encoder.release(); var archetypes_iter = sprite_pipeline.entities.query(.{ .all = &.{ diff --git a/src/gfx/TextPipeline.zig b/src/gfx/TextPipeline.zig index 24963ba9..aac97b18 100644 --- a/src/gfx/TextPipeline.zig +++ b/src/gfx/TextPipeline.zig @@ -350,9 +350,9 @@ fn buildPipeline( try text_pipeline.set(pipeline_id, .num_glyphs, 0); } -fn preRender(text_pipeline: *Mod) void { +fn preRender(text_pipeline: *Mod, core: *mach.Core.Mod) void { const label = @tagName(name) ++ ".preRender"; - const encoder = mach.core.device.createCommandEncoder(&.{ .label = label }); + const encoder = core.state().device.createCommandEncoder(&.{ .label = label }); defer encoder.release(); var archetypes_iter = text_pipeline.entities.query(.{ .all = &.{