1 //
2 // Copyright 2020 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 // DisplayVkSimple.h:
7 //    Defines the class interface for DisplayVkSimple, implementing
8 //    DisplayVk for Linux via VK_KHR_display.
9 //
10 
11 #ifndef LIBANGLE_RENDERER_VULKAN_DISPLAY_DISPLAYVKSIMPLE_H_
12 #define LIBANGLE_RENDERER_VULKAN_DISPLAY_DISPLAYVKSIMPLE_H_
13 
14 #include "libANGLE/renderer/vulkan/DisplayVk.h"
15 
16 namespace rx
17 {
18 
19 class DisplayVkSimple : public DisplayVk
20 {
21   public:
22     DisplayVkSimple(const egl::DisplayState &state);
23     void terminate() override;
24 
25     bool isValidNativeWindow(EGLNativeWindowType window) const override;
26 
27     SurfaceImpl *createWindowSurfaceVk(const egl::SurfaceState &state,
28                                        EGLNativeWindowType window) override;
29 
30     egl::ConfigSet generateConfigs() override;
31     void checkConfigSupport(egl::Config *config) override;
32 
33     const char *getWSIExtension() const override;
34 
35   private:
36     std::vector<VkSurfaceFormatKHR> mSurfaceFormats;
37 };
38 
39 }  // namespace rx
40 
41 #endif  // LIBANGLE_RENDERER_VULKAN_DISPLAY_DISPLAYVKSIMPLE_H_
42