summaryrefslogtreecommitdiff
path: root/platform/x11
diff options
context:
space:
mode:
authorbruvzg <7645683+bruvzg@users.noreply.github.com>2019-06-22 19:34:26 +0300
committerbruvzg <7645683+bruvzg@users.noreply.github.com>2020-02-11 11:57:11 +0100
commiteb48be51dbe97aa4fbbbe0d0ebd8a98bee6b263e (patch)
tree9a5b6bfd50e7ddb5b348c97bd60d30b290d27d49 /platform/x11
parent4fe3ee1730167b90ec8ae70c871c1dad032981d5 (diff)
Add static Vulkan loader.
Initial Vulkan support for Windows. Initial Vulkan support for macOS.
Diffstat (limited to 'platform/x11')
-rw-r--r--platform/x11/detect.py14
-rw-r--r--platform/x11/vulkan_context_x11.cpp34
-rw-r--r--platform/x11/vulkan_context_x11.h31
3 files changed, 76 insertions, 3 deletions
diff --git a/platform/x11/detect.py b/platform/x11/detect.py
index 5f43d19151..eee439ceb4 100644
--- a/platform/x11/detect.py
+++ b/platform/x11/detect.py
@@ -319,9 +319,17 @@ def configure(env):
env.Prepend(CPPPATH=['#platform/x11'])
env.Append(CPPDEFINES=['X11_ENABLED', 'UNIX_ENABLED'])
- env.Append(CPPDEFINES=['VULKAN_ENABLED'])
- env.Append(LIBS=['vulkan'])
- env.Append(LIBS=['GL', 'pthread'])
+
+ if (env["renderer"] == "vulkan"):
+ env.Prepend(CPPPATH=['#thirdparty/vulkan/include/', "#thirdparty/vulkan/registry/"])
+ env.Append(CPPDEFINES=['VULKAN_ENABLED'])
+ if not env["builtin_vulkan_loader"]:
+ env.Append(LIBS=['vulkan'])
+ else:
+ env.Append(CPPDEFINES=['OPENGL_ENABLED'])
+ env.Append(LIBS=['GL'])
+
+ env.Append(LIBS=['pthread'])
if (platform.system() == "Linux"):
env.Append(LIBS=['dl'])
diff --git a/platform/x11/vulkan_context_x11.cpp b/platform/x11/vulkan_context_x11.cpp
index 412cc2ddf8..00b6bee1ec 100644
--- a/platform/x11/vulkan_context_x11.cpp
+++ b/platform/x11/vulkan_context_x11.cpp
@@ -1,5 +1,36 @@
+/*************************************************************************/
+/* vulkan_context_x11.cpp */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
#include "vulkan_context_x11.h"
#include <vulkan/vulkan_xlib.h>
+
const char *VulkanContextX11::_get_platform_surface_extension() const {
return VK_KHR_XLIB_SURFACE_EXTENSION_NAME;
}
@@ -21,3 +52,6 @@ int VulkanContextX11::window_create(::Window p_window, Display *p_display, int p
VulkanContextX11::VulkanContextX11() {
}
+
+VulkanContextX11::~VulkanContextX11() {
+}
diff --git a/platform/x11/vulkan_context_x11.h b/platform/x11/vulkan_context_x11.h
index 6631d39e98..544441f68e 100644
--- a/platform/x11/vulkan_context_x11.h
+++ b/platform/x11/vulkan_context_x11.h
@@ -1,3 +1,33 @@
+/*************************************************************************/
+/* vulkan_context_x11.h */
+/*************************************************************************/
+/* This file is part of: */
+/* GODOT ENGINE */
+/* https://godotengine.org */
+/*************************************************************************/
+/* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur. */
+/* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md) */
+/* */
+/* Permission is hereby granted, free of charge, to any person obtaining */
+/* a copy of this software and associated documentation files (the */
+/* "Software"), to deal in the Software without restriction, including */
+/* without limitation the rights to use, copy, modify, merge, publish, */
+/* distribute, sublicense, and/or sell copies of the Software, and to */
+/* permit persons to whom the Software is furnished to do so, subject to */
+/* the following conditions: */
+/* */
+/* The above copyright notice and this permission notice shall be */
+/* included in all copies or substantial portions of the Software. */
+/* */
+/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */
+/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */
+/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/
+/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */
+/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */
+/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */
+/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+/*************************************************************************/
+
#ifndef VULKAN_DEVICE_X11_H
#define VULKAN_DEVICE_X11_H
@@ -12,6 +42,7 @@ public:
int window_create(::Window p_window, Display *p_display, int p_width, int p_height);
VulkanContextX11();
+ ~VulkanContextX11();
};
#endif // VULKAN_DEVICE_X11_H