diff options
author | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2019-06-22 19:34:26 +0300 |
---|---|---|
committer | bruvzg <7645683+bruvzg@users.noreply.github.com> | 2020-02-11 11:57:11 +0100 |
commit | eb48be51dbe97aa4fbbbe0d0ebd8a98bee6b263e (patch) | |
tree | 9a5b6bfd50e7ddb5b348c97bd60d30b290d27d49 /platform/x11 | |
parent | 4fe3ee1730167b90ec8ae70c871c1dad032981d5 (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.py | 14 | ||||
-rw-r--r-- | platform/x11/vulkan_context_x11.cpp | 34 | ||||
-rw-r--r-- | platform/x11/vulkan_context_x11.h | 31 |
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 |