4 Commits

Author SHA1 Message Date
Robin Voetter
5559cccea6 add missing vulkan video type in ref_all_decls.zig 2024-11-24 21:00:45 +01:00
Robin Voetter
84b9622f92 Merge pull request #165 from moomba42/master
Bring zig-0.13-compat branch up to date with main
2024-10-12 21:28:44 +02:00
Aleksander Długosz
a6e228cd9f Update ref_all_decls.zig 2024-10-12 02:07:38 +02:00
Aleksander Długosz
fc700b44c0 Update render.zig 2024-10-12 02:06:48 +02:00
2 changed files with 12 additions and 11 deletions

View File

@@ -29,7 +29,7 @@ const preamble =
// Note: Keep in sync with flag_functions // Note: Keep in sync with flag_functions
\\pub fn FlagsMixin(comptime FlagsType: type) type { \\pub fn FlagsMixin(comptime FlagsType: type) type {
\\ return struct { \\ return struct {
\\ pub const IntType = @typeInfo(FlagsType).@"struct".backing_integer.?; \\ pub const IntType = @typeInfo(FlagsType).Struct.backing_integer.?;
\\ pub fn toInt(self: FlagsType) IntType { \\ pub fn toInt(self: FlagsType) IntType {
\\ return @bitCast(self); \\ return @bitCast(self);
\\ } \\ }
@@ -123,7 +123,7 @@ const command_flags_mixin =
\\ pub fn merge(lhs: CommandFlags, rhs: CommandFlags) CommandFlags { \\ pub fn merge(lhs: CommandFlags, rhs: CommandFlags) CommandFlags {
\\ var result: CommandFlags = .{}; \\ var result: CommandFlags = .{};
\\ @setEvalBranchQuota(10_000); \\ @setEvalBranchQuota(10_000);
\\ inline for (@typeInfo(CommandFlags).@"struct".fields) |field| { \\ inline for (@typeInfo(CommandFlags).Struct.fields) |field| {
\\ @field(result, field.name) = @field(lhs, field.name) or @field(rhs, field.name); \\ @field(result, field.name) = @field(lhs, field.name) or @field(rhs, field.name);
\\ } \\ }
\\ return result; \\ return result;
@@ -131,7 +131,7 @@ const command_flags_mixin =
\\ pub fn intersect(lhs: CommandFlags, rhs: CommandFlags) CommandFlags { \\ pub fn intersect(lhs: CommandFlags, rhs: CommandFlags) CommandFlags {
\\ var result: CommandFlags = .{}; \\ var result: CommandFlags = .{};
\\ @setEvalBranchQuota(10_000); \\ @setEvalBranchQuota(10_000);
\\ inline for (@typeInfo(CommandFlags).@"struct".fields) |field| { \\ inline for (@typeInfo(CommandFlags).Struct.fields) |field| {
\\ @field(result, field.name) = @field(lhs, field.name) and @field(rhs, field.name); \\ @field(result, field.name) = @field(lhs, field.name) and @field(rhs, field.name);
\\ } \\ }
\\ return result; \\ return result;
@@ -139,7 +139,7 @@ const command_flags_mixin =
\\ pub fn complement(self: CommandFlags) CommandFlags { \\ pub fn complement(self: CommandFlags) CommandFlags {
\\ var result: CommandFlags = .{}; \\ var result: CommandFlags = .{};
\\ @setEvalBranchQuota(10_000); \\ @setEvalBranchQuota(10_000);
\\ inline for (@typeInfo(CommandFlags).@"struct".fields) |field| { \\ inline for (@typeInfo(CommandFlags).Struct.fields) |field| {
\\ @field(result, field.name) = !@field(self, field.name); \\ @field(result, field.name) = !@field(self, field.name);
\\ } \\ }
\\ return result; \\ return result;
@@ -147,14 +147,14 @@ const command_flags_mixin =
\\ pub fn subtract(lhs: CommandFlags, rhs: CommandFlags) CommandFlags { \\ pub fn subtract(lhs: CommandFlags, rhs: CommandFlags) CommandFlags {
\\ var result: CommandFlags = .{}; \\ var result: CommandFlags = .{};
\\ @setEvalBranchQuota(10_000); \\ @setEvalBranchQuota(10_000);
\\ inline for (@typeInfo(CommandFlags).@"struct".fields) |field| { \\ inline for (@typeInfo(CommandFlags).Struct.fields) |field| {
\\ @field(result, field.name) = @field(lhs, field.name) and !@field(rhs, field.name); \\ @field(result, field.name) = @field(lhs, field.name) and !@field(rhs, field.name);
\\ } \\ }
\\ return result; \\ return result;
\\ } \\ }
\\ pub fn contains(lhs: CommandFlags, rhs: CommandFlags) bool { \\ pub fn contains(lhs: CommandFlags, rhs: CommandFlags) bool {
\\ @setEvalBranchQuota(10_000); \\ @setEvalBranchQuota(10_000);
\\ inline for (@typeInfo(CommandFlags).@"struct".fields) |field| { \\ inline for (@typeInfo(CommandFlags).Struct.fields) |field| {
\\ if (!@field(lhs, field.name) and @field(rhs, field.name)) { \\ if (!@field(lhs, field.name) and @field(rhs, field.name)) {
\\ return false; \\ return false;
\\ } \\ }
@@ -1440,14 +1440,14 @@ fn Renderer(comptime WriterType: type) type {
\\ const Type = std.builtin.Type; \\ const Type = std.builtin.Type;
\\ const fields_len = fields_len: {{ \\ const fields_len = fields_len: {{
\\ var fields_len: u32 = 0; \\ var fields_len: u32 = 0;
\\ for (@typeInfo({0s}CommandFlags).@"struct".fields) |field| {{ \\ for (@typeInfo({0s}CommandFlags).Struct.fields) |field| {{
\\ fields_len += @intCast(@intFromBool(@field(commands, field.name))); \\ fields_len += @intCast(@intFromBool(@field(commands, field.name)));
\\ }} \\ }}
\\ break :fields_len fields_len; \\ break :fields_len fields_len;
\\ }}; \\ }};
\\ var fields: [fields_len]Type.StructField = undefined; \\ var fields: [fields_len]Type.StructField = undefined;
\\ var i: usize = 0; \\ var i: usize = 0;
\\ for (@typeInfo({0s}CommandFlags).@"struct".fields) |field| {{ \\ for (@typeInfo({0s}CommandFlags).Struct.fields) |field| {{
\\ if (@field(commands, field.name)) {{ \\ if (@field(commands, field.name)) {{
\\ const field_tag = std.enums.nameCast(std.meta.FieldEnum({0s}CommandFlags), field.name); \\ const field_tag = std.enums.nameCast(std.meta.FieldEnum({0s}CommandFlags), field.name);
\\ const PfnType = {0s}CommandFlags.CmdType(field_tag); \\ const PfnType = {0s}CommandFlags.CmdType(field_tag);
@@ -1462,7 +1462,7 @@ fn Renderer(comptime WriterType: type) type {
\\ }} \\ }}
\\ }} \\ }}
\\ break :blk @Type(.{{ \\ break :blk @Type(.{{
\\ .@"struct" = .{{ \\ .Struct = .{{
\\ .layout = .auto, \\ .layout = .auto,
\\ .fields = &fields, \\ .fields = &fields,
\\ .decls = &[_]std.builtin.Type.Declaration{{}}, \\ .decls = &[_]std.builtin.Type.Declaration{{}},

View File

@@ -91,6 +91,7 @@ pub const StdVideoEncodeH265ReferenceListsInfo = u32;
pub const StdVideoEncodeH265SliceSegmentHeaderFlags = u32; pub const StdVideoEncodeH265SliceSegmentHeaderFlags = u32;
pub const StdVideoEncodeH265ReferenceInfoFlags = u32; pub const StdVideoEncodeH265ReferenceInfoFlags = u32;
pub const StdVideoEncodeH265ReferenceModificationFlags = u32; pub const StdVideoEncodeH265ReferenceModificationFlags = u32;
pub const StdVideoEncodeAV1OperatingPointInfo = u32;
comptime { comptime {
@setEvalBranchQuota(1000000); @setEvalBranchQuota(1000000);
@@ -99,13 +100,13 @@ comptime {
fn reallyRefAllDecls(comptime T: type) void { fn reallyRefAllDecls(comptime T: type) void {
switch (@typeInfo(T)) { switch (@typeInfo(T)) {
.@"struct", .@"union" => { .Struct, .Union => {
reallyRefAllContainerDecls(T); reallyRefAllContainerDecls(T);
inline for (std.meta.fields(T)) |field| { inline for (std.meta.fields(T)) |field| {
reallyRefAllDecls(field.type); reallyRefAllDecls(field.type);
} }
}, },
.@"enum", .@"opaque" => { .Enum, .Opaque => {
reallyRefAllContainerDecls(T); reallyRefAllContainerDecls(T);
}, },
else => {}, else => {},