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 // WindowSurfaceVkXcb.h:
7 //    Defines the class interface for WindowSurfaceVkXcb, implementing WindowSurfaceVk.
8 //
9 
10 #ifndef LIBANGLE_RENDERER_VULKAN_XCB_WINDOWSURFACEVKXCB_H_
11 #define LIBANGLE_RENDERER_VULKAN_XCB_WINDOWSURFACEVKXCB_H_
12 
13 #include "libANGLE/renderer/vulkan/SurfaceVk.h"
14 
15 struct xcb_connection_t;
16 
17 namespace rx
18 {
19 
20 class WindowSurfaceVkXcb : public WindowSurfaceVk
21 {
22   public:
23     WindowSurfaceVkXcb(const egl::SurfaceState &surfaceState,
24                        EGLNativeWindowType window,
25                        xcb_connection_t *conn);
26 
27   private:
28     angle::Result createSurfaceVk(vk::Context *context, gl::Extents *extentsOut) override;
29     angle::Result getCurrentWindowSize(vk::Context *context, gl::Extents *extentsOut) override;
30 
31     xcb_connection_t *mXcbConnection;
32 };
33 
34 }  // namespace rx
35 
36 #endif  // LIBANGLE_RENDERER_VULKAN_XCB_WINDOWSURFACEVKXCB_H_
37