Flutter Engine
The Flutter Engine
Loading...
Searching...
No Matches
Classes | Public Member Functions | List of all members
skgpu::VulkanExtensions Class Reference

#include <VulkanExtensions.h>

Classes

struct  Info
 

Public Member Functions

 VulkanExtensions ()
 
void init (VulkanGetProc, VkInstance, VkPhysicalDevice, uint32_t instanceExtensionCount, const char *const *instanceExtensions, uint32_t deviceExtensionCount, const char *const *deviceExtensions)
 
bool hasExtension (const char[], uint32_t minVersion) const
 

Detailed Description

Helper class that eats in an array of extensions strings for instance and device and allows for quicker querying if an extension is present.

Definition at line 21 of file VulkanExtensions.h.

Constructor & Destructor Documentation

◆ VulkanExtensions()

skgpu::VulkanExtensions::VulkanExtensions ( )
inline

Definition at line 23 of file VulkanExtensions.h.

23{}

Member Function Documentation

◆ hasExtension()

bool skgpu::VulkanExtensions::hasExtension ( const char  ext[],
uint32_t  minVersion 
) const

Definition at line 127 of file VulkanExtensions.cpp.

127 {
128 int idx = find_info(fExtensions, ext);
129 return idx >= 0 && fExtensions[idx].fSpecVersion >= minVersion;
130}
static int find_info(const TArray< VulkanExtensions::Info > &infos, const char ext[])

◆ init()

void skgpu::VulkanExtensions::init ( VulkanGetProc  getProc,
VkInstance  instance,
VkPhysicalDevice  physDev,
uint32_t  instanceExtensionCount,
const char *const *  instanceExtensions,
uint32_t  deviceExtensionCount,
const char *const *  deviceExtensions 
)

Definition at line 36 of file VulkanExtensions.cpp.

42 {
43 for (uint32_t i = 0; i < instanceExtensionCount; ++i) {
44 const char* extension = instanceExtensions[i];
45 // if not already in the list, add it
46 if (find_info(fExtensions, extension) < 0) {
47 fExtensions.push_back() = Info(extension);
48 SkTQSort(fExtensions.begin(), fExtensions.end(), extension_compare);
49 }
50 }
51 for (uint32_t i = 0; i < deviceExtensionCount; ++i) {
52 const char* extension = deviceExtensions[i];
53 // if not already in the list, add it
54 if (find_info(fExtensions, extension) < 0) {
55 fExtensions.push_back() = Info(extension);
56 SkTQSort(fExtensions.begin(), fExtensions.end(), extension_compare);
57 }
58 }
59 this->getSpecVersions(std::move(getProc), instance, physDev);
60}
void SkTQSort(T *begin, T *end, const C &lessThan)
Definition SkTSort.h:194
VkInstance instance
Definition main.cc:48
Definition 3d.cpp:16

The documentation for this class was generated from the following files: