Add Window at the end of SurfaceDescriptorFromXlib.

Bug: dawn:1246
Change-Id: I1917056e9bb2bde0997c072ab76963e9dd079bb3
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/75420
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Loko Kung <lokokung@google.com>
Commit-Queue: Corentin Wallez <cwallez@chromium.org>
This commit is contained in:
Corentin Wallez
2022-01-06 09:10:00 +00:00
committed by Dawn LUCI CQ
parent 31f12242da
commit a4357a7619
5 changed files with 11 additions and 11 deletions

View File

@@ -69,7 +69,7 @@ namespace dawn_native {
wgpu::SType::SurfaceDescriptorFromWindowsHWND,
wgpu::SType::SurfaceDescriptorFromWindowsCoreWindow,
wgpu::SType::SurfaceDescriptorFromWindowsSwapChainPanel,
wgpu::SType::SurfaceDescriptorFromXlib));
wgpu::SType::SurfaceDescriptorFromXlibWindow));
#if defined(DAWN_ENABLE_BACKEND_METAL)
const SurfaceDescriptorFromMetalLayer* metalDesc = nullptr;
@@ -116,7 +116,7 @@ namespace dawn_native {
#endif // defined(DAWN_PLATFORM_WINDOWS)
#if defined(DAWN_USE_X11)
const SurfaceDescriptorFromXlib* xDesc = nullptr;
const SurfaceDescriptorFromXlibWindow* xDesc = nullptr;
FindInChain(descriptor->nextInChain, &xDesc);
if (xDesc) {
// Check the validity of the window by calling a getter function on the window that
@@ -146,7 +146,7 @@ namespace dawn_native {
const SurfaceDescriptorFromWindowsHWND* hwndDesc = nullptr;
const SurfaceDescriptorFromWindowsCoreWindow* coreWindowDesc = nullptr;
const SurfaceDescriptorFromWindowsSwapChainPanel* swapChainPanelDesc = nullptr;
const SurfaceDescriptorFromXlib* xDesc = nullptr;
const SurfaceDescriptorFromXlibWindow* xDesc = nullptr;
FindInChain(descriptor->nextInChain, &metalDesc);
FindInChain(descriptor->nextInChain, &hwndDesc);
FindInChain(descriptor->nextInChain, &coreWindowDesc);

View File

@@ -181,12 +181,12 @@ TEST_F(WindowSurfaceInstanceTests, CorrectSTypeXlib) {
GLFWwindow* window = CreateWindow();
std::unique_ptr<wgpu::ChainedStruct> chainedDescriptor =
utils::SetupWindowAndGetSurfaceDescriptorForTesting(window);
ASSERT_EQ(chainedDescriptor->sType, wgpu::SType::SurfaceDescriptorFromXlib);
ASSERT_EQ(chainedDescriptor->sType, wgpu::SType::SurfaceDescriptorFromXlibWindow);
}
// Test with setting an invalid window
TEST_F(WindowSurfaceInstanceTests, InvalidXWindow) {
wgpu::SurfaceDescriptorFromXlib chainedDescriptor;
wgpu::SurfaceDescriptorFromXlibWindow chainedDescriptor;
chainedDescriptor.display = XOpenDisplay(nullptr);
// From the "X Window System Protocol" "X Version 11, Release 6.8" page 2 at
// https://www.x.org/releases/X11R7.5/doc/x11proto/proto.pdf
@@ -203,7 +203,7 @@ TEST_F(WindowSurfaceInstanceTests, InvalidXWindow) {
// Test using Xlib when it is not supported
TEST_F(WindowSurfaceInstanceTests, XlibSurfacesAreInvalid) {
wgpu::SurfaceDescriptorFromXlib chainedDescriptor;
wgpu::SurfaceDescriptorFromXlibWindow chainedDescriptor;
chainedDescriptor.display = nullptr;
chainedDescriptor.window = 0;

View File

@@ -71,8 +71,8 @@ namespace utils {
#elif defined(DAWN_USE_X11)
std::unique_ptr<wgpu::ChainedStruct> SetupWindowAndGetSurfaceDescriptorForTesting(
GLFWwindow* window) {
std::unique_ptr<wgpu::SurfaceDescriptorFromXlib> desc =
std::make_unique<wgpu::SurfaceDescriptorFromXlib>();
std::unique_ptr<wgpu::SurfaceDescriptorFromXlibWindow> desc =
std::make_unique<wgpu::SurfaceDescriptorFromXlibWindow>();
desc->display = glfwGetX11Display();
desc->window = glfwGetX11Window(window);
return std::move(desc);