From cb92b26e5ca6063bcf1a922109b8224e0b6eb4da Mon Sep 17 00:00:00 2001 From: Greg Daniel Date: Wed, 27 Jun 2018 15:03:36 +0000 Subject: Revert "Let client pass in full extension to GrVkBackendContext." This reverts commit 45c9dab4c3ec43cedb28d1b8c08e166fe0c2e767. Reason for revert: fucshia uses GrVkBackendContext. Need to revert earlier changes Original change's description: > Let client pass in full extension to GrVkBackendContext. > > Bug: skia: > Change-Id: I772ab4ccbca0f4f7e7d429d6c421b07d97f0606f > Reviewed-on: https://skia-review.googlesource.com/131880 > Reviewed-by: Jim Van Verth > Commit-Queue: Greg Daniel TBR=egdaniel@google.com,jvanverth@google.com,bsalomon@google.com Change-Id: I1a765ff406c83cb234c3614b804fbed677d5a382 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: skia: Reviewed-on: https://skia-review.googlesource.com/137901 Reviewed-by: Greg Daniel Commit-Queue: Greg Daniel --- src/gpu/vk/GrVkExtensions.h | 50 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/gpu/vk/GrVkExtensions.h (limited to 'src/gpu/vk/GrVkExtensions.h') diff --git a/src/gpu/vk/GrVkExtensions.h b/src/gpu/vk/GrVkExtensions.h new file mode 100644 index 0000000000..8de28f4d49 --- /dev/null +++ b/src/gpu/vk/GrVkExtensions.h @@ -0,0 +1,50 @@ +/* + * Copyright 2016 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef GrVkExtensions_DEFINED +#define GrVkExtensions_DEFINED + +#include "../private/SkTArray.h" +#include "SkString.h" +#include "vk/GrVkDefines.h" +#include "vk/GrVkInterface.h" + +/** + * This helper queries the Vulkan driver for available extensions and layers, remembers them, + * and can be queried. It supports queries for both instance and device extensions and layers. + */ +class SK_API GrVkExtensions { +public: + GrVkExtensions(GrVkInterface::GetProc getProc) + : fGetProc(getProc) + , fInstanceExtensionStrings(new SkTArray) + , fDeviceExtensionStrings(new SkTArray) + , fInstanceLayerStrings(new SkTArray) + , fDeviceLayerStrings(new SkTArray) {} + + bool initInstance(uint32_t specVersion); + bool initDevice(uint32_t specVersion, VkInstance, VkPhysicalDevice); + + /** + * Queries whether an extension or layer is present. Will fail if not initialized. + */ + bool hasInstanceExtension(const char[]) const; + bool hasDeviceExtension(const char[]) const; + bool hasInstanceLayer(const char[]) const; + bool hasDeviceLayer(const char[]) const; + + void print(const char* sep = "\n") const; + +private: + GrVkInterface::GetProc fGetProc; + std::unique_ptr> fInstanceExtensionStrings; + std::unique_ptr> fDeviceExtensionStrings; + std::unique_ptr> fInstanceLayerStrings; + std::unique_ptr> fDeviceLayerStrings; +}; + +#endif -- cgit v1.2.3