xref: /aosp_15_r20/external/angle/util/linux/LinuxWindow.cpp (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1 //
2 // Copyright 2022 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // LinuxWindow.cpp: Implementation of OSWindow::New for Linux
8 
9 #include "util/OSWindow.h"
10 
11 #if defined(ANGLE_USE_WAYLAND)
12 #    include "wayland/WaylandWindow.h"
13 #endif
14 
15 #if defined(ANGLE_USE_X11)
16 #    include "x11/X11Window.h"
17 #endif
18 
19 // static
20 #if defined(ANGLE_USE_X11) || defined(ANGLE_USE_WAYLAND)
New()21 OSWindow *OSWindow::New()
22 {
23 #    if defined(ANGLE_USE_X11)
24     // Prefer X11
25     if (IsX11WindowAvailable())
26     {
27         return CreateX11Window();
28     }
29 #    endif
30 
31 #    if defined(ANGLE_USE_WAYLAND)
32     if (IsWaylandWindowAvailable())
33     {
34         return new WaylandWindow();
35     }
36 #    endif
37 
38     return nullptr;
39 }
40 #endif
41