1 // 2 // Copyright 2019 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 // DisplayVkMac.h: 7 // Subclasses DisplayVk for the Mac platform. 8 // 9 10 #ifndef LIBANGLE_RENDERER_VULKAN_MAC_DISPLAYVKMAC_H_ 11 #define LIBANGLE_RENDERER_VULKAN_MAC_DISPLAYVKMAC_H_ 12 13 #include "libANGLE/renderer/vulkan/DisplayVk.h" 14 15 namespace rx 16 { 17 18 class DisplayVkMac : public DisplayVk 19 { 20 public: 21 DisplayVkMac(const egl::DisplayState &state); 22 23 bool isValidNativeWindow(EGLNativeWindowType window) const override; 24 25 SurfaceImpl *createWindowSurfaceVk(const egl::SurfaceState &state, 26 EGLNativeWindowType window) override; 27 28 SurfaceImpl *createPbufferFromClientBuffer(const egl::SurfaceState &state, 29 EGLenum buftype, 30 EGLClientBuffer clientBuffer, 31 const egl::AttributeMap &attribs) override; 32 33 egl::ConfigSet generateConfigs() override; 34 void checkConfigSupport(egl::Config *config) override; 35 36 void generateExtensions(egl::DisplayExtensions *outExtensions) const override; 37 38 egl::Error validateClientBuffer(const egl::Config *configuration, 39 EGLenum buftype, 40 EGLClientBuffer clientBuffer, 41 const egl::AttributeMap &attribs) const override; 42 43 const char *getWSIExtension() const override; 44 }; 45 46 } // namespace rx 47 48 #endif // LIBANGLE_RENDERER_VULKAN_MAC_DISPLAYVKMAC_H_ 49