forked from mirror/vulkan-zig
update to 0.15.0-dev.1518+749f10af4
This commit is contained in:
@@ -457,8 +457,8 @@ fn parseFnPtrSuffix(allocator: Allocator, xctok: *XmlCTokenizer, return_type: Ty
|
||||
// There is no good way to estimate the number of parameters beforehand.
|
||||
// Fortunately, there are usually a relatively low number of parameters to a function pointer,
|
||||
// so an ArrayList backed by an arena allocator is good enough.
|
||||
var params = std.ArrayList(registry.Command.Param).init(allocator);
|
||||
try params.append(.{
|
||||
var params: std.ArrayList(registry.Command.Param) = .empty;
|
||||
try params.append(allocator, .{
|
||||
.name = first_param.name.?,
|
||||
.param_type = first_param.decl_type,
|
||||
.is_buffer_len = false,
|
||||
@@ -473,7 +473,7 @@ fn parseFnPtrSuffix(allocator: Allocator, xctok: *XmlCTokenizer, return_type: Ty
|
||||
}
|
||||
|
||||
const decl = try parseDeclaration(allocator, xctok, ptrs_optional);
|
||||
try params.append(.{
|
||||
try params.append(allocator, .{
|
||||
.name = decl.name orelse return error.MissingTypeIdentifier,
|
||||
.param_type = decl.decl_type,
|
||||
.is_buffer_len = false,
|
||||
@@ -482,7 +482,7 @@ fn parseFnPtrSuffix(allocator: Allocator, xctok: *XmlCTokenizer, return_type: Ty
|
||||
}
|
||||
|
||||
_ = try xctok.nextNoEof();
|
||||
command_ptr.decl_type.command_ptr.params = try params.toOwnedSlice();
|
||||
command_ptr.decl_type.command_ptr.params = try params.toOwnedSlice(allocator);
|
||||
return command_ptr;
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ const EnumFieldMerger = struct {
|
||||
fn putEnumExtension(self: *EnumFieldMerger, enum_name: []const u8, field: reg.Enum.Field) !void {
|
||||
const res = try self.enum_extensions.getOrPut(self.arena, enum_name);
|
||||
if (!res.found_existing) {
|
||||
res.value_ptr.* = std.ArrayListUnmanaged(reg.Enum.Field){};
|
||||
res.value_ptr.* = .empty;
|
||||
}
|
||||
|
||||
try res.value_ptr.append(self.arena, field);
|
||||
|
||||
@@ -28,11 +28,11 @@ pub fn parseXml(
|
||||
|
||||
const allocator = arena.allocator();
|
||||
|
||||
var decls: std.ArrayListUnmanaged(registry.Declaration) = .{};
|
||||
var api_constants: std.ArrayListUnmanaged(registry.ApiConstant) = .{};
|
||||
var tags: std.ArrayListUnmanaged(registry.Tag) = .{};
|
||||
var features: std.ArrayListUnmanaged(registry.Feature) = .{};
|
||||
var extensions: std.ArrayListUnmanaged(registry.Extension) = .{};
|
||||
var decls: std.ArrayList(registry.Declaration) = .empty;
|
||||
var api_constants: std.ArrayList(registry.ApiConstant) = .empty;
|
||||
var tags: std.ArrayList(registry.Tag) = .empty;
|
||||
var features: std.ArrayList(registry.Feature) = .empty;
|
||||
var extensions: std.ArrayList(registry.Extension) = .empty;
|
||||
|
||||
try parseDeclarations(allocator, root, api, &decls);
|
||||
try parseApiConstants(allocator, root, api, &api_constants);
|
||||
@@ -66,7 +66,7 @@ fn parseDeclarations(
|
||||
allocator: Allocator,
|
||||
root: *xml.Element,
|
||||
api: registry.Api,
|
||||
decls: *std.ArrayListUnmanaged(registry.Declaration),
|
||||
decls: *std.ArrayList(registry.Declaration),
|
||||
) !void {
|
||||
const types_elem = root.findChildByTag("types") orelse return error.InvalidRegistry;
|
||||
try decls.ensureUnusedCapacity(allocator, types_elem.children.len);
|
||||
@@ -84,7 +84,7 @@ fn parseTypes(
|
||||
allocator: Allocator,
|
||||
types_elem: *xml.Element,
|
||||
api: registry.Api,
|
||||
decls: *std.ArrayListUnmanaged(registry.Declaration),
|
||||
decls: *std.ArrayList(registry.Declaration),
|
||||
) !void {
|
||||
var it = types_elem.findChildrenByTag("type");
|
||||
while (it.next()) |ty| {
|
||||
@@ -429,7 +429,7 @@ fn parseEnums(
|
||||
allocator: Allocator,
|
||||
root: *xml.Element,
|
||||
api: registry.Api,
|
||||
decls: *std.ArrayListUnmanaged(registry.Declaration),
|
||||
decls: *std.ArrayList(registry.Declaration),
|
||||
) !void {
|
||||
var it = root.findChildrenByTag("enums");
|
||||
while (it.next()) |enums| {
|
||||
@@ -519,7 +519,7 @@ fn parseCommands(
|
||||
allocator: Allocator,
|
||||
commands_elem: *xml.Element,
|
||||
api: registry.Api,
|
||||
decls: *std.ArrayListUnmanaged(registry.Declaration),
|
||||
decls: *std.ArrayList(registry.Declaration),
|
||||
) !void {
|
||||
var it = commands_elem.findChildrenByTag("command");
|
||||
while (it.next()) |elem| {
|
||||
@@ -630,7 +630,7 @@ fn parseApiConstants(
|
||||
allocator: Allocator,
|
||||
root: *xml.Element,
|
||||
api: registry.Api,
|
||||
api_constants: *std.ArrayListUnmanaged(registry.ApiConstant),
|
||||
api_constants: *std.ArrayList(registry.ApiConstant),
|
||||
) !void {
|
||||
const maybe_enums = blk: {
|
||||
var it = root.findChildrenByTag("enums");
|
||||
@@ -672,7 +672,7 @@ fn parseDefines(
|
||||
allocator: Allocator,
|
||||
types: *xml.Element,
|
||||
api: registry.Api,
|
||||
api_constants: *std.ArrayListUnmanaged(registry.ApiConstant),
|
||||
api_constants: *std.ArrayList(registry.ApiConstant),
|
||||
) !void {
|
||||
var it = types.findChildrenByTag("type");
|
||||
while (it.next()) |ty| {
|
||||
@@ -703,7 +703,7 @@ fn parseDefines(
|
||||
fn parseTags(
|
||||
allocator: Allocator,
|
||||
root: *xml.Element,
|
||||
tags: *std.ArrayListUnmanaged(registry.Tag),
|
||||
tags: *std.ArrayList(registry.Tag),
|
||||
) !void {
|
||||
var tags_elem = root.findChildByTag("tags") orelse return;
|
||||
try tags.ensureUnusedCapacity(allocator, tags_elem.children.len);
|
||||
@@ -717,7 +717,7 @@ fn parseTags(
|
||||
}
|
||||
}
|
||||
|
||||
fn parseFeatures(allocator: Allocator, root: *xml.Element, api: registry.Api, features: *std.ArrayListUnmanaged(registry.Feature)) !void {
|
||||
fn parseFeatures(allocator: Allocator, root: *xml.Element, api: registry.Api, features: *std.ArrayList(registry.Feature)) !void {
|
||||
var it = root.findChildrenByTag("feature");
|
||||
while (it.next()) |feature| {
|
||||
if (!requiredByApi(feature, api))
|
||||
@@ -881,7 +881,7 @@ fn parseExtensions(
|
||||
allocator: Allocator,
|
||||
root: *xml.Element,
|
||||
api: registry.Api,
|
||||
extensions: *std.ArrayListUnmanaged(registry.Extension),
|
||||
extensions: *std.ArrayList(registry.Extension),
|
||||
) !void {
|
||||
const extensions_elem = root.findChildByTag("extensions") orelse return error.InvalidRegistry;
|
||||
try extensions.ensureUnusedCapacity(allocator, extensions_elem.children.len);
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
const std = @import("std");
|
||||
const reg = @import("registry.zig");
|
||||
const id_render = @import("../id_render.zig");
|
||||
const cparse = @import("c_parse.zig");
|
||||
const mem = std.mem;
|
||||
const Allocator = mem.Allocator;
|
||||
|
||||
const id_render = @import("../id_render.zig");
|
||||
const CaseStyle = id_render.CaseStyle;
|
||||
const IdRenderer = id_render.IdRenderer;
|
||||
const cparse = @import("c_parse.zig");
|
||||
const reg = @import("registry.zig");
|
||||
|
||||
const preamble =
|
||||
\\// This file is generated from the Khronos Vulkan XML API registry by vulkan-zig.
|
||||
@@ -1810,12 +1811,13 @@ const Renderer = struct {
|
||||
}
|
||||
|
||||
fn extractReturns(self: *Self, command: reg.Command) ![]const ReturnValue {
|
||||
var returns = std.ArrayList(ReturnValue).init(self.allocator);
|
||||
const allocator = self.allocator;
|
||||
var returns: std.ArrayList(ReturnValue) = .empty;
|
||||
|
||||
if (command.return_type.* == .name) {
|
||||
const return_name = command.return_type.name;
|
||||
if (!mem.eql(u8, return_name, "void") and !mem.eql(u8, return_name, "VkResult")) {
|
||||
try returns.append(.{
|
||||
try returns.append(allocator, .{
|
||||
.name = "return_value",
|
||||
.return_value_type = command.return_type.*,
|
||||
.origin = .inner_return_value,
|
||||
@@ -1828,7 +1830,7 @@ const Renderer = struct {
|
||||
return error.InvalidRegistry;
|
||||
}
|
||||
|
||||
try returns.append(.{
|
||||
try returns.append(allocator, .{
|
||||
.name = "result",
|
||||
.return_value_type = command.return_type.*,
|
||||
.origin = .inner_return_value,
|
||||
@@ -1839,7 +1841,7 @@ const Renderer = struct {
|
||||
|
||||
for (command.params) |param| {
|
||||
if ((try self.classifyParam(param)) == .out_pointer) {
|
||||
try returns.append(.{
|
||||
try returns.append(allocator, .{
|
||||
.name = derefName(param.name),
|
||||
.return_value_type = param.param_type.pointer.child.*,
|
||||
.origin = .parameter,
|
||||
@@ -1847,7 +1849,7 @@ const Renderer = struct {
|
||||
}
|
||||
}
|
||||
|
||||
return try returns.toOwnedSlice();
|
||||
return try returns.toOwnedSlice(allocator);
|
||||
}
|
||||
|
||||
fn renderReturnStructName(self: *Self, command_name: []const u8) !void {
|
||||
|
||||
Reference in New Issue
Block a user