• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //
2 // Copyright 2016 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 // DisplayVkWin32.h:
7 //    Defines the class interface for DisplayVkWin32, implementing DisplayVk for Windows.
8 //
9 
10 #ifndef LIBANGLE_RENDERER_VULKAN_WIN32_DISPLAYVKWIN32_H_
11 #define LIBANGLE_RENDERER_VULKAN_WIN32_DISPLAYVKWIN32_H_
12 
13 #include "libANGLE/renderer/vulkan/DisplayVk.h"
14 
15 namespace rx
16 {
17 class DisplayVkWin32 : public DisplayVk
18 {
19   public:
20     DisplayVkWin32(const egl::DisplayState &state);
21     ~DisplayVkWin32() override;
22 
23     egl::Error initialize(egl::Display *display) override;
24     void terminate() override;
25 
26     bool isValidNativeWindow(EGLNativeWindowType window) const override;
27 
28     SurfaceImpl *createWindowSurfaceVk(const egl::SurfaceState &state,
29                                        EGLNativeWindowType window) override;
30 
31     egl::ConfigSet generateConfigs() override;
32     void checkConfigSupport(egl::Config *config) override;
33 
34     const char *getWSIExtension() const override;
35 
36   private:
37     ATOM mWindowClass;
38     HWND mMockWindow;
39     std::vector<VkSurfaceFormatKHR> mSurfaceFormats;
40 };
41 
42 }  // namespace rx
43 
44 #endif  // LIBANGLE_RENDERER_VULKAN_WIN32_DISPLAYVKWIN32_H_
45