diff --git a/examples/graphics_context.zig b/examples/graphics_context.zig index a31aaa3..ea0c1b4 100644 --- a/examples/graphics_context.zig +++ b/examples/graphics_context.zig @@ -253,7 +253,7 @@ fn allocateQueues(instance: Instance, pdev: vk.PhysicalDevice, allocator: Alloca graphics_family = family; } - if (present_family == null and (try instance.getPhysicalDeviceSurfaceSupportKHR(pdev, family, surface)) == vk.TRUE) { + if (present_family == null and (try instance.getPhysicalDeviceSurfaceSupportKHR(pdev, family, surface)) == .true) { present_family = family; } } diff --git a/examples/swapchain.zig b/examples/swapchain.zig index c4707aa..cace1f4 100644 --- a/examples/swapchain.zig +++ b/examples/swapchain.zig @@ -60,7 +60,7 @@ pub const Swapchain = struct { .pre_transform = caps.current_transform, .composite_alpha = .{ .opaque_bit_khr = true }, .present_mode = present_mode, - .clipped = vk.TRUE, + .clipped = .true, .old_swapchain = old_handle, }, null) catch { return error.SwapchainCreationFailed; @@ -261,7 +261,7 @@ const SwapImage = struct { } fn waitForFence(self: SwapImage, gc: *const GraphicsContext) !void { - _ = try gc.dev.waitForFences(1, @ptrCast(&self.frame_fence), vk.TRUE, std.math.maxInt(u64)); + _ = try gc.dev.waitForFences(1, @ptrCast(&self.frame_fence), .true, std.math.maxInt(u64)); } }; diff --git a/examples/triangle.zig b/examples/triangle.zig index 8817dbe..b8314d5 100644 --- a/examples/triangle.zig +++ b/examples/triangle.zig @@ -414,7 +414,7 @@ fn createPipeline( const piasci = vk.PipelineInputAssemblyStateCreateInfo{ .topology = .triangle_list, - .primitive_restart_enable = vk.FALSE, + .primitive_restart_enable = .false, }; const pvsci = vk.PipelineViewportStateCreateInfo{ @@ -425,12 +425,12 @@ fn createPipeline( }; const prsci = vk.PipelineRasterizationStateCreateInfo{ - .depth_clamp_enable = vk.FALSE, - .rasterizer_discard_enable = vk.FALSE, + .depth_clamp_enable = .false, + .rasterizer_discard_enable = .false, .polygon_mode = .fill, .cull_mode = .{ .back_bit = true }, .front_face = .clockwise, - .depth_bias_enable = vk.FALSE, + .depth_bias_enable = .false, .depth_bias_constant_factor = 0, .depth_bias_clamp = 0, .depth_bias_slope_factor = 0, @@ -439,14 +439,14 @@ fn createPipeline( const pmsci = vk.PipelineMultisampleStateCreateInfo{ .rasterization_samples = .{ .@"1_bit" = true }, - .sample_shading_enable = vk.FALSE, + .sample_shading_enable = .false, .min_sample_shading = 1, - .alpha_to_coverage_enable = vk.FALSE, - .alpha_to_one_enable = vk.FALSE, + .alpha_to_coverage_enable = .false, + .alpha_to_one_enable = .false, }; const pcbas = vk.PipelineColorBlendAttachmentState{ - .blend_enable = vk.FALSE, + .blend_enable = .false, .src_color_blend_factor = .one, .dst_color_blend_factor = .zero, .color_blend_op = .add, @@ -457,7 +457,7 @@ fn createPipeline( }; const pcbsci = vk.PipelineColorBlendStateCreateInfo{ - .logic_op_enable = vk.FALSE, + .logic_op_enable = .false, .logic_op = .copy, .attachment_count = 1, .p_attachments = @ptrCast(&pcbas), diff --git a/src/vulkan/render.zig b/src/vulkan/render.zig index 12aec79..a3982cc 100644 --- a/src/vulkan/render.zig +++ b/src/vulkan/render.zig @@ -848,6 +848,10 @@ const Renderer = struct { } fn renderDecl(self: *Self, decl: reg.Declaration) !void { + if (try self.renderSpecial(decl.name)) { + return; + } + switch (decl.decl_type) { .container => |container| try self.renderContainer(decl.name, container), .enumeration => |enumeration| try self.renderEnumeration(decl.name, enumeration), @@ -861,10 +865,27 @@ const Renderer = struct { } } - fn renderSpecialContainer(self: *Self, name: []const u8) !bool { + fn renderAssign(self: *Self, name: []const u8) !void { + try self.writer.writeAll("pub const "); + try self.renderName(name); + try self.writer.writeAll(" = "); + } + + fn renderSpecial(self: *Self, name: []const u8) !bool { const maybe_author = self.id_renderer.getAuthorTag(name); const basename = self.id_renderer.stripAuthorTag(name); - if (std.mem.eql(u8, basename, "VkAccelerationStructureInstance")) { + if (std.mem.eql(u8, basename, "VkBool32")) { + try self.renderAssign(name); + try self.writer.writeAll( + \\enum(i32) { + \\ false, + \\ true, + \\ _, + \\}; + \\ + ); + } else if (std.mem.eql(u8, basename, "VkAccelerationStructureInstance")) { + try self.renderAssign(name); try self.writer.print( \\extern struct {{ \\ transform: TransformMatrix{s}, @@ -882,8 +903,8 @@ const Renderer = struct { , .{maybe_author orelse ""}, ); - return true; } else if (std.mem.eql(u8, basename, "VkAccelerationStructureSRTMotionInstance")) { + try self.renderAssign(name); try self.writer.print( \\extern struct {{ \\ transform_t0: SRTData{0s}, @@ -902,8 +923,8 @@ const Renderer = struct { , .{maybe_author orelse ""}, ); - return true; } else if (std.mem.eql(u8, basename, "VkAccelerationStructureMatrixMotionInstance")) { + try self.renderAssign(name); try self.writer.print( \\extern struct {{ \\ transform_t0: TransformMatrix{0s}, @@ -922,8 +943,8 @@ const Renderer = struct { , .{maybe_author orelse ""}, ); - return true; } else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureBuildTriangleClusterInfo")) { + try self.renderAssign(name); try self.writer.print( \\extern struct {{ \\ cluster_id: u32, @@ -949,8 +970,8 @@ const Renderer = struct { , .{maybe_author orelse ""}, ); - return true; } else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureBuildTriangleClusterTemplateInfo")) { + try self.renderAssign(name); try self.writer.print( \\extern struct {{ \\ cluster_id: u32, @@ -977,8 +998,8 @@ const Renderer = struct { , .{maybe_author orelse ""}, ); - return true; } else if (std.mem.eql(u8, basename, "VkClusterAccelerationStructureInstantiateClusterInfo")) { + try self.renderAssign(name); try self.writer.print( \\extern struct {{ \\ cluster_id_offset: u32, @@ -992,10 +1013,11 @@ const Renderer = struct { , .{maybe_author orelse ""}, ); - return true; + } else { + return false; } - return false; + return true; } fn renderSimpleBitContainer(self: *Self, container: reg.Container) !bool { @@ -1051,10 +1073,6 @@ const Renderer = struct { return; } - if (try self.renderSpecialContainer(name)) { - return; - } - for (container.fields) |field| { if (field.bits != null) { return error.UnhandledBitfieldStruct; @@ -1109,7 +1127,7 @@ const Renderer = struct { try self.writer.writeAll(" = ."); try self.writeIdentifierWithCase(.snake, stype["VK_STRUCTURE_TYPE_".len..]); } else if (field.field_type == .name and mem.eql(u8, "VkBool32", field.field_type.name) and isFeatureStruct(name, container.extends)) { - try self.writer.writeAll(" = FALSE"); + try self.writer.writeAll(" = .false"); } else if (field.is_optional) { if (field.field_type == .name) { const field_type_name = field.field_type.name; @@ -1120,6 +1138,8 @@ const Renderer = struct { try self.writer.writeAll(" = .{}"); } else if (decl_type == .typedef and decl_type.typedef == .command_ptr) { try self.writer.writeAll(" = null"); + } else if (mem.eql(u8, "VkBool32", field.field_type.name)) { + try self.writer.writeAll(" = .false"); } else if ((decl_type == .typedef and builtin_types.has(decl_type.typedef.name)) or (decl_type == .foreign and builtin_types.has(field_type_name))) {