Hash :
510351f2
Author :
Date :
2021-12-09T16:52:35
Vulkan: Support Wayland Implement DisplayVkWayland and WindowSurfaceVkWayland. Get window size from native window and check egl config is just empty. Then add an EGL wayland test for testing rendering and buffers swapping. Bug: angleproject:6902 Change-Id: I8204a5cc99f26330b74caba241bebf14c5650c2d Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3395898 Reviewed-by: mohan maiya <m.maiya@samsung.com> Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org> Auto-Submit: Antonio Caggiano <antonio.caggiano@collabora.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jamie Madill <jmadill@chromium.org>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
//
// Copyright 2019 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// DisplayVk_api.h:
// Defines the Vulkan Display APIs to be used by the code outside the back-end.
//
#ifndef LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_
#define LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_
#include "libANGLE/renderer/DisplayImpl.h"
namespace rx
{
bool IsVulkanNullDisplayAvailable();
DisplayImpl *CreateVulkanNullDisplay(const egl::DisplayState &state);
#if defined(ANGLE_PLATFORM_WINDOWS)
bool IsVulkanWin32DisplayAvailable();
DisplayImpl *CreateVulkanWin32Display(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_WINDOWS)
#if defined(ANGLE_PLATFORM_LINUX)
bool IsVulkanWaylandDisplayAvailable();
DisplayImpl *CreateVulkanWaylandDisplay(const egl::DisplayState &state);
bool IsVulkanXcbDisplayAvailable();
DisplayImpl *CreateVulkanXcbDisplay(const egl::DisplayState &state);
bool IsVulkanSimpleDisplayAvailable();
DisplayImpl *CreateVulkanSimpleDisplay(const egl::DisplayState &state);
bool IsVulkanHeadlessDisplayAvailable();
DisplayImpl *CreateVulkanHeadlessDisplay(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_LINUX)
#if defined(ANGLE_PLATFORM_ANDROID)
bool IsVulkanAndroidDisplayAvailable();
DisplayImpl *CreateVulkanAndroidDisplay(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_ANDROID)
#if defined(ANGLE_PLATFORM_FUCHSIA)
bool IsVulkanFuchsiaDisplayAvailable();
DisplayImpl *CreateVulkanFuchsiaDisplay(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_FUCHSIA)
#if defined(ANGLE_PLATFORM_GGP)
bool IsVulkanGGPDisplayAvailable();
DisplayImpl *CreateVulkanGGPDisplay(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_GGP)
#if defined(ANGLE_PLATFORM_APPLE)
bool IsVulkanMacDisplayAvailable();
DisplayImpl *CreateVulkanMacDisplay(const egl::DisplayState &state);
#endif // defined(ANGLE_PLATFORM_APPLE)
} // namespace rx
#endif /* LIBANGLE_RENDERER_VULKAN_DISPLAYVK_API_H_ */