mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-28 13:28:01 +03:00
rsx: implement android swapchain
This commit is contained in:
parent
7520c09087
commit
cac068dad9
4 changed files with 18 additions and 4 deletions
|
@ -4,6 +4,8 @@
|
||||||
#define VK_USE_PLATFORM_WIN32_KHR
|
#define VK_USE_PLATFORM_WIN32_KHR
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
#define VK_USE_PLATFORM_MACOS_MVK
|
#define VK_USE_PLATFORM_MACOS_MVK
|
||||||
|
#elif defined(ANDROID)
|
||||||
|
#define VK_USE_PLATFORM_ANDROID_KHR
|
||||||
#elif HAVE_X11
|
#elif HAVE_X11
|
||||||
#define VK_USE_PLATFORM_XLIB_KHR
|
#define VK_USE_PLATFORM_XLIB_KHR
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -181,6 +181,13 @@ namespace vk
|
||||||
found_surface_ext = true;
|
found_surface_ext = true;
|
||||||
}
|
}
|
||||||
#endif //(WAYLAND)
|
#endif //(WAYLAND)
|
||||||
|
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||||
|
if (support.is_supported(VK_KHR_ANDROID_SURFACE_EXTENSION_NAME))
|
||||||
|
{
|
||||||
|
extensions.push_back(VK_KHR_ANDROID_SURFACE_EXTENSION_NAME);
|
||||||
|
found_surface_ext = true;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if (!found_surface_ext)
|
if (!found_surface_ext)
|
||||||
{
|
{
|
||||||
rsx_log.error("Could not find a supported Vulkan surface extension");
|
rsx_log.error("Could not find a supported Vulkan surface extension");
|
||||||
|
|
|
@ -8,12 +8,17 @@ namespace vk
|
||||||
using swapchain_ANDROID = native_swapchain_base;
|
using swapchain_ANDROID = native_swapchain_base;
|
||||||
using swapchain_NATIVE = swapchain_ANDROID;
|
using swapchain_NATIVE = swapchain_ANDROID;
|
||||||
|
|
||||||
// TODO: Implement this
|
|
||||||
[[maybe_unused]] static
|
[[maybe_unused]] static
|
||||||
VkSurfaceKHR make_WSI_surface(VkInstance vk_instance, display_handle_t window_handle, WSI_config* /*config*/)
|
VkSurfaceKHR make_WSI_surface(VkInstance vk_instance, display_handle_t window_handle, WSI_config* /*config*/)
|
||||||
{
|
{
|
||||||
return VK_NULL_HANDLE;
|
VkSurfaceKHR result = VK_NULL_HANDLE;
|
||||||
|
|
||||||
|
VkWin32SurfaceCreateInfoKHR createInfo = {};
|
||||||
|
createInfo.sType = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR;
|
||||||
|
createInfo.window = std::get<ANativeWindow *>(window_handle);
|
||||||
|
|
||||||
|
CHECK_RESULT(vkCreateAndroidSurfaceKHR(this->m_instance, &createInfo, nullptr, &result));
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ using display_handle_t = std::variant<
|
||||||
#elif defined(VK_USE_PLATFORM_WAYLAND_KHR)
|
#elif defined(VK_USE_PLATFORM_WAYLAND_KHR)
|
||||||
std::pair<wl_display*, wl_surface*>
|
std::pair<wl_display*, wl_surface*>
|
||||||
#elif defined(ANDROID)
|
#elif defined(ANDROID)
|
||||||
void *
|
struct ANativeWindow *
|
||||||
#endif
|
#endif
|
||||||
>;
|
>;
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue