Hash :
f044aaf8
Author :
Date :
2024-03-02T00:51:33
Vulkan: Create instance/device without access to Display The feature overrides are now encapsulated in a struct, a reference to which is passed around until features are initialized. Additionally, some window system information needed to decide which extensions to use or workarounds to apply are passed around. This is a step towards decoupling RendererVk from egl::Display for direct use with OpenCL. Bug: angleproject:8564 Change-Id: Id6c5d1c3b38aafcd4397e54cc6cad32bf849eeda Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5335823 Reviewed-by: Amirali Abdolrashidi <abdolrashidi@google.com> Commit-Queue: Shahbaz Youssefi <syoussefi@chromium.org>
//
// Copyright 2023 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//
// DisplayVkOffscreen.h:
// Defines the class interface for DisplayVkOffscreen, implementing
// DisplayVk for Linux when window surfaces are not supported.
//
#ifndef LIBANGLE_RENDERER_VULKAN_LINUX_DISPLAYVKOFFSCREEN_H_
#define LIBANGLE_RENDERER_VULKAN_LINUX_DISPLAYVKOFFSCREEN_H_
#include "libANGLE/renderer/vulkan/linux/DisplayVkLinux.h"
namespace rx
{
class DisplayVkOffscreen : public DisplayVkLinux
{
public:
DisplayVkOffscreen(const egl::DisplayState &state);
bool isValidNativeWindow(EGLNativeWindowType window) const override;
SurfaceImpl *createWindowSurfaceVk(const egl::SurfaceState &state,
EGLNativeWindowType window) override;
egl::ConfigSet generateConfigs() override;
void checkConfigSupport(egl::Config *config) override;
const char *getWSIExtension() const override;
};
} // namespace rx
#endif // LIBANGLE_RENDERER_VULKAN_LINUX_DISPLAYVKOFFSCREEN_H_