big architectural rework
This commit is contained in:
@@ -1,13 +1,15 @@
|
||||
const std = @import("std");
|
||||
const vk = @import("vulkan");
|
||||
|
||||
pub const icd = @import("icd.zig");
|
||||
pub const dispatchable = @import("dispatchable.zig");
|
||||
pub const lib_vulkan = @import("lib_vulkan.zig");
|
||||
|
||||
pub const Dispatchable = @import("Dispatchable.zig").Dispatchable;
|
||||
pub const VkError = @import("error_set.zig").VkError;
|
||||
|
||||
pub const Instance = @import("Instance.zig");
|
||||
pub const PhysicalDevice = @import("PhysicalDevice.zig");
|
||||
pub const VulkanAllocator = @import("VulkanAllocator.zig");
|
||||
pub const Device = @import("Device.zig");
|
||||
//pub const Device = @import("Device.zig");
|
||||
|
||||
pub const VULKAN_VENDOR_ID = @typeInfo(vk.VendorId).@"enum".fields[@typeInfo(vk.VendorId).@"enum".fields.len - 1].value + 1;
|
||||
pub const DRIVER_LOGS_ENV_NAME = "DRIVER_LOGS";
|
||||
@@ -36,17 +38,8 @@ pub fn retrieveDriverDataAs(handle: anytype, comptime T: type) !*T {
|
||||
return @ptrCast(@alignCast(@field(handle, "driver_data")));
|
||||
}
|
||||
|
||||
const global_pfn_map = std.StaticStringMap(vk.PfnVoidFunction).initComptime(.{
|
||||
.{ "vkGetInstanceProcAddr", @as(vk.PfnVoidFunction, @ptrCast(&icd.getInstanceProcAddr)) },
|
||||
.{ "vkCreateInstance", @as(vk.PfnVoidFunction, @ptrCast(&Instance.create)) },
|
||||
});
|
||||
|
||||
pub export fn vkGetInstanceProcAddr(p_instance: vk.Instance, p_name: ?[*:0]const u8) callconv(vk.vulkan_call_conv) vk.PfnVoidFunction {
|
||||
if (p_name == null) {
|
||||
return null;
|
||||
}
|
||||
const name = std.mem.span(p_name.?);
|
||||
return icd.getInstanceProcAddr(global_pfn_map, p_instance, name);
|
||||
comptime {
|
||||
_ = lib_vulkan;
|
||||
}
|
||||
|
||||
test {
|
||||
|
||||
Reference in New Issue
Block a user