From b3d06098105cc8b8e694ca6f5e9aad04a01db153 Mon Sep 17 00:00:00 2001 From: Matthew Date: Fri, 15 Aug 2025 06:47:06 +1000 Subject: [PATCH] more fixes --- vulkan_includes.c | 2 ++ vulkan_util.d | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/vulkan_includes.c b/vulkan_includes.c index 88c7334..ad05021 100644 --- a/vulkan_includes.c +++ b/vulkan_includes.c @@ -1,3 +1,5 @@ +#pragma attribute(push, nogc, nothrow) + #ifdef __linux__ # include # include diff --git a/vulkan_util.d b/vulkan_util.d index 2b81566..fc97334 100644 --- a/vulkan_util.d +++ b/vulkan_util.d @@ -23,6 +23,39 @@ const DEFAULT_ALIGNMENT = (void *).sizeof * 2; version(linux) { import core.sys.posix.sys.mman; +import core.sys.posix.dlfcn; + +struct Library +{ + void* ptr; +}; + +struct Function +{ + void* ptr; +}; + +Library LoadLibrary(string name) +{ + Library lib = { + ptr: null, + }; + + lib.ptr = dlopen(name.ptr, RTLD_NOW); + + return lib; +}; + +Function LoadFunction(Library lib, string name) +{ + Function fn = { + ptr: null, + }; + + fn.ptr = dlsym(lib.ptr, name.ptr); + + return fn; +}; void* MemAlloc(u64 size)