mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 14:48:47 +00:00
Merge pull request #4639 from flga/vulkan_xlib_xcb
`vendor:vulkan` Add support for xlib and xcb
This commit is contained in:
+28
-6
@@ -16,6 +16,8 @@ file_and_urls = [
|
|||||||
("vulkan_macos.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_macos.h', False),
|
("vulkan_macos.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_macos.h', False),
|
||||||
("vulkan_ios.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_ios.h', False),
|
("vulkan_ios.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_ios.h', False),
|
||||||
("vulkan_wayland.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_wayland.h', False),
|
("vulkan_wayland.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_wayland.h', False),
|
||||||
|
("vulkan_xlib.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_xlib.h', False),
|
||||||
|
("vulkan_xcb.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vulkan/vulkan_xcb.h', False),
|
||||||
# Vulkan Video
|
# Vulkan Video
|
||||||
("vulkan_video_codec_av1std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std.h', False),
|
("vulkan_video_codec_av1std.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std.h', False),
|
||||||
("vulkan_video_codec_av1std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std_decode.h', False),
|
("vulkan_video_codec_av1std_decode.h", 'https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/main/include/vk_video/vulkan_video_codec_av1std_decode.h', False),
|
||||||
@@ -46,16 +48,17 @@ def no_vk(t):
|
|||||||
t = t.replace('PFN_', 'Proc')
|
t = t.replace('PFN_', 'Proc')
|
||||||
t = t.replace('PFN_', 'Proc')
|
t = t.replace('PFN_', 'Proc')
|
||||||
|
|
||||||
t = re.sub('(?:Vk|VK_)?(\w+)', '\\1', t)
|
t = re.sub('(?:Vk|VK_)?(\\w+)', '\\1', t)
|
||||||
|
|
||||||
# Vulkan Video
|
# Vulkan Video
|
||||||
t = re.sub('(?:Std|STD_|VK_STD)?(\w+)', '\\1', t)
|
t = re.sub('(?:Std|STD_|VK_STD)?(\\w+)', '\\1', t)
|
||||||
return t
|
return t
|
||||||
|
|
||||||
OPAQUE_STRUCTS = """
|
OPAQUE_STRUCTS = """
|
||||||
wl_surface :: struct {} // Opaque struct defined by Wayland
|
wl_surface :: struct {} // Opaque struct defined by Wayland
|
||||||
wl_display :: struct {} // Opaque struct defined by Wayland
|
wl_display :: struct {} // Opaque struct defined by Wayland
|
||||||
IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics framework
|
xcb_connection_t :: struct {} // Opaque struct defined by xcb
|
||||||
|
IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics framework
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def convert_type(t, prev_name, curr_name):
|
def convert_type(t, prev_name, curr_name):
|
||||||
@@ -91,6 +94,9 @@ def convert_type(t, prev_name, curr_name):
|
|||||||
"struct BaseInStructure": "BaseInStructure",
|
"struct BaseInStructure": "BaseInStructure",
|
||||||
"struct wl_display": "wl_display",
|
"struct wl_display": "wl_display",
|
||||||
"struct wl_surface": "wl_surface",
|
"struct wl_surface": "wl_surface",
|
||||||
|
"Display": "XlibDisplay",
|
||||||
|
"Window": "XlibWindow",
|
||||||
|
"VisualID": "XlibVisualID",
|
||||||
'v': '',
|
'v': '',
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -894,6 +900,10 @@ import "core:c"
|
|||||||
|
|
||||||
import win32 "core:sys/windows"
|
import win32 "core:sys/windows"
|
||||||
_ :: win32
|
_ :: win32
|
||||||
|
|
||||||
|
import "vendor:x11/xlib"
|
||||||
|
_ :: xlib
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
when ODIN_OS == .Windows {
|
||||||
\tHINSTANCE :: win32.HINSTANCE
|
\tHINSTANCE :: win32.HINSTANCE
|
||||||
\tHWND :: win32.HWND
|
\tHWND :: win32.HWND
|
||||||
@@ -919,7 +929,19 @@ when ODIN_OS == .Windows {
|
|||||||
\t}
|
\t}
|
||||||
}
|
}
|
||||||
|
|
||||||
CAMetalLayer :: struct {}
|
when xlib.IS_SUPPORTED {
|
||||||
|
\tXlibDisplay :: xlib.Display
|
||||||
|
\tXlibWindow :: xlib.Window
|
||||||
|
\tXlibVisualID :: xlib.VisualID
|
||||||
|
} else {
|
||||||
|
\tXlibDisplay :: struct {} // Opaque struct defined by Xlib
|
||||||
|
\tXlibWindow :: c.ulong
|
||||||
|
\tXlibVisualID :: c.ulong
|
||||||
|
}
|
||||||
|
|
||||||
|
xcb_visualid_t :: u32
|
||||||
|
xcb_window_t :: u32
|
||||||
|
CAMetalLayer :: struct {}
|
||||||
|
|
||||||
MTLBuffer_id :: rawptr
|
MTLBuffer_id :: rawptr
|
||||||
MTLTexture_id :: rawptr
|
MTLTexture_id :: rawptr
|
||||||
|
|||||||
Vendored
+56
@@ -0,0 +1,56 @@
|
|||||||
|
#ifndef VULKAN_XCB_H_
|
||||||
|
#define VULKAN_XCB_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// VK_KHR_xcb_surface is a preprocessor guard. Do not pass it to API calls.
|
||||||
|
#define VK_KHR_xcb_surface 1
|
||||||
|
#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
|
||||||
|
#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
|
||||||
|
typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
|
||||||
|
typedef struct VkXcbSurfaceCreateInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkXcbSurfaceCreateFlagsKHR flags;
|
||||||
|
xcb_connection_t* connection;
|
||||||
|
xcb_window_t window;
|
||||||
|
} VkXcbSurfaceCreateInfoKHR;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||||
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR(
|
||||||
|
VkInstance instance,
|
||||||
|
const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkSurfaceKHR* pSurface);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t queueFamilyIndex,
|
||||||
|
xcb_connection_t* connection,
|
||||||
|
xcb_visualid_t visual_id);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
Vendored
+56
@@ -0,0 +1,56 @@
|
|||||||
|
#ifndef VULKAN_XLIB_H_
|
||||||
|
#define VULKAN_XLIB_H_ 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Copyright 2015-2024 The Khronos Group Inc.
|
||||||
|
**
|
||||||
|
** SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
** This header is generated from the Khronos Vulkan XML API Registry.
|
||||||
|
**
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// VK_KHR_xlib_surface is a preprocessor guard. Do not pass it to API calls.
|
||||||
|
#define VK_KHR_xlib_surface 1
|
||||||
|
#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
|
||||||
|
#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
|
||||||
|
typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
|
||||||
|
typedef struct VkXlibSurfaceCreateInfoKHR {
|
||||||
|
VkStructureType sType;
|
||||||
|
const void* pNext;
|
||||||
|
VkXlibSurfaceCreateFlagsKHR flags;
|
||||||
|
Display* dpy;
|
||||||
|
Window window;
|
||||||
|
} VkXlibSurfaceCreateInfoKHR;
|
||||||
|
|
||||||
|
typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
|
||||||
|
typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID);
|
||||||
|
|
||||||
|
#ifndef VK_NO_PROTOTYPES
|
||||||
|
VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR(
|
||||||
|
VkInstance instance,
|
||||||
|
const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
|
||||||
|
const VkAllocationCallbacks* pAllocator,
|
||||||
|
VkSurfaceKHR* pSurface);
|
||||||
|
|
||||||
|
VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR(
|
||||||
|
VkPhysicalDevice physicalDevice,
|
||||||
|
uint32_t queueFamilyIndex,
|
||||||
|
Display* dpy,
|
||||||
|
VisualID visualID);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
||||||
Vendored
+6
@@ -1161,6 +1161,12 @@ EXT_METAL_OBJECTS_EXTENSION_NAME :: "VK_EXT_metal_objec
|
|||||||
KHR_wayland_surface :: 1
|
KHR_wayland_surface :: 1
|
||||||
KHR_WAYLAND_SURFACE_SPEC_VERSION :: 6
|
KHR_WAYLAND_SURFACE_SPEC_VERSION :: 6
|
||||||
KHR_WAYLAND_SURFACE_EXTENSION_NAME :: "VK_KHR_wayland_surface"
|
KHR_WAYLAND_SURFACE_EXTENSION_NAME :: "VK_KHR_wayland_surface"
|
||||||
|
KHR_xlib_surface :: 1
|
||||||
|
KHR_XLIB_SURFACE_SPEC_VERSION :: 6
|
||||||
|
KHR_XLIB_SURFACE_EXTENSION_NAME :: "VK_KHR_xlib_surface"
|
||||||
|
KHR_xcb_surface :: 1
|
||||||
|
KHR_XCB_SURFACE_SPEC_VERSION :: 6
|
||||||
|
KHR_XCB_SURFACE_EXTENSION_NAME :: "VK_KHR_xcb_surface"
|
||||||
|
|
||||||
// Handles types
|
// Handles types
|
||||||
Instance :: distinct Handle
|
Instance :: distinct Handle
|
||||||
|
|||||||
Vendored
+4
@@ -4585,6 +4585,10 @@ WaylandSurfaceCreateFlagsKHR :: distinct bit_set[Wayland
|
|||||||
WaylandSurfaceCreateFlagKHR :: enum u32 {}
|
WaylandSurfaceCreateFlagKHR :: enum u32 {}
|
||||||
Win32SurfaceCreateFlagsKHR :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
|
Win32SurfaceCreateFlagsKHR :: distinct bit_set[Win32SurfaceCreateFlagKHR; Flags]
|
||||||
Win32SurfaceCreateFlagKHR :: enum u32 {}
|
Win32SurfaceCreateFlagKHR :: enum u32 {}
|
||||||
|
XcbSurfaceCreateFlagsKHR :: distinct bit_set[XcbSurfaceCreateFlagKHR; Flags]
|
||||||
|
XcbSurfaceCreateFlagKHR :: enum u32 {}
|
||||||
|
XlibSurfaceCreateFlagsKHR :: distinct bit_set[XlibSurfaceCreateFlagKHR; Flags]
|
||||||
|
XlibSurfaceCreateFlagKHR :: enum u32 {}
|
||||||
AccessFlags2 :: distinct bit_set[AccessFlag2; Flags64]
|
AccessFlags2 :: distinct bit_set[AccessFlag2; Flags64]
|
||||||
AccessFlag2 :: enum Flags64 {
|
AccessFlag2 :: enum Flags64 {
|
||||||
INDIRECT_COMMAND_READ = 0,
|
INDIRECT_COMMAND_READ = 0,
|
||||||
|
|||||||
Vendored
+16
@@ -36,6 +36,8 @@ ProcCreateMacOSSurfaceMVK :: #type pr
|
|||||||
ProcCreateMetalSurfaceEXT :: #type proc "system" (instance: Instance, pCreateInfo: ^MetalSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
ProcCreateMetalSurfaceEXT :: #type proc "system" (instance: Instance, pCreateInfo: ^MetalSurfaceCreateInfoEXT, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
||||||
ProcCreateWaylandSurfaceKHR :: #type proc "system" (instance: Instance, pCreateInfo: ^WaylandSurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
ProcCreateWaylandSurfaceKHR :: #type proc "system" (instance: Instance, pCreateInfo: ^WaylandSurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
||||||
ProcCreateWin32SurfaceKHR :: #type proc "system" (instance: Instance, pCreateInfo: ^Win32SurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
ProcCreateWin32SurfaceKHR :: #type proc "system" (instance: Instance, pCreateInfo: ^Win32SurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
||||||
|
ProcCreateXcbSurfaceKHR :: #type proc "system" (instance: Instance, pCreateInfo: ^XcbSurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
||||||
|
ProcCreateXlibSurfaceKHR :: #type proc "system" (instance: Instance, pCreateInfo: ^XlibSurfaceCreateInfoKHR, pAllocator: ^AllocationCallbacks, pSurface: ^SurfaceKHR) -> Result
|
||||||
ProcDebugReportMessageEXT :: #type proc "system" (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring)
|
ProcDebugReportMessageEXT :: #type proc "system" (instance: Instance, flags: DebugReportFlagsEXT, objectType: DebugReportObjectTypeEXT, object: u64, location: int, messageCode: i32, pLayerPrefix: cstring, pMessage: cstring)
|
||||||
ProcDestroyDebugReportCallbackEXT :: #type proc "system" (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: ^AllocationCallbacks)
|
ProcDestroyDebugReportCallbackEXT :: #type proc "system" (instance: Instance, callback: DebugReportCallbackEXT, pAllocator: ^AllocationCallbacks)
|
||||||
ProcDestroyDebugUtilsMessengerEXT :: #type proc "system" (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: ^AllocationCallbacks)
|
ProcDestroyDebugUtilsMessengerEXT :: #type proc "system" (instance: Instance, messenger: DebugUtilsMessengerEXT, pAllocator: ^AllocationCallbacks)
|
||||||
@@ -113,6 +115,8 @@ ProcGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR :: #type pr
|
|||||||
ProcGetPhysicalDeviceVideoFormatPropertiesKHR :: #type proc "system" (physicalDevice: PhysicalDevice, pVideoFormatInfo: ^PhysicalDeviceVideoFormatInfoKHR, pVideoFormatPropertyCount: ^u32, pVideoFormatProperties: [^]VideoFormatPropertiesKHR) -> Result
|
ProcGetPhysicalDeviceVideoFormatPropertiesKHR :: #type proc "system" (physicalDevice: PhysicalDevice, pVideoFormatInfo: ^PhysicalDeviceVideoFormatInfoKHR, pVideoFormatPropertyCount: ^u32, pVideoFormatProperties: [^]VideoFormatPropertiesKHR) -> Result
|
||||||
ProcGetPhysicalDeviceWaylandPresentationSupportKHR :: #type proc "system" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, display: ^wl_display) -> b32
|
ProcGetPhysicalDeviceWaylandPresentationSupportKHR :: #type proc "system" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, display: ^wl_display) -> b32
|
||||||
ProcGetPhysicalDeviceWin32PresentationSupportKHR :: #type proc "system" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> b32
|
ProcGetPhysicalDeviceWin32PresentationSupportKHR :: #type proc "system" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32) -> b32
|
||||||
|
ProcGetPhysicalDeviceXcbPresentationSupportKHR :: #type proc "system" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, connection: ^xcb_connection_t, visual_id: xcb_visualid_t) -> b32
|
||||||
|
ProcGetPhysicalDeviceXlibPresentationSupportKHR :: #type proc "system" (physicalDevice: PhysicalDevice, queueFamilyIndex: u32, dpy: ^XlibDisplay, visualID: XlibVisualID) -> b32
|
||||||
ProcGetWinrtDisplayNV :: #type proc "system" (physicalDevice: PhysicalDevice, deviceRelativeId: u32, pDisplay: ^DisplayKHR) -> Result
|
ProcGetWinrtDisplayNV :: #type proc "system" (physicalDevice: PhysicalDevice, deviceRelativeId: u32, pDisplay: ^DisplayKHR) -> Result
|
||||||
ProcReleaseDisplayEXT :: #type proc "system" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result
|
ProcReleaseDisplayEXT :: #type proc "system" (physicalDevice: PhysicalDevice, display: DisplayKHR) -> Result
|
||||||
ProcSubmitDebugUtilsMessageEXT :: #type proc "system" (instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT)
|
ProcSubmitDebugUtilsMessageEXT :: #type proc "system" (instance: Instance, messageSeverity: DebugUtilsMessageSeverityFlagsEXT, messageTypes: DebugUtilsMessageTypeFlagsEXT, pCallbackData: ^DebugUtilsMessengerCallbackDataEXT)
|
||||||
@@ -730,6 +734,8 @@ CreateMacOSSurfaceMVK: ProcCreateMacO
|
|||||||
CreateMetalSurfaceEXT: ProcCreateMetalSurfaceEXT
|
CreateMetalSurfaceEXT: ProcCreateMetalSurfaceEXT
|
||||||
CreateWaylandSurfaceKHR: ProcCreateWaylandSurfaceKHR
|
CreateWaylandSurfaceKHR: ProcCreateWaylandSurfaceKHR
|
||||||
CreateWin32SurfaceKHR: ProcCreateWin32SurfaceKHR
|
CreateWin32SurfaceKHR: ProcCreateWin32SurfaceKHR
|
||||||
|
CreateXcbSurfaceKHR: ProcCreateXcbSurfaceKHR
|
||||||
|
CreateXlibSurfaceKHR: ProcCreateXlibSurfaceKHR
|
||||||
DebugReportMessageEXT: ProcDebugReportMessageEXT
|
DebugReportMessageEXT: ProcDebugReportMessageEXT
|
||||||
DestroyDebugReportCallbackEXT: ProcDestroyDebugReportCallbackEXT
|
DestroyDebugReportCallbackEXT: ProcDestroyDebugReportCallbackEXT
|
||||||
DestroyDebugUtilsMessengerEXT: ProcDestroyDebugUtilsMessengerEXT
|
DestroyDebugUtilsMessengerEXT: ProcDestroyDebugUtilsMessengerEXT
|
||||||
@@ -806,6 +812,8 @@ GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR: ProcGetPhysica
|
|||||||
GetPhysicalDeviceVideoFormatPropertiesKHR: ProcGetPhysicalDeviceVideoFormatPropertiesKHR
|
GetPhysicalDeviceVideoFormatPropertiesKHR: ProcGetPhysicalDeviceVideoFormatPropertiesKHR
|
||||||
GetPhysicalDeviceWaylandPresentationSupportKHR: ProcGetPhysicalDeviceWaylandPresentationSupportKHR
|
GetPhysicalDeviceWaylandPresentationSupportKHR: ProcGetPhysicalDeviceWaylandPresentationSupportKHR
|
||||||
GetPhysicalDeviceWin32PresentationSupportKHR: ProcGetPhysicalDeviceWin32PresentationSupportKHR
|
GetPhysicalDeviceWin32PresentationSupportKHR: ProcGetPhysicalDeviceWin32PresentationSupportKHR
|
||||||
|
GetPhysicalDeviceXcbPresentationSupportKHR: ProcGetPhysicalDeviceXcbPresentationSupportKHR
|
||||||
|
GetPhysicalDeviceXlibPresentationSupportKHR: ProcGetPhysicalDeviceXlibPresentationSupportKHR
|
||||||
GetWinrtDisplayNV: ProcGetWinrtDisplayNV
|
GetWinrtDisplayNV: ProcGetWinrtDisplayNV
|
||||||
ReleaseDisplayEXT: ProcReleaseDisplayEXT
|
ReleaseDisplayEXT: ProcReleaseDisplayEXT
|
||||||
SubmitDebugUtilsMessageEXT: ProcSubmitDebugUtilsMessageEXT
|
SubmitDebugUtilsMessageEXT: ProcSubmitDebugUtilsMessageEXT
|
||||||
@@ -1423,6 +1431,8 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
|||||||
set_proc_address(&CreateMetalSurfaceEXT, "vkCreateMetalSurfaceEXT")
|
set_proc_address(&CreateMetalSurfaceEXT, "vkCreateMetalSurfaceEXT")
|
||||||
set_proc_address(&CreateWaylandSurfaceKHR, "vkCreateWaylandSurfaceKHR")
|
set_proc_address(&CreateWaylandSurfaceKHR, "vkCreateWaylandSurfaceKHR")
|
||||||
set_proc_address(&CreateWin32SurfaceKHR, "vkCreateWin32SurfaceKHR")
|
set_proc_address(&CreateWin32SurfaceKHR, "vkCreateWin32SurfaceKHR")
|
||||||
|
set_proc_address(&CreateXcbSurfaceKHR, "vkCreateXcbSurfaceKHR")
|
||||||
|
set_proc_address(&CreateXlibSurfaceKHR, "vkCreateXlibSurfaceKHR")
|
||||||
set_proc_address(&DebugReportMessageEXT, "vkDebugReportMessageEXT")
|
set_proc_address(&DebugReportMessageEXT, "vkDebugReportMessageEXT")
|
||||||
set_proc_address(&DestroyDebugReportCallbackEXT, "vkDestroyDebugReportCallbackEXT")
|
set_proc_address(&DestroyDebugReportCallbackEXT, "vkDestroyDebugReportCallbackEXT")
|
||||||
set_proc_address(&DestroyDebugUtilsMessengerEXT, "vkDestroyDebugUtilsMessengerEXT")
|
set_proc_address(&DestroyDebugUtilsMessengerEXT, "vkDestroyDebugUtilsMessengerEXT")
|
||||||
@@ -1499,6 +1509,8 @@ load_proc_addresses_custom :: proc(set_proc_address: SetProcAddressType) {
|
|||||||
set_proc_address(&GetPhysicalDeviceVideoFormatPropertiesKHR, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")
|
set_proc_address(&GetPhysicalDeviceVideoFormatPropertiesKHR, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")
|
||||||
set_proc_address(&GetPhysicalDeviceWaylandPresentationSupportKHR, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")
|
set_proc_address(&GetPhysicalDeviceWaylandPresentationSupportKHR, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")
|
||||||
set_proc_address(&GetPhysicalDeviceWin32PresentationSupportKHR, "vkGetPhysicalDeviceWin32PresentationSupportKHR")
|
set_proc_address(&GetPhysicalDeviceWin32PresentationSupportKHR, "vkGetPhysicalDeviceWin32PresentationSupportKHR")
|
||||||
|
set_proc_address(&GetPhysicalDeviceXcbPresentationSupportKHR, "vkGetPhysicalDeviceXcbPresentationSupportKHR")
|
||||||
|
set_proc_address(&GetPhysicalDeviceXlibPresentationSupportKHR, "vkGetPhysicalDeviceXlibPresentationSupportKHR")
|
||||||
set_proc_address(&GetWinrtDisplayNV, "vkGetWinrtDisplayNV")
|
set_proc_address(&GetWinrtDisplayNV, "vkGetWinrtDisplayNV")
|
||||||
set_proc_address(&ReleaseDisplayEXT, "vkReleaseDisplayEXT")
|
set_proc_address(&ReleaseDisplayEXT, "vkReleaseDisplayEXT")
|
||||||
set_proc_address(&SubmitDebugUtilsMessageEXT, "vkSubmitDebugUtilsMessageEXT")
|
set_proc_address(&SubmitDebugUtilsMessageEXT, "vkSubmitDebugUtilsMessageEXT")
|
||||||
@@ -3879,6 +3891,8 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
|||||||
CreateMetalSurfaceEXT = auto_cast GetInstanceProcAddr(instance, "vkCreateMetalSurfaceEXT")
|
CreateMetalSurfaceEXT = auto_cast GetInstanceProcAddr(instance, "vkCreateMetalSurfaceEXT")
|
||||||
CreateWaylandSurfaceKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateWaylandSurfaceKHR")
|
CreateWaylandSurfaceKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateWaylandSurfaceKHR")
|
||||||
CreateWin32SurfaceKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR")
|
CreateWin32SurfaceKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateWin32SurfaceKHR")
|
||||||
|
CreateXcbSurfaceKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateXcbSurfaceKHR")
|
||||||
|
CreateXlibSurfaceKHR = auto_cast GetInstanceProcAddr(instance, "vkCreateXlibSurfaceKHR")
|
||||||
DebugReportMessageEXT = auto_cast GetInstanceProcAddr(instance, "vkDebugReportMessageEXT")
|
DebugReportMessageEXT = auto_cast GetInstanceProcAddr(instance, "vkDebugReportMessageEXT")
|
||||||
DestroyDebugReportCallbackEXT = auto_cast GetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT")
|
DestroyDebugReportCallbackEXT = auto_cast GetInstanceProcAddr(instance, "vkDestroyDebugReportCallbackEXT")
|
||||||
DestroyDebugUtilsMessengerEXT = auto_cast GetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT")
|
DestroyDebugUtilsMessengerEXT = auto_cast GetInstanceProcAddr(instance, "vkDestroyDebugUtilsMessengerEXT")
|
||||||
@@ -3955,6 +3969,8 @@ load_proc_addresses_instance :: proc(instance: Instance) {
|
|||||||
GetPhysicalDeviceVideoFormatPropertiesKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")
|
GetPhysicalDeviceVideoFormatPropertiesKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")
|
||||||
GetPhysicalDeviceWaylandPresentationSupportKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")
|
GetPhysicalDeviceWaylandPresentationSupportKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")
|
||||||
GetPhysicalDeviceWin32PresentationSupportKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR")
|
GetPhysicalDeviceWin32PresentationSupportKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR")
|
||||||
|
GetPhysicalDeviceXcbPresentationSupportKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR")
|
||||||
|
GetPhysicalDeviceXlibPresentationSupportKHR = auto_cast GetInstanceProcAddr(instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR")
|
||||||
GetWinrtDisplayNV = auto_cast GetInstanceProcAddr(instance, "vkGetWinrtDisplayNV")
|
GetWinrtDisplayNV = auto_cast GetInstanceProcAddr(instance, "vkGetWinrtDisplayNV")
|
||||||
ReleaseDisplayEXT = auto_cast GetInstanceProcAddr(instance, "vkReleaseDisplayEXT")
|
ReleaseDisplayEXT = auto_cast GetInstanceProcAddr(instance, "vkReleaseDisplayEXT")
|
||||||
SubmitDebugUtilsMessageEXT = auto_cast GetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT")
|
SubmitDebugUtilsMessageEXT = auto_cast GetInstanceProcAddr(instance, "vkSubmitDebugUtilsMessageEXT")
|
||||||
|
|||||||
Vendored
+37
-4
@@ -7,6 +7,10 @@ import "core:c"
|
|||||||
|
|
||||||
import win32 "core:sys/windows"
|
import win32 "core:sys/windows"
|
||||||
_ :: win32
|
_ :: win32
|
||||||
|
|
||||||
|
import "vendor:x11/xlib"
|
||||||
|
_ :: xlib
|
||||||
|
|
||||||
when ODIN_OS == .Windows {
|
when ODIN_OS == .Windows {
|
||||||
HINSTANCE :: win32.HINSTANCE
|
HINSTANCE :: win32.HINSTANCE
|
||||||
HWND :: win32.HWND
|
HWND :: win32.HWND
|
||||||
@@ -32,7 +36,19 @@ when ODIN_OS == .Windows {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CAMetalLayer :: struct {}
|
when xlib.IS_SUPPORTED {
|
||||||
|
XlibDisplay :: xlib.Display
|
||||||
|
XlibWindow :: xlib.Window
|
||||||
|
XlibVisualID :: xlib.VisualID
|
||||||
|
} else {
|
||||||
|
XlibDisplay :: struct {} // Opaque struct defined by Xlib
|
||||||
|
XlibWindow :: c.ulong
|
||||||
|
XlibVisualID :: c.ulong
|
||||||
|
}
|
||||||
|
|
||||||
|
xcb_visualid_t :: u32
|
||||||
|
xcb_window_t :: u32
|
||||||
|
CAMetalLayer :: struct {}
|
||||||
|
|
||||||
MTLBuffer_id :: rawptr
|
MTLBuffer_id :: rawptr
|
||||||
MTLTexture_id :: rawptr
|
MTLTexture_id :: rawptr
|
||||||
@@ -8910,6 +8926,22 @@ WaylandSurfaceCreateInfoKHR :: struct {
|
|||||||
surface: ^wl_surface,
|
surface: ^wl_surface,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
XlibSurfaceCreateInfoKHR :: struct {
|
||||||
|
sType: StructureType,
|
||||||
|
pNext: rawptr,
|
||||||
|
flags: XlibSurfaceCreateFlagsKHR,
|
||||||
|
dpy: ^XlibDisplay,
|
||||||
|
window: XlibWindow,
|
||||||
|
}
|
||||||
|
|
||||||
|
XcbSurfaceCreateInfoKHR :: struct {
|
||||||
|
sType: StructureType,
|
||||||
|
pNext: rawptr,
|
||||||
|
flags: XcbSurfaceCreateFlagsKHR,
|
||||||
|
connection: ^xcb_connection_t,
|
||||||
|
window: xcb_window_t,
|
||||||
|
}
|
||||||
|
|
||||||
VideoAV1ColorConfigFlags :: struct {
|
VideoAV1ColorConfigFlags :: struct {
|
||||||
bitfield: u32,
|
bitfield: u32,
|
||||||
}
|
}
|
||||||
@@ -9753,9 +9785,10 @@ VideoEncodeH265ReferenceInfo :: struct {
|
|||||||
|
|
||||||
// Opaque structs
|
// Opaque structs
|
||||||
|
|
||||||
wl_surface :: struct {} // Opaque struct defined by Wayland
|
wl_surface :: struct {} // Opaque struct defined by Wayland
|
||||||
wl_display :: struct {} // Opaque struct defined by Wayland
|
wl_display :: struct {} // Opaque struct defined by Wayland
|
||||||
IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics framework
|
xcb_connection_t :: struct {} // Opaque struct defined by xcb
|
||||||
|
IOSurfaceRef :: struct {} // Opaque struct defined by Apple’s CoreGraphics framework
|
||||||
// Aliases
|
// Aliases
|
||||||
PhysicalDeviceVariablePointerFeatures :: PhysicalDeviceVariablePointersFeatures
|
PhysicalDeviceVariablePointerFeatures :: PhysicalDeviceVariablePointersFeatures
|
||||||
PhysicalDeviceShaderDrawParameterFeatures :: PhysicalDeviceShaderDrawParametersFeatures
|
PhysicalDeviceShaderDrawParameterFeatures :: PhysicalDeviceShaderDrawParametersFeatures
|
||||||
|
|||||||
Vendored
+4
@@ -0,0 +1,4 @@
|
|||||||
|
package xlib
|
||||||
|
|
||||||
|
// Value, specifying whether `vendor:x11/xlib` is available on the current platform.
|
||||||
|
IS_SUPPORTED :: ODIN_OS == .Linux || ODIN_OS == .FreeBSD || ODIN_OS == .OpenBSD
|
||||||
Reference in New Issue
Block a user