From 93101d595ffe6232b62054d2a6efbd9a48f7a9df Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Wed, 9 Dec 2020 01:30:31 +0100 Subject: [PATCH] Only use stdcall when on 32-bit windows (https://github.com/ziglang/zig/issues/7337) --- examples/c.zig | 6 +++--- generator/vulkan/render.zig | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/c.zig b/examples/c.zig index 1b472af..713a18c 100644 --- a/examples/c.zig +++ b/examples/c.zig @@ -8,6 +8,6 @@ const vk = @import("vulkan"); // usually the GLFW vulkan functions are exported if Vulkan is included, // but since thats not the case here, they are manually imported. -pub extern "c" fn glfwGetInstanceProcAddress(instance: vk.Instance, procname: [*:0]const u8) vk.PfnVoidFunction; -pub extern "c" fn glfwGetPhysicalDevicePresentationSupport(instance: vk.Instance, pdev: vk.PhysicalDevice, queuefamily: u32) c_int; -pub extern "c" fn glfwCreateWindowSurface(instance: vk.Instance, window: *GLFWwindow, allocation_callbacks: ?*const vk.AllocationCallbacks, surface: *vk.SurfaceKHR) vk.Result; +pub extern fn glfwGetInstanceProcAddress(instance: vk.Instance, procname: [*:0]const u8) vk.PfnVoidFunction; +pub extern fn glfwGetPhysicalDevicePresentationSupport(instance: vk.Instance, pdev: vk.PhysicalDevice, queuefamily: u32) c_int; +pub extern fn glfwCreateWindowSurface(instance: vk.Instance, window: *GLFWwindow, allocation_callbacks: ?*const vk.AllocationCallbacks, surface: *vk.SurfaceKHR) vk.Result; diff --git a/generator/vulkan/render.zig b/generator/vulkan/render.zig index 2678d18..4fbc423 100644 --- a/generator/vulkan/render.zig +++ b/generator/vulkan/render.zig @@ -14,7 +14,7 @@ const preamble = \\const std = @import("std"); \\const builtin = @import("builtin"); \\const root = @import("root"); - \\pub const vulkan_call_conv: builtin.CallingConvention = if (builtin.os.tag == .windows) + \\pub const vulkan_call_conv: builtin.CallingConvention = if (builtin.os.tag == .windows and builtin.os.arch == .i386) \\ .Stdcall \\ else if (builtin.abi == .android and (builtin.cpu.arch.isARM() or builtin.cpu.arch.isThumb()) and builtin.Target.arm.featureSetHas(builtin.cpu.features, .has_v7) and builtin.cpu.arch.ptrBitWidth() == 32) \\ // On Android 32-bit ARM targets, Vulkan functions use the "hardfloat"