diff options
author | lawl <github@dumbinter.net> | 2022-01-06 10:44:13 +0200 |
---|---|---|
committer | lawl <github@dumbinter.net> | 2022-01-06 16:04:34 +0530 |
commit | 8c34658b64f1efeab501bef57d2bfa9579fe34e2 (patch) | |
tree | 3fef93871214bc85c89ffcd04c6782c8aa3862ce /vendor/gioui.org/internal/vk/vulkan_android.go | |
parent | 38787e4195f2a34d7ec4421caf17cb99bc31fa2b (diff) | |
download | noisetorch-8c34658b64f1efeab501bef57d2bfa9579fe34e2.tar.gz noisetorch-8c34658b64f1efeab501bef57d2bfa9579fe34e2.zip |
Chore: Upgrade nucular GUI dependency
Diffstat (limited to 'vendor/gioui.org/internal/vk/vulkan_android.go')
-rw-r--r-- | vendor/gioui.org/internal/vk/vulkan_android.go | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/gioui.org/internal/vk/vulkan_android.go b/vendor/gioui.org/internal/vk/vulkan_android.go new file mode 100644 index 0000000..143146e --- /dev/null +++ b/vendor/gioui.org/internal/vk/vulkan_android.go @@ -0,0 +1,45 @@ +// SPDX-License-Identifier: Unlicense OR MIT + +//go:build !nowayland +// +build !nowayland + +package vk + +/* +#define VK_USE_PLATFORM_ANDROID_KHR +#define VK_NO_PROTOTYPES 1 +#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; +#include <android/native_window.h> +#include <vulkan/vulkan.h> + +static VkResult vkCreateAndroidSurfaceKHR(PFN_vkCreateAndroidSurfaceKHR f, VkInstance instance, const VkAndroidSurfaceCreateInfoKHR *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface) { + return f(instance, pCreateInfo, pAllocator, pSurface); +} +*/ +import "C" +import ( + "fmt" + "unsafe" +) + +var wlFuncs struct { + vkCreateAndroidSurfaceKHR C.PFN_vkCreateAndroidSurfaceKHR +} + +func init() { + loadFuncs = append(loadFuncs, func(dlopen func(name string) *[0]byte) { + wlFuncs.vkCreateAndroidSurfaceKHR = dlopen("vkCreateAndroidSurfaceKHR") + }) +} + +func CreateAndroidSurface(inst Instance, window unsafe.Pointer) (Surface, error) { + inf := C.VkAndroidSurfaceCreateInfoKHR{ + sType: C.VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, + window: (*C.ANativeWindow)(window), + } + var surf Surface + if err := vkErr(C.vkCreateAndroidSurfaceKHR(wlFuncs.vkCreateAndroidSurfaceKHR, inst, &inf, nil, &surf)); err != nil { + return 0, fmt.Errorf("vulkan: vkCreateAndroidSurfaceKHR: %w", err) + } + return surf, nil +} |