update from xcb to xlib
This commit is contained in:
parent
f96d30ae9c
commit
6bd4718063
7
external/vma/vma.cpp
vendored
7
external/vma/vma.cpp
vendored
@ -4,11 +4,12 @@
|
||||
#define VMA_VULKAN_VERSION 1002000
|
||||
|
||||
#ifdef __linux__
|
||||
#define VK_USE_PLATFORM_XCB_KHR
|
||||
# define XLIB_ILLEGAL_ACCESS
|
||||
# define VK_USE_PLATFORM_XLIB_KHR
|
||||
#elif _WIN32
|
||||
#define VK_USE_PLATFORM_WIN32_KHR
|
||||
# define VK_USE_PLATFORM_WIN32_KHR
|
||||
#else
|
||||
#error not yet implemented
|
||||
# error not yet implemented
|
||||
#endif
|
||||
|
||||
#include "vk_mem_alloc.h"
|
||||
|
||||
27
vulkan.d
27
vulkan.d
@ -52,19 +52,20 @@ const DESC_ARRAY_SIZE = 256;
|
||||
version(linux)
|
||||
{
|
||||
const string[] VULKAN_LIBS = [ "libvulkan.so.1", "libvulkan.so" ];
|
||||
|
||||
struct PlatformHandles
|
||||
{
|
||||
xcb_connection_t *conn;
|
||||
xcb_window_t window;
|
||||
}
|
||||
}
|
||||
|
||||
version(Windows)
|
||||
{
|
||||
const string[] VULKAN_LIBS = [ "vulkan-1.dll" ];
|
||||
}
|
||||
|
||||
struct PlatformHandles
|
||||
struct PlatformHandles
|
||||
{
|
||||
version(linux)
|
||||
{
|
||||
Display* display;
|
||||
Window window;
|
||||
}
|
||||
version(Windows)
|
||||
{
|
||||
HINSTANCE hinstance;
|
||||
HWND hwnd;
|
||||
@ -76,7 +77,7 @@ const char*[] VK_INSTANCE_LAYERS_DEBUG = [ "VK_LAYER_KHRONOS_validation" ];
|
||||
|
||||
version(linux)
|
||||
{
|
||||
const char*[] VK_INSTANCE_EXT = [ cast(char*)VK_KHR_SURFACE_EXTENSION_NAME, cast(char*)VK_KHR_XCB_SURFACE_EXTENSION_NAME ];
|
||||
const char*[] VK_INSTANCE_EXT = [ cast(char*)VK_KHR_SURFACE_EXTENSION_NAME, cast(char*)VK_KHR_XLIB_SURFACE_EXTENSION_NAME ];
|
||||
const char*[] VK_INSTANCE_EXT_DEBUG = VK_INSTANCE_EXT ~ [ cast(char*)VK_EXT_DEBUG_UTILS_EXTENSION_NAME ];
|
||||
}
|
||||
|
||||
@ -2659,13 +2660,13 @@ Init(PlatformHandles platform_handles, u64 permanent_mem, u64 frame_mem)
|
||||
{
|
||||
version(linux)
|
||||
{
|
||||
VkXcbSurfaceCreateInfoKHR surface_info = {
|
||||
sType: VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR,
|
||||
connection: vk.platform_handles.conn,
|
||||
VkXlibSurfaceCreateInfoKHR surface_info = {
|
||||
sType: VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR,
|
||||
dpy: vk.platform_handles.display,
|
||||
window: vk.platform_handles.window,
|
||||
};
|
||||
|
||||
VkResult result = vkCreateXcbSurfaceKHR(vk.instance, &surface_info, null, &vk.surface);
|
||||
VkResult result = vkCreateXlibSurfaceKHR(vk.instance, &surface_info, null, &vk.surface);
|
||||
}
|
||||
|
||||
version(Windows)
|
||||
|
||||
@ -35,7 +35,7 @@ version(VULKAN_DEBUG)
|
||||
|
||||
version(linux)
|
||||
{
|
||||
PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = null;
|
||||
PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = null;
|
||||
};
|
||||
|
||||
version(Windows)
|
||||
@ -232,7 +232,7 @@ LoadInstanceFunctions(Vulkan* vk)
|
||||
|
||||
version(linux)
|
||||
{
|
||||
vkCreateXcbSurfaceKHR = cast(PFN_vkCreateXcbSurfaceKHR)vkGetInstanceProcAddr(vk.instance, "vkCreateXcbSurfaceKHR");
|
||||
vkCreateXlibSurfaceKHR = cast(PFN_vkCreateXlibSurfaceKHR)vkGetInstanceProcAddr(vk.instance, "vkCreateXlibSurfaceKHR");
|
||||
}
|
||||
|
||||
version(Windows)
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
#pragma attribute(push, nogc, nothrow)
|
||||
|
||||
#ifdef __linux__
|
||||
# include <xcb/xcb.h>
|
||||
# define XLIB_ILLEGAL_ACCESS
|
||||
# define VK_USE_PLATFORM_XLIB_KHR
|
||||
# include <X11/Xlib.h>
|
||||
# define VK_USE_PLATFORM_XCB_KHR
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user